寫在前面的話:由於spark2.0.0之后ML中才包括LDA,GaussianMixture 模型,這里k-means用的是ML模塊做測試,LDA,GaussianMixture 則用的是MLlib模塊
數據資料下載網站,大力推薦!!!
http://archive.ics.uci.edu/ml/datasets.html?format=&task=clu&att=&area=&numAtt=&numIns=&type=&sort=nameUp&view=table
1.Kmeans
大致思想就是把數據分為多個堆,每個堆就是一類。每個堆都有一個聚類中心(學習的結果就是獲得這k個聚類中心),這個中心就是這個類中所有數據的均值,而這個堆中所有的點到該類的聚類中心都小於到其他類的聚類中心,分類的過程就是將未知數據對這k個聚類中心進行比較的過程。
spark kmeans 算法調用 數據演練



2.GMM
另外一種比較流行的聚類方法 Gaussian Mixture Model
大致思想就是指對樣本的概率密度分布進行估計,而估計的模型是幾個高斯模型加權之和(具體是幾個要在模型訓練前建立好)。每個高斯模型就代表了一個類(一個
Cluster)。對樣本中的數據分別在幾個高斯模型上投影,就會分別得到在各個類上的概率。然后我們可以選取概率最大的類所為判決結果。
spark GMM 算法調用數據測試:


3.LDA



最后總結一下,用GMM的優點是投影后樣本點不是得到一個確定的分類標記,而是得到每個類的概率,這是一個重要信息。GMM每一步迭代的計算量比較大,大於
k-means。GMM的求解辦法基於EM算法,因此有可能陷入局部極值,這和初始值的選取十分相關了。GMM不僅可以用在聚類上,也可以用在概率密度估計上。
