ML:非監督學習之 聚類 之 1 KMeans聚類(sklearn.cluster.KMeans)

一、算法圖解

在這裏插入圖片描述

  1. 首先,圖a & 圖b:指定cluster的個數。上圖設k=2(初始點爲從圖b開始出現的“+”號);
  2. 其次,圖c:把每個數據樣本劃到到最近的中心點那一cluster;
  3. 再次,圖d & 圖e:指第一輪化cluster之後,更新中心點(一般是把該cluster的所有數據座標加起來取平均值);
  4. 重複劃類和中心點更新,一直到滿足指定的迭代次數,或者中心點的移動距離小於給定值,或者中心點不再移動,圖f
二、sklearn官方文檔鏈接
sklearn.cluster.KMeans(
n_clusters=8,                  # 設定要聚類的個數,默認8;
init='k-means++',              # 設定選擇初始中心點的方法,默認是“k-means++”(一種可以加速聚類收斂的方法),還可以是“random”(隨機選擇初始點),或者是shape爲[n_clusters, n_features]的數組,即自己指定初始點;
n_init=10,                     # 設定中心點的批數,最終輸出效果最好的那批中心點產生的cluster。默認是10批;
max_iter=300,                  # 設定對於每批中心點,最大的迭代次數。默認300;
tol=0.0001,                    # 設定可接受的中心點最小移動距離,默認是1e-4
precompute_distances='auto',   # 
verbose=0,
random-state=None,
copy_x=True,                   # 是否copy樣本x。默認True,False即跟新樣本x;
n_jobs=None,
algorithm='auto'               # 指定kmeans的算法。默認是“autor”,即對於密集的樣本用“elkan”算法,離散的樣本用“full”算法;可自行指定“elkan”或“full”2種中的一個;
)
三、優缺點
  • 對離羣點敏感(因爲對均值的影響大)
  • 不能對環形&漩渦形正確聚類;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章