演算法介紹:
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...