unit3 文字聚類

weixin_34234823發表於2018-05-11

《集體智慧程式設計》第三單元“發現群組”主要亮點是文字的聚類。故針對第三單元的部落格文字聚類做記錄。

5616135-a9afd076e7547fd3.png

1、資料物件

通過讀取每個部落格的詞彙,統計詞頻,形成如下單詞表作為本次文字聚類的資料資料。第一列為所有部落格名稱,第一行為部落格中出現的詞彙,中間數值表示某個部落格出現該詞彙的次數。

5616135-654f6f53ba0d5333.png

2、分級聚類

分級聚類通過連續不斷地將最為相似的群組兩兩合併,來構造出一個群組的層級結構。
每個群組都是從單一元素開始的。在每次迭代的過程中,分級聚類演算法會計算每兩個群組間的距離,並將距離最近的兩個群組合併成一個新的群組。這一過程會一直重複下去,直至只剩一個群組為止。

5616135-b7a4151cdff0284d.png

【相似度定義】元素的相似度由相對位置體現,距離越近越相似。
【缺點】計算量太大,必須計算每兩個配對項之間的關係,並且在合併之後還需要重新計算新距離,在處理大規模的資料集時,該演算法的執行速度會非常緩慢。

考慮分級聚類的實質,在實際執行中我只處理了部分部落格資料,產生的聚類劃分結果如下所示:

5616135-139b230c40cd6b1d.png

3、K均值聚類

  • 首先隨機確定K箇中心位置。(需實現確定要劃分的類別數量)
  • 然後將各個資料項分配給最鄰近的中心點。分配完成後,重新安置中心點,中心點設定為群內元素中心位置。
  • 進入第二輪迴圈,最鄰近劃分--->重新安置中心點---->
  • 迴圈······
5616135-b79fea33098f2060.png

【要求】預先告訴演算法希望生成的聚類數量.
【缺點】由於初始中心的隨機選取,每次聚類結果是不一樣的
【優點】演算法執行速度更快

對部分部落格資料進行k均值聚類,當劃分為5類部落格時,劃分結果如下所示:

5616135-397bcf6b108e108e.png

4、實際結合

相關文章