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