聚类
属于无监督学习
目的:找到数据集中的不同群组
分级聚类
主要思想是:
在数据集中找出两个最相似的节点
根据这两个节点生成一个新的聚类节点,这个节点的数据为两个子节点的数据的平均值,
将两个子节点从数据集中去除,将新的聚类节点加入数据
回到1,直至数据集中只剩一个节点
K-means聚类
使用分级聚类的时候,因为得计算所有数据的两两之间的距离,形成新的聚类之后还得重新计算,所以在数据集较大的时候计算量会很大。
除了分级聚类之外还有一种K-均值聚类方法,主要思想为:
随机创建(给定)k个点作为中心点
遍历数据集中每个点,找到距离最近的中心点,将该点划分在该中心点下
遍历并划分完成后,将各个中心点移到自己组下所有点的中心位置
回到2,直到移动之后的结果(不变)和上次一样
结果展示:使用树状图来展现聚类之后的结果
import feedparserimport re# testerror_list = []# 返回一个RSS订阅源的标题和包含单词计数情况的字典def get_word_counts(url): # 解析订阅源 doc = feedparser.parse(url) # 单词计数 wc = {} # 遍历所有文章条目,统计所有单词出现次数 for entry in doc.entries: if 'summary' in entry: summary = entry.summary else: summary = entry.description # 提取出所有单词 words = get_words(entry.title + ' ' + summary) # 统计所有单词出现的次数 for word in words: &nb