K means聚類之一(多維整型資料)

2021-06-17 22:24:23 字數 882 閱讀 1927

演算法介紹

k-means 演算法接受輸入量 k ;然後將n個資料物件

劃分為 k個聚類

以便使得所獲得的聚類

滿足:同一聚類中的物件相似度較高;而不同聚類中的物件相似度較小。

聚類相似度是利用各聚類中物件的

均值所獲得乙個「中心物件」(引力中心)來進行計算的。

(1) 從 n個

資料物件

任意選擇 k 個物件作為初始聚類中心;

(2) 根據每個

聚類物件的

均值(中心物件),計算每個物件與這些中心物件的距離;並根據最小距離重新對相應物件進行劃分;

(3) 重新計算每個(有變化)聚類的

均值(中心物件);

(4) 計算標準測度函式,當滿足一定條件,如函式收斂時,則演算法終止;如果條件不滿足則回到步驟(2)。

演算法的時間複雜度

上界為o(n*k*t), 其中t是

迭代次數。

完整**如下:

/*簡易的k-means演算法:對二維整型資料進行聚類 */

#include #include #include #define k 3 //預定義劃分簇的數目

#define n 7

using namespace std;

//特徵物件,表示乙個元組,乙個元組有兩個數值屬性

struct tuple

; tuple getcentrec(vectore)

} cout<<"sum:",,,,,,};

for(int i=0;iin.push_back(t[i]);

for(i=0;icout

return 0;

}

聚類演算法的實現 k means(一)

說來這個聚類演算法的實現是資料探勘課程的第三次作業了,前兩次的作業都是利用別人的軟體,很少去自己實現乙個演算法,第乙個利用sqlserver2008的商業智慧型工具實現乙個資料倉儲,資料處理,倉庫模型的建立繞,維度表,事實表的建立,不過考試的時候應該也會有資料倉儲常用模型的建立吧 第二次利用weka...

機器學習(一)K means聚類演算法

k means聚類演算法 k means演算法以k為引數,把n個物件分成k個簇,使簇內具有較高的相似度,而簇間的相似度較低。使用sklearn.cluster.kmeans可以呼叫k means演算法進行聚類 其處理過程如下 1.隨機選擇k個點作為初始的聚類中心 2.剩下的點,根據其與聚類中心的距離...

聚類演算法的實現 k means(一)

說來這個聚類演算法的實現是資料探勘課程的第三次作業了,前兩次的作業都是利用別人的軟體,很少去自己實現乙個演算法,第乙個利用sqlserver2008的商業智慧型工具實現乙個資料倉儲,資料處理,倉庫模型的建立繞,維度表,事實表的建立,不過考試的時候應該也會有資料倉儲常用模型的建立吧 第二次利用weka...