机器学习笔记——K-means
生活随笔
收集整理的這篇文章主要介紹了
机器学习笔记——K-means
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
K-means它是一個聚類算法,它要求用戶設(shè)定群集數(shù)k作為輸入?yún)?shù)。因此,該算法的實施前。該數(shù)字預(yù)計將需要有集群。
如果有n點,需要收集k個簇中。
K-means算法首先從包括k個中心點的初始集合開始。即隨機初始化簇的中心。隨后,算法進行多次迭代處理并調(diào)整中心位置,知道達到最大迭代次數(shù)或中性收斂于固定點。
k-means聚類實例。選擇三個隨機點用作聚類中心(左上)。map階段(右上)將每一個點賦給離其近期的簇。在reduce階段(左下),取相互關(guān)聯(lián)的點的均值。作為新的簇的中心位置,得到本輪迭代的終于布局(右下)。在每一輪迭代結(jié)束后。終于布局將被反饋給相同的循環(huán)過程。直到聚類中心的位置不再移動。
使用weka進行聚類:
public static void main(String[] args) throws Exception {// 讀入樣本數(shù)據(jù) Instances data = new Instances(new BufferedReader(new FileReader("E:\\Weka-3-6\\data\\contact-lenses.arff")));// 實例化化聚類算法SimpleKMeans kmeans = new SimpleKMeans();//true if missing values are to be replacedkmeans.setPreserveInstancesOrder(true);//設(shè)置聚類要得到的類別數(shù)量 kmeans.setNumClusters(2);//開始進行聚類 kmeans.buildClusterer(data);// 打印聚類結(jié)果 int[] assignments = kmeans.getAssignments();int i=0;for(int clusterNum : assignments) {System.out.printf("Instance %d -> Cluster %d\n", i++, clusterNum);}}
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/mengfanrong/p/4620110.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的机器学习笔记——K-means的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程池:ThreadPoolExecut
- 下一篇: avalon.js实践 svg地图配置工