k-means介紹
k-means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足:同一聚類中的物件相似度較高;而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示:
如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。(a)剛開始時是原始資料、雜亂無章,沒有label,看起來都一樣,都是綠色的。(b)假設資料集可以分為兩類,令k=2,隨機在座標上選兩個點,作為兩類的中心點。(c-f)演示了聚類的兩種迭代。先劃分,把每個資料樣本劃分到最近的中心點那一簇;劃分完後,更新每個簇的中心,即把該簇的所有資料點的座標加起來去平均值。這樣不斷進行」劃分—更新—劃分—更新」,直到每個簇的中心不在移動為止。
k-means演算法的缺陷
聚類中心的個數k需要事先給定,但在實際中這個k值得選定是非常難以估計的,很多時候,事先並不知道給定的資料集應該分成多少個類別才最合適
k-means需要人為地確定初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果
針對上述第2個缺陷。可以使用k-means++演算法來解決
k-means++演算法
k-means++演算法選擇初始seeds的基本思想就是:初始的聚類中心之間的相互距離要盡可能的遠。
1、從輸入的資料點集合中隨機選擇乙個點作為第乙個聚類中心
2、對於資料集中的每乙個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離d(x)
3、選擇乙個新的資料點作為新的聚類中心,選擇的原則是:d(x)較大的點,被選取作為聚類中心的概率較大
4、重複2和3直到k個聚類中心被選出來
5、利用這k個初始的聚類中心來執行標準的k-means演算法
從上面的演算法描述上可以看到,演算法的關鍵是第3步,如何將d(x)反映到點被選擇的概率上,一種演算法如下:
1、先從我們的資料庫隨機挑個隨機點當「種子點」
2、對於每個點,我們都計算其和最近的乙個「種子點」的距離d(x)並儲存在乙個陣列裡,然後把這些距離加起來得到sum(d(x))。
3、然後,再取乙個隨機值,用權重的方式來取計算下乙個「種子點」。這個演算法的實現是,先取乙個能落在sum(d(x))中的隨機值random,然後用random -= d(x),直到其<=0,此時的點就是下乙個「種子點」。
4、重複2和3直到k個聚類中心被選出來
5、利用這k個初始的聚類中心來執行標準的k-means演算法
k-means++**:(
knn(k-nearest neighbor)介紹
演算法思路:如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。該方法在定類決策上只依據最鄰近的乙個或者幾個樣本的類別來決定待分樣本所屬的類別。
看下面這幅圖:
knn的演算法過程是是這樣的:
1、從上圖中我們可以看到,圖中的資料集是良好的資料,即都打好了label,一類是藍色的正方形,一類是紅色的三角形,那個綠色的圓形是我們待分類的資料。
2、如果k=3,那麼離綠色點最近的有2個紅色三角形和1個藍色的正方形,這3個點投票,於是綠色的這個待分類點屬於紅色的三角形
3、如果k=5,那麼離綠色點最近的有2個紅色三角形和3個藍色的正方形,這5個點投票,於是綠色的這個待分類點屬於藍色的正方形
4、我們可以看到,knn本質是基於一種資料統計的方法!其實很多機器學習演算法也是基於資料統計的。
knn與k-means的區別:
1、knn是分類演算法,而kmeans是聚類演算法;
2、knn屬於監督學習,而kmeans屬於非監督學習;
3、knn的資料集是帶有標籤的資料,是已經是完全正確的資料,而kmeans的資料集是沒有標籤的資料,是雜亂無章的,經過聚類後才變得有點順序,先無序,後有序。
Kmeans Kmeans 和KNN演算法比較
k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。a 剛開始時是原始資料,雜亂無章,沒有l...
Kmeans Kmeans 和KNN演算法比較
摘要 k means介紹 k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。k means...
Kmeans Kmeans 和KNN演算法比較
k means演算法是聚類分析中使用最廣泛的演算法之一。它把n個物件根據他們的屬性分為k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。其聚類過程可以用下圖表示 如圖所示,資料樣本用圓點表示,每個簇的中心點用叉叉表示。a 剛開始時是原始資料,雜亂無章,沒有l...