Hierarchical Clustering: วิธี Ward
ถึงเวลา Comic-Con แล้ว! Comic-Con คืองานประชุมด้านการ์ตูนประจำปีที่จัดขึ้นในเมืองสำคัญทั่วโลก คุณมีข้อมูลจำนวนผู้เข้าร่วมงานในปีที่แล้ว ซึ่งบันทึกจำนวนคนในพื้นที่งาน ณ ช่วงเวลาต่าง ๆ และต้องการเลือกตำแหน่งวางบูธให้ได้ยอดขายสูงสุด ใช้วิธี Ward ในการทำ Hierarchical Clustering เพื่อหาจุดที่มีคนรวมตัวกันมากที่สุด 2 จุดในพื้นที่
ข้อมูลเก็บอยู่ใน pandas DataFrame ชื่อ comic_con โดย x_scaled และ y_scaled คือชื่อคอลัมน์ของพิกัด X และ Y ที่ผ่านการ Standardize แล้ว ซึ่งแสดงตำแหน่งของผู้คน ณ จุดเวลาหนึ่ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์กลุ่มข้อมูลใน Python
คำแนะนำการฝึกหัด
- Import
fclusterและlinkageจากscipy.cluster.hierarchy - ใช้วิธี
wardในฟังก์ชันlinkage() - กำหนด Label ของคลัสเตอร์โดยสร้าง Flat Cluster จำนวน 2 กลุ่มจาก
distance_matrix - รันโค้ดสำหรับพล็อตกราฟเพื่อดูผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the fcluster and linkage functions
from scipy.cluster.hierarchy import ____, ____
# Use the linkage() function
distance_matrix = ____(comic_con[['x_scaled', 'y_scaled']], ____ = ____, metric = 'euclidean')
# Assign cluster labels
comic_con['cluster_labels'] = ____(____, ____, criterion='maxclust')
# Plot clusters
sns.scatterplot(x='x_scaled', y='y_scaled',
hue='cluster_labels', data = comic_con)
plt.show()