判定最佳叢集數
在這裡,你會使用 elbow 準則來找出最佳的叢集數;也就是平方誤差總和的下降幅度開始趨緩的點。這是取得可作為起始測試依據的數學估計值時很重要的一步。你會針對多個 k(叢集數)進行迭代,對每個 k 執行 KMeans 演算法,然後將各 k 的誤差繪圖比較,以找出下降趨緩、形成「肘點」的位置。
KMeans 模組已自 sklearn.cluster 載入,seaborn 函式庫以 sns 載入,matplotlib.pyplot 模組以 plt 載入。此外,經過縮放後的資料集已以 pandas 的 DataFrame 形式載入為 wholesale_scaled_df。
本練習屬於課程
Python 的行銷機器學習
練習說明
- 建立一個空的
sse字典。 - 在 k 值介於 1 到 11 之間訓練
KMeans演算法,並將各自的誤差存入sse字典。 - 替圖表加入標題。
- 建立散佈圖,X 軸使用鍵(keys),Y 軸使用值(values),並顯示圖表。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create empty sse dictionary
sse = {}
# Fit KMeans algorithm on k values between 1 and 11
for k in ___(1, 11):
kmeans = ___(n_clusters=___, random_state=333)
kmeans.___(wholesale_scaled_df)
sse[k] = kmeans.inertia_
# Add the title to the plot
plt.___('Elbow criterion method chart')
# Create and display a scatter plot
sns.pointplot(x=list(sse.___()), y=list(sse.___()))
plt.___()