聚類

屬于無監(jiān)督學習

目的:找到數據集中的不同群組

分級聚類

主要思想是:

  1. 在數據集中找出兩個最相似的節(jié)點

  2. 根據這兩個節(jié)點生成一個新的聚類節(jié)點,這個節(jié)點的數據為兩個子節(jié)點的數據的平均值,

  3. 將兩個子節(jié)點從數據集中去除,將新的聚類節(jié)點加入數據

  4. 回到1,直至數據集中只剩一個節(jié)點

K-means聚類

使用分級聚類的時候,因為得計算所有數據的兩兩之間的距離,形成新的聚類之后還得重新計算,所以在數據集較大的時候計算量會很大。
除了分級聚類之外還有一種K-均值聚類方法,主要思想為:

  1. 隨機創(chuàng)建(給定)k個點作為中心點

  2. 遍歷數據集中每個點,找到距離最近的中心點,將該點劃分在該中心點下

  3. 遍歷并劃分完成后,將各個中心點移到自己組下所有點的中心位置

  4. 回到2,直到移動之后的結果(不變)和上次一樣

結果展示:使用樹狀圖來展現聚類之后的結果

import feedparserimport re# testerror_list = []# 返回一個RSS訂閱源的標題和包含單詞計數情況的字典def get_word_counts(url):
    # 解析訂閱源
    doc = feedparser.parse(url)    
    # 單詞計數
    wc = {}    
    # 遍歷所有文章條目,統(tǒng)計所有單詞出現次數
    for entry in doc.entries:        if 'summary' in entry:
            summary = entry.summary        else:
            summary = entry.description        
        # 提取出所有單詞
        words = get_words(entry.title + ' ' + summary)        # 統(tǒng)計所有單詞出現的次數
        for word in words:
 &nb
        
		

網友評論