資料探勘演算法學習(一)K Means演算法

2021-06-29 08:22:18 字數 2053 閱讀 2855

博主最近實習開始接觸資料探勘,將學習筆記分享給大家。目前用的軟體是weka,下篇文章會著重講解。

演算法簡介:

k-means

演算法是輸入聚類個數

k,以及包含

n個資料物件的資料庫,輸出滿足方差最小標準的

k個聚類

。並使得

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

演算法假設:

均方誤差是計算群組分散度的最佳引數。

演算法輸入:

聚類個數k;包含

n個資料物件的

資料集。

演算法輸出:

k個聚類

演算法思想:

(a)綠點表示資料集在二級的歐幾里德空間,初始化的中心點u1和

u2用紅的和藍的叉來分別表示

(b)在最初的

e步驟中,每個點根據離哪個簇中心點近,被指定為屬於紅簇還是藍簇,這等於將這些點根據垂直於兩個中心點的分隔線的的哪邊分類,它用紫色的線表示。

(c)在接下來的

m步驟,重新計算每個簇的中心點的平均值作為每個簇的中心點。

直至中心點位置不變或者變化很小。

weka執行:

以weather.nominal.arff為例執行結果部分截圖如下:

從結果中可以看出,這組資料用k-means演算法迭代四次,初始產生了兩個中心點。最終有10個instances聚合為一類,4個instances聚合為一類。

函式呼叫**:

//讀入樣本

file

file=new file("f:\\program files (x86)\\

weka-3-7

\\data\\

weather.nominal.arff

");

arffloader

loader= new

arffloader

();

loader.setfile

(file);

ins=loader.getdataset

();

//初始化聚類器並設定k值

km= new

******kmeans

();      

km.setnumclusters

(2);

//進行聚類

km.buildclusterer

(ins);

//列印結果

tempins

=km.getclustercentroids

();

system.out.println

(「centroids:」

+tempins

); 執行結果如下:

@attributeoutlook

@attribute temperature

@attribute humidity

@attribute windy

@attribute play @

data

sunny,mild,high,false,yes

overcast,cool,normal,true,yes

演算法應用:

1.分割

圖為取不同k值時的效果。

2.電子商務中分析商品

相似度,歸類

k means演算法學習

k均值聚類演算法 k means clustering algorithm 是一種迭代求解的聚類分析演算法,其步驟是 1 隨機選取k個物件作為初始的聚類中心,然後計算每個物件與各個種子聚類中心之間的距離,把每個物件分配給距離它最近的聚類中心。2 聚類中心以及分配給它們的物件就代表乙個聚類。每分配乙個...

資料探勘演算法 k means

k means 演算法r實現 先用setwd設定工作空間,如d盤,並將相關資料拷貝到該目錄下 setwd d k means 讀入資料 data read.csv d k means data km kmeans data,center 3 print km km size sum km size ...

資料探勘演算法 K means演算法

k means中文稱為k均值聚類演算法,在1967年就被提出 所謂聚類就是將物理或者抽象物件的集合分組成為由類似的物件組成的多個簇的過程 聚類生成的組成為簇 簇內部任意兩個物件之間具有較高的相似度,不同簇的兩個物件之間具有較高的相異度 相異度和相似度可以根據描述的物件的屬性值來計算 物件間的距離是最...