K-means聚類方法
就是把空間內點,分成K類。同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。
用均值來代表類中心,並用于衡量與新點的距離。
初始值:
根據先驗知識找到K個均值,做迭代初始值。
迭代公式:
1:從n個數據對象中選擇k個對象作爲初始聚類中心
2:將剩下的n-k個數據對象,按照他們和初始的k個值之間的距離大小,分配給與其最近的聚類。
3:計算形成的k個新聚類的聚類中心(該聚類中所有對象的均值)
4:重複2
5:類中心不再擺動,或者擺動幅度很小,趨於穩定,則終止。
測準函數一般使用均方差。
bin/mahout kmeans \
-i <input vectors directory> \
-c <input clusters directory> \
-o <output working directory> \
-k <optional number of initial clusters to sample from input vectors> \
-dm <DistanceMeasure> \
-x <maximum number of iterations> \
-cd <optional convergence delta. Default is 0.5> \
-ow <overwrite output directory if present>
-cl <run input vector clustering after computing Canopies>
-xm <execution method: sequential or mapreduce>
注意: 當-k被指定的時候,-c目錄下的所有聚類都將被重寫,將從輸入的數據向量中隨機抽取-k個點作爲初始聚類的中心。