機器學習之聚類分析?
本文內容主要包括聚類分析介紹,原理和案例實踐。
聚類分析介紹聚類分析也稱無監督學習, 因為和分類學習相比,聚類的樣本沒有標記,需要由聚類學習算法來自動確定。聚類分析是研究如何在沒有訓練的條件下把樣本劃分為若干類。
K-means聚類算法是最為經典也是使用最為廣泛的一種基于劃分的聚類算法,它屬于基于距離的聚類算法。
所謂基于距離的聚類算法是指采用距離作為相似性量度的評價指標,也就是說當兩個對象離得近時,兩者之間的距離比較小,那么它們之間的相似性就比較大。這類算法通常是由距離比較相近的對象組成簇,把得到緊湊而且獨立的簇作為最終目標,因此將這類算法稱為基于距離的聚類算法。K-means聚類算法就是其中比較經典的一種算法。
K-means算法,也被稱為K-平均或K-均值算法,它是將各個聚類子集內的所有數據樣本的均值作為該聚類的代表點,算法的主要思想是通過迭代過程把數據集劃分為不同的類別,使得評價聚類性能的準則函數達到最優(誤差平方和準則函數E),從而使生成的每個聚類(又稱簇)內緊湊,類間獨立。
K-means聚類算法原理和步驟輸入:初始數據集和簇(聚類)的數目K。
輸出:K個簇,滿足誤差平方和準則函數收斂。
算法步驟:
1)任意選擇K個數據對象作為初始聚類中心;
2)將樣本集中的樣本按照最小距離原則分配到最鄰近聚類中心;
3)使用得到的每個聚類中的樣本均值作為新的聚類中心;
4)重復步驟2和3直到聚類中心不再變化,或者是直到誤差平方和準則函數收斂,即|E(K+1)-E(K)|<e;
5)結束,得到K個聚類。
K-means聚類算法實例初始數據集,共5條記錄,每條數據記錄包含兩個屬性x和y。
作為一個聚類分析的二維樣本,要求的簇的數量K=2,聚類過程和示意圖如下所示。