聚類
屬于無監(jiān)督學習
目的:找到數(shù)據(jù)集中的不同群組
分級聚類
主要思想是:
在數(shù)據(jù)集中找出兩個最相似的節(jié)點
根據(jù)這兩個節(jié)點生成一個新的聚類節(jié)點,這個節(jié)點的數(shù)據(jù)為兩個子節(jié)點的數(shù)據(jù)的平均值,
將兩個子節(jié)點從數(shù)據(jù)集中去除,將新的聚類節(jié)點加入數(shù)據(jù)
回到1,直至數(shù)據(jù)集中只剩一個節(jié)點
K-means聚類
使用分級聚類的時候,因為得計算所有數(shù)據(jù)的兩兩之間的距離,形成新的聚類之后還得重新計算,所以在數(shù)據(jù)集較大的時候計算量會很大。
除了分級聚類之外還有一種K-均值聚類方法,主要思想為:
隨機創(chuàng)建(給定)k個點作為中心點
遍歷數(shù)據(jù)集中每個點,找到距離最近的中心點,將該點劃分在該中心點下
遍歷并劃分完成后,將各個中心點移到自己組下所有點的中心位置
回到2,直到移動之后的結(jié)果(不變)和上次一樣
結(jié)果展示:使用樹狀圖來展現(xiàn)聚類之后的結(jié)果
import feedparserimport re# testerror_list = []# 返回一個RSS訂閱源的標題和包含單詞計數(shù)情況的字典def get_word_counts(url): # 解析訂閱源 doc = feedparser.parse(url) # 單詞計數(shù) wc = {} # 遍歷所有文章條目,統(tǒng)計所有單詞出現(xiàn)次數(shù) for entry in doc.entries: if 'summary' in entry: summary = entry.summary else: summary = entry.description # 提取出所有單詞 words = get_words(entry.title + ' ' + summary) # 統(tǒng)計所有單詞出現(xiàn)的次數(shù) for word in words: &nb