機器學習實踐(十七)—sklearn之無監督學習-K-means演算法
阿新 • • 發佈:2018-12-03
一、無監督學習概述
二、K-means原理
-
K-means聚類步驟
- 隨機設定K個特徵空間內的點作為初始的聚類中心
- 對於其他每個點計算到K箇中心的距離,未知的點選擇最近的一個聚類中心點作為標記類別
- 接著對著標記的聚類中心之後,重新計算出每個聚類的新中心點(平均值)
- 如果計算得出的新中心點與原中心點一樣,那麼結束,否則重新進行第二步過程
-
圖片助解
三、K-means - API
sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)
- k-means聚類
- n_clusters
- 開始的聚類中心數量
- init
- 初始化方法,預設為’k-means ++’
- labels_
- 預設標記的型別,可以和真實值比較(不是值比較)
四、K-means效能評估指標
1. 輪廓係數
注:
- 對於每個 i 點是已聚類資料中的樣本點 , 為 i 點到其它簇中所有樣本點的距離的最小值, 為 i 到自身簇的所有樣本點的距離的平均值。最終計算出所有的樣本點的輪廓係數平均值
2. 輪廓係數值分析
- 根據公式極端值考慮:
- 如果 那麼公式結果趨近於 1,效果好。
- 如果 那麼公式結果趨近於 -1,效果不好。
- 輪廓係數的值是介於 [-1,1] ,越趨近於1代表內聚度和分離度都相對較優。
3. 輪廓係數 - API
sklearn.metrics.silhouette_score(X, labels)
- 計算所有樣本的平均輪廓係數
- X
- 特徵值
- labels
- 被聚類標記的目標值
未完待續…