1. k-means聚類演算法簡介
採用的是將n*p的矩陣 x 劃分為k個類,使得類內物件之間的距離最大,而類之間的距離最小。
2. 偽**
輸入:訓練樣本 x = (其中x為m-by-n矩陣,包含m個樣本點,每個樣本點n個特徵)
聚類簇數 k(為一標量scalar)
聚類過程:從x中隨機選取k個樣本頂啊作為初始聚類中心,k = .
repeat:
% (1). 劃分樣本到特定的簇中
forj = 1,2,3,......ndo
計算樣本xj與各聚類中心 k 的距離;
將該樣本划進與其最近的樣本中心 ki 所在的簇中。
end for
% (2). 更新聚類中心
fori = 1,2,3,......kdo
計算新的聚類中心 k『 = ;
end for
until 所有的聚類中心不再變化,或者說聚類結果不再變化
3. 優化目標
4. 示例**
% 輸入 x 待聚類樣本點,為 m - by -n 矩陣,包含m個樣本點,每個樣本點包含n個特徵%輸如 k 為使用者自定義的所需劃分的簇數,為乙個標量
idx=kmeans(x,k)
[idx,c]=kmeans(x,k)
[idx,c,sumd]=kmeans(x,k)
[idx,c,sumd,d]=kmeans(x,k)
[…]=kmeans(…,』param1』,val1,』param2』,val2,…)
% 輸出 idx 為 m - by -1列向量,記錄每個樣本點所屬的簇
% 輸出 c 為 k - by -n 矩陣,記錄最終各簇的聚類中心
% 輸出 sumd 為k - by -1的和向量,儲存的是類間所有點與該類質心點距離之和
% 輸出 d 為 m - by -k 矩陣,儲存每個樣本點與各個聚類中心的距離
[…]=kmeans(…,'
param1
',val1,'
param2
',val2,…)
這其中的引數param1、param2等,主要可以設定為如下:
1. 『distance』(距離測度)
『sqeuclidean』 歐式距離(預設時,採用此距離方式)
『cityblock』 絕度誤差和,又稱:l1
『cosine』 針對向量
『correlation』 針對有時序關係的值
『hamming』 只針對二進位制資料
2. 『start』(初始質心位置選擇方法)
『sample』 從x中隨機選取k個質心點
『uniform』 根據x的分布範圍均勻的隨機生成k個質心
『cluster』 初始聚類階段隨機選擇10%的x的子樣本(此方法初始使用』sample』方法)
matrix 提供一k*p的矩陣,作為初始質心位置集合
3. 『replicates』(聚類重複次數) 整數
K Means聚類演算法
k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...
聚類演算法 K means
演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...
k means聚類演算法
說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...