評估穀物叢集成效
在上一個練習中,你從慣性值(inertia)圖看出,對這組穀物資料而言,3 是不錯的叢集數。事實上,這些穀物樣本混合了 3 種不同的品種:「Kama」、「Rosa」和「Canadian」。在本練習中,請將穀物樣本分成 3 個叢集,並使用交叉表比較叢集與穀物品種的對應關係。
你已擁有穀物樣本的陣列 samples,以及列出每個樣本所屬品種的清單 varieties。Pandas(pd)與 KMeans 已替你匯入。
本練習屬於課程
Unsupervised Learning in Python
練習說明
- 建立一個名為
model、具有3個叢集的KMeans模型。 - 使用
model的.fit_predict()方法,對samples進行擬合並取得叢集標籤。使用.fit_predict()等同於先用.fit()再接.predict()。 - 建立一個 DataFrame
df,包含名為'labels'和'varieties'的兩個欄位,分別使用labels與varieties作為欄位值。這一步已為你完成。 - 對
df['labels']與df['varieties']使用pd.crosstab()函式,計算各品種在各叢集標籤下出現的次數。將結果指定給ct。 - 按下送出即可查看交叉表!
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)