資料探勘 K Means聚類演算法

2021-09-25 02:16:58 字數 2695 閱讀 3525

聚類分析是根據資料本身結構特徵對資料點進行分類的方法。實質是按照彼此距離 的遠近將資料分為若干個類別,以使得類別內資料的「差異性」盡可能小(即「同質 性」盡可能大),類別間「差異性」盡可能大。

聚類的目標:將一組資料分成若干組,組 內資料是相似的,而組間資料是有較明顯 差異。

與分類區別:分類與聚類最大的區別在於分 類的目標事先已知,聚類也被稱為無監督機器學習。

聚類手段:①劃分法 ②層次方法 ③基於密 度方法 ④基於網路方法  ⑤基於模型方法

c4.5

k-means

svmapriori

emadaboost

pagerank

knn***** bayes

cart

歐氏距離 (歐幾里得距離,euclidean distance)

– n維空間內任意兩點 x(x1,...xn) 和 y(y1,...yn) 之間的距離為

歐氏距離和曼哈頓距離可以看做是閔可夫斯基距離在p=2和p=1下的特例

聚類演算法將資料點分為多個 簇(cluster)

k-menas演算法中,簇的中心 叫做簇質心或中心點 (centroid),質心不一定是 乙個真實存在的資料點.

把每個簇想像成一塊有質量 的物體,質心即這塊物體的 質量中心。

k-means要求事先指定資料 要分為幾組,例如可指定分 為4組,這裡的4即演算法名稱 中k的含義,此時 k = 4。

指定n=k(k為要分的組數)

隨機挑選n個點作為初試簇質心。

遍歷所有點,各自加入距離最近的簇(距離可以用歐式距離,需要對資料進行標準化)。

調整各個簇的質心(取簇中各點的算術平均值作為新質心的座標即可)。

回到第二步。

終止條件:簇不再發生變化

其中p表示簇中的點,x是簇內點的集合,distance(p, centroid)即點p到簇質心的距離

聚類結果的sse即各個簇的sse之和,其值越 小表示聚類質量越好

%k_means聚類演算法例項 

%資料初始化

clear

x=[0 0;1 0;0 1;1 1;2 1;1 2;2 2; 3 2;6 6;7 6;8 6;6 7;7 7;8 7;9 7;7 8; 8 8;9 8; 8 9;9 9];

z=zeros(2,2);

z1=zeros(2,2);

%設定初始中心點為前兩個樣本點

z=x(1:2,1:2);

%尋找聚類中心

while 1

count=zeros(2,1);%為求解聚類中心 計次數

allsum=zeros(2,2);%為求解聚類中心 計資料之和

for i=1:20

%對每乙個樣本i,求i到兩個聚類中心點的距離

temp1=sqrt((z(1,1)-x(i,1))^2+(z(1,2)-x(i,2))^2);

temp2=sqrt((z(2,1)-x(i,1))^2+(z(2,2)-x(i,2))^2);

%到哪個聚類中心點距離較小,就將i分配該聚類中心

if (temp1附加參數列

參數列

引數名引數值

說明distance

距離計算函式,預設選項

sqeuclidean

平方歐式距離

cosine

余弦距離

correlation

相關係數距離

hamming

漢明距離

emptyaction

當乙個距離中心沒有乙個樣本值時的操作

error

把乙個空聚類作為錯誤,預設選項

drop

把空聚類移除

singleton

為距離聚類中心最遠的點建立乙個聚類中心

maxiter

100迴圈的次數,預設為100

replicates

1始值,根據sumd的值返回最佳的初始值聚類結果

start

用於初始化聚類中心向量的方法

sample

隨機選擇,預設選項   uniform 隨機均勻的選擇k個中心向量

cluster

使用樣本資料的10%進行預分類

matrix

k*p維的矩陣,即自己制定聚類中心

uniform

隨機均勻的選擇k個中心向量

利用matlab中的鳶尾花資料集來舉例

load fisheriris %載入資料集

x = meas(:,3:4);%取花瓣長度和寬度兩個特徵

figure;

plot(x(:,1),x(:,2),'k*');%畫出圖形表示樣本

title 'fisher''s iris data';

xlabel 'petal lengths (cm)';

ylabel 'petal widths (cm)';

[idx,c] = kmeans(x,3);%聚類

hold on

plot(c(:,1),c(:,2),'ro');%畫出聚類中心

plot(c(:,1),c(:,2),'bx');

資料探勘1 K means均值聚類演算法

一.k means均值聚類演算法原理 對於給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為k個簇。讓簇內的點盡量緊密的連在一起,而讓簇間的距離盡量的大。如果用資料表示式表示,假設簇劃分為 c1,c2,ck 則我們的目標是最小化平方誤差e 其中 i是簇ci的均值向量,有時也稱為質心,表示式為 二....

R 資料探勘 聚類Kmeans(六)

海林老師 資料探勘 韓佳煒書 課程作業系列 要求 自己寫r python 函式實現一系列演算法 其他參見 r 資料探勘 求混合型資料物件距離 一 r 資料探勘 主成分分析pca 二 r 資料探勘 關聯規則 三 r 資料探勘 決策樹id3 四 r 資料探勘 貝葉斯分類 五 r 資料探勘 聚類kmean...

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...