1. 程式人生 > >基於spark Mllib(ML)聚類實戰

基於spark Mllib(ML)聚類實戰

    寫在前面的話:由於spark2.0.0之後ML中才包括LDA,GaussianMixture 模型,這裡k-means用的是ML模組做測試,LDA,GaussianMixture 則用的是MLlib模組

資料資料下載網站,大力推薦!!!

1.Kmeans

    大致思想就是把資料分為多個堆,每個堆就是一類。每個堆都有一個聚類中心(學習的結果就是獲得這k個聚類中心),這個中心就是這個類中所有資料的均值,而這個堆中所有的點到該類的聚類中心都小於到其他類的聚類中心,分類的過程就是將未知資料對這k個聚類中心進行比較的過程。

 spark kmeans 演算法呼叫 資料演練

 

2.GMM 

    另外一種比較流行的聚類方法 Gaussian Mixture Model

    大致思想就是指對樣本的概率密度分佈進行估計,而估計的模型是幾個高斯模型加權之和(具體是幾個要在模型訓練前建立好)。每個高斯模型就代表了一個類(一個

Cluster)。對樣本中的資料分別在幾個高斯模型上投影,就會分別得到在各個類上的概率。然後我們可以選取概率最大的類所為判決結果。

    spark GMM 演算法呼叫資料測試:

 

3.LDA

    最後總結一下,用GMM的優點是投影后樣本點不是得到一個確定的分類標記,而是得到每個類的概率,這是一個重要資訊。GMM每一步迭代的計算量比較大,大於

k-means。GMM的求解辦法基於EM演算法,因此有可能陷入區域性極值,這和初始值的選取十分相關了。GMM不僅可以用在聚類上,也可以用在概率密度估計上。