k均值聚類容易實現,但是可能收斂到區域性最小值,影響k-means效果的因素:
優:只需要計算資料點與聚類中心的距離,其計算複雜度只有o(n)。
缺:十分依賴於初始給定的聚類數目;同時隨機初始化可能會生成不同的聚類效果,所以它缺乏重複性和連續性。
偽**:
為克服k-means收斂於區域性最小值的問題,有人提出了二分k-均值演算法(bisecting k-means)。建立k個點作為起始質心(通常是隨機選擇)
當任意乙個點的簇分配結果發生改變時:
對資料集中的每個資料點:
對每個質心:
計算質心與資料點之間的距離
將資料點分配到距其最近的簇
對每乙個簇,計算簇中所有店的均值並將均值作為質心
偽**:
在scikit-learn中也實現了2種k-means:將所有點看成乙個簇
當簇的數目小於k時
對於每個簇:
計算總誤差
在給定的簇上面進行k-均值聚類(k=2)
計算將該簇一分為二之後的總誤差
選擇使得誤差最小的那個簇進行劃分操作
應用:
周志華 《機器學習》 9.4 p202
《building machine learning systems with python》 p46
《machine learning in action》
K均值 K means 聚類演算法
j.b.macqueen 在 1967 年提出的k means演算法 22 到目前為止用於科學和工業應用的諸多聚類演算法中一種極有影響的技術。它是聚類方法中乙個基本的劃分方法,常常採用誤差平方和準則函式作為聚類準則函式,誤差平方和準則函式定義為 3 1 其中,是類 中資料物件的均值,即 j 1,2,...
K 均值聚類演算法 K means
k means是一種無監督的學習,將相似的物件歸到同乙個簇中.可以將一批資料分為k個不同的簇,並且每個簇的中心採用簇中所含樣本的均值計算而成.k means演算法的k值需要由使用者指定,演算法開始時隨機選擇k個初始點作為質心,然後將資料集中的每個點分配到乙個簇中.那麼,如何確定某一組資料歸於哪個簇中...
K均值聚類演算法 K Means
將資料集中的資料按照距離質心的遠近分到各個簇中 將各個簇中的資料求平均值,作為新的質心,重複上一步,直到所有的簇不再改變 from numpy import defloaddataset filename dataset f open filename for line in f.readlines...