ค่าเฉลี่ยของเซกเมนต์จาก NMF
ในขั้นตอนสุดท้าย จะได้สำรวจค่าเฉลี่ยของการแบ่งกลุ่มแบบ 3 เซกเมนต์ที่สร้างด้วย NMF และเปรียบเทียบกับผลลัพธ์จาก K-means โดยจะดึง feature matrix W มาใช้กำหนดเซกเมนต์ที่ชัดเจนให้กับลูกค้าแต่ละราย ด้วยการเลือกคอลัมน์ที่มีค่าสูงสุดในเมทริกซ์นี้
ได้โหลดไลบรารี pandas เป็น pd และไลบรารี seaborn เป็น sns พร้อมกับนำเข้าชุดข้อมูล wholesale ดิบ, อินสแตนซ์ NMF แบบ 3 เซกเมนต์ที่ฝึกเสร็จแล้วเป็น nmf และโหลดชุดข้อมูล components เป็น DataFrame ของ pandas
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการตลาดด้วย Python
คำแนะนำการฝึกหัด
- สร้างเมทริกซ์ W โดยส่งค่าที่แปลงแล้วเป็น data และดัชนีของ components เป็นค่าคอลัมน์
- กำหนดค่าเซกเมนต์โดยเลือกชื่อคอลัมน์ที่มีค่าสูงสุดในแต่ละแถว
- คำนวณค่าเฉลี่ยของแต่ละคอลัมน์แยกตามเซกเมนต์
- พล็อตค่าเฉลี่ยในรูปแบบ heatmap
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create the W matrix
W = pd.DataFrame(data=nmf.___(wholesale), columns=components.index)
W.index = wholesale.index
# Assign the column name where the corresponding value is the largest
wholesale_nmf3 = wholesale.___(segment = W.idxmax(axis=1))
# Calculate the average column values per each segment
nmf3_averages = wholesale_nmf3.___('___').mean().round(0)
# Plot the average values as heatmap
sns.___(___.T, cmap='YlGnBu')
# Display the chart
plt.show()