ประเมินผลการจัดกลุ่มเมล็ดพืช
ในแบบฝึกหัดก่อนหน้า คุณสังเกตจากกราฟค่า inertia ว่า 3 คือจำนวนคลัสเตอร์ที่เหมาะสมสำหรับข้อมูลเมล็ดพืช ในความเป็นจริง ตัวอย่างเมล็ดพืชเหล่านี้มาจากเมล็ดพืช 3 สายพันธุ์ ได้แก่ "Kama", "Rosa" และ "Canadian" ในแบบฝึกหัดนี้ ให้จัดกลุ่มตัวอย่างเมล็ดพืชออกเป็น 3 คลัสเตอร์ แล้วเปรียบเทียบผลลัพธ์กับสายพันธุ์จริงโดยใช้ cross-tabulation
อาร์เรย์ samples ที่เก็บตัวอย่างเมล็ดพืช และลิสต์ varieties ที่ระบุสายพันธุ์ของแต่ละตัวอย่างได้เตรียมไว้ให้แล้ว รวมถึง Pandas (pd) และ KMeans ก็ได้นำเข้าไว้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Unsupervised Learning ใน Python
คำแนะนำการฝึกหัด
- สร้างโมเดล
KMeansชื่อmodelโดยกำหนดจำนวนคลัสเตอร์เป็น3 - ใช้เมธอด
.fit_predict()ของmodelเพื่อฝึกโมเดลกับsamplesและดึงป้ายกำกับคลัสเตอร์ออกมา การใช้.fit_predict()มีผลเทียบเท่ากับการใช้.fit()ตามด้วย.predict() - สร้าง DataFrame
dfที่มีสองคอลัมน์ชื่อ'labels'และ'varieties'โดยใช้labelsและvarietiesเป็นค่าของแต่ละคอลัมน์ตามลำดับ (ส่วนนี้เตรียมไว้ให้แล้ว) - ใช้ฟังก์ชัน
pd.crosstab()กับdf['labels']และdf['varieties']เพื่อนับจำนวนครั้งที่สายพันธุ์แต่ละประเภทตรงกับป้ายกำกับคลัสเตอร์แต่ละอัน แล้วกำหนดผลลัพธ์ให้กับตัวแปรct - กด ส่งคำตอบ เพื่อดู cross-tabulation!
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a KMeans model with 3 clusters: model
model = ____
# Use fit_predict to fit model and obtain cluster labels: labels
labels = ____
# Create a DataFrame with labels and varieties as columns: df
df = pd.DataFrame({'labels': labels, 'varieties': varieties})
# Create crosstab: ct
ct = ____
# Display ct
print(ct)