基于Spark的機器學習實踐 (九) - 聚類算法
0 相關源碼
1 k-平均算法(k-means clustering)概述
1.1 回顧無監(jiān)督學習
◆ 分類、回歸都屬于監(jiān)督學習
◆ 無監(jiān)督學習是不需要用戶去指定標簽的
◆ 而我們看到的分類、回歸算法都需要用戶輸入的訓練數(shù)據(jù)集中給定一個個明確的y值
1.2 k-平均算法與無監(jiān)督學習
◆ k-平均算法是無監(jiān)督學習的一種
◆ 它不需要人為指定一個因變量,即標簽y ,而是由程序自己發(fā)現(xiàn),給出類別y
◆ 除此之外,無監(jiān)督算法還有PCA,GMM等
源于信號處理中的一種向量量化方法,現(xiàn)在則更多地作為一種聚類分析方法流行于數(shù)據(jù)挖掘領域。
k-平均聚類的目的是:把n 個點(可以是樣本的一次觀察或一個實例)劃分到k個聚類中,使得每個點都屬于離他最近的均值(此即聚類中心)對應的聚類,以之作為聚類的標準。
這個問題將歸結為一個把數(shù)據(jù)空間劃分為Voronoi cells的問題。
這個問題在計算上是NP困難的,不過存在高效的啟發(fā)式算法。
一般情況下,都使用效率比較高的啟發(fā)式算法,它們能夠快速收斂于一個局部最優(yōu)解。
這些算法通常類似于通過迭代優(yōu)化方法處理高斯混合分布的最大期望算法(EM算法)。
而且,它們都使用聚類中心來為數(shù)據(jù)建模;然而k-平均聚類傾向于在可比較的空間范圍內(nèi)尋找聚類,期望-最大化技術卻允許聚類有不同的形狀。
k-平均聚類與k-近鄰之間沒有任何關系(后者是另一流行的機器學習技術)。
2 k-平均算法原理
2.1 k-平均算法描述
◆ 設置需要聚類的類別個數(shù)K ,以及n個訓練樣本,隨機初始化K個聚類中心
◆ 計算每個樣本與聚類中心的距離,樣本選擇最近的聚類中心作為其
類別;重新選擇聚類中心
◆ 迭代執(zhí)行上一步,直到算法收斂
算法圖示
3 Kmeans算法實戰(zhàn)
官方文檔指南
k-means是最常用的聚類算法之一,它將數(shù)據(jù)點聚類成預定義數(shù)量的聚類
MLlib實現(xiàn)包括一個名為kmeans ||的k-means ++方法的并行變體。
KMeans作為Estimator實現(xiàn),并生成KMeansModel作為基本模型。
代碼
結果
4 LDA算法概述
4.1 LDA算法介紹
◆ LDA即文檔主題生成模型 ,該算法是一種無監(jiān)督學習
◆ 將主題對應聚類中心,文檔作為樣本,則LDA也是一種聚類算法
◆ 該算法用來將多個文檔劃分為K個主題 ,與Kmeans類似
隱含狄利克雷分布(英語:Latent Dirichlet allocation,簡稱LDA),是一種[主題模型],它可以將文檔集中每篇文檔的主題按照[概率分布]的形式給出。
同時它是一種[無監(jiān)督學習]算法,在訓練時不需要手工標注的訓練集,需要的僅僅是文檔集以及指定主題的數(shù)量k即可。
此外LDA的另一個優(yōu)點則是,對于每一個主題均可找出一些詞語來描述它。
LDA首先由 David M. Blei、吳恩達和邁克爾·I·喬丹于2003年提出,目前在[文本挖掘]領域包括文本主題識別、文本分類以及文本相似度計算方面都有應用。
5 LDA算法原理
5.1 LDA算法概述
◆ LDA是一種基于概率統(tǒng)計的生成算法
◆ 一種常用的主題模型,可以對文檔主題進行聚類,同樣也可以用在其他非文檔的數(shù)據(jù)中
◆ LDA算法是通過找到詞、文檔與主題三者之間的統(tǒng)計學關系進行推斷的
5.2 LDA算法的原理
◆ 文檔的條件概率可以表示為
6 LDA算法實踐
官方文檔指南
LDA實現(xiàn)為支持EMLDAOptimizer和OnlineLDAOptimizer的Estimator,并生成LDAModel作為基本模型。如果需要,專家用戶可以將EMLDAOptimizer生成的LDAModel轉(zhuǎn)換為DistributedLDAModel。
代碼
prediction.show()
topics.show(false)
Spark機器學習實踐系列
基于Spark的機器學習實踐 (一) - 初識機器學習
基于Spark的機器學習實踐 (二) - 初識MLlib
基于Spark的機器學習實踐 (三) - 實戰(zhàn)環(huán)境搭建
基于Spark的機器學習實踐 (四) - 數(shù)據(jù)可視化
基于Spark的機器學習實踐 (六) - 基礎統(tǒng)計模塊
基于Spark的機器學習實踐 (七) - 回歸算法
基于Spark的機器學習實踐 (八) - 分類算法
基于Spark的機器學習實踐 (九) - 聚類算法
X 聯(lián)系我
Java交流群
博客
知乎
Github
AI spark 機器學習
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。