集體智慧編程——發現羣組

目錄

1. 監督學習和無監督學習

2. 對博客用戶進行聚類

2.1 建立單詞向量

2.2 層次聚類

2.3 列聚類

2.4 K-均值聚類

3. 以二維形式展現數據


1. 監督學習和無監督學習

  • 監督學習:利用樣本輸入和期望輸出來學習如何預測,如:神經網絡、決策樹、支持向量機、貝葉斯過濾等等;
  • 無監督學習:在一羣數據中找尋某種結構,而這些數據本身並不是我們要找的答案。

 

2. 對博客用戶進行聚類

根據單詞出現的頻度對博客進行聚類,可以幫助我們分析出是否存在這樣一類博客用戶,這些人經常撰寫相似的主題,或者在寫作風格上十分相似。這樣的分析結果對於搜索、分類和挖掘當前大量的在線博客而言是非常有價值的。

2.1 建立單詞向量

對博客中的單詞進行計數:

BLOG "China" "kids" "music" "yahoo"
Gothamist 0 3 3 0
GigaOM 6 0 0 2
Quick Online Tips 0 2 2 22

我們可以設定範圍來減少需要考慮的單詞總量,同時也可以剔除無意義的或少量單詞。設置的邊界可以爲0.1~0.5

2.2 層次聚類

通過連續不斷的合併最爲相似的羣組來構造出一個羣組的層級結構。每一個羣組都是單一元素開始的,在本例中,單一元素爲微博。

在本例中,我們採用皮爾遜相似度來計算兩兩元素之間的相似度。

層次聚類計算量非常大,因爲必須計算每兩對之間的配對關係,並在合併後重新計算。

2.3 列聚類

之前我們研究的是對用戶進行聚類,此外當我們進行市場研究的時候,對消費羣體進行分組可以幫助我們摸清楚消費者的統計信息和產品狀況,還可能有助於我們確定哪些上架商品可以進行捆綁銷售。在博客數據集中,列代表的是單詞在每篇博客中的出現次數,知道哪些單詞時常會結合在一起使用也是非常有意義的。

直接將矩陣進行轉置,然後利用分層聚類即可。

2.4 K-均值聚類

首先隨機確定K箇中心位置,然後將各個數據項分給最鄰近的中心點,分配完成後聚類中心就會移到分配給該聚類的所有節點的平均位置處,然後整個分配過程重新開始,一直重複下去知道分配過程不在產生變化爲止。

區別於KNN,KNN是分類算法,K-means是聚類算法。

 

3. 以二維形式展現數據

多維縮放算法:根據每對數據項之間的差距,嘗試繪製一幅圖,圖中數據項之間的距離遠近,對應於他們彼此間的差異程度。爲了做到這一點,算法需要計算出所有項之間的目標距離。

我們採用皮爾遜相關度來定量:

  A B C D
A 0 0.2 0.8 0.7
B   0 0.9 0.8
C     0 0.1
D       0

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章