机器学习之聚类算法(CANOPY)
2015-10-20 15:16
281 查看
参考:http://chiffon.gitcafe.io/2014/12/28/cluster-analysis.html
CANOPY是另外一个不需要指定K的聚类算法,它的速度很快,不过由于它分类比较粗,因此一般用于在K-Means之前用于确定K的值提供参考。
CANOPY算法分为两大步:
生成canopy
设定T1(松阈值)>T2(紧阈值)
将需要聚类的数据转化为一个list的形式
将list中的第一个点从list中删去,转化为一个新的’canopy’的中心.
对于每个list中的点,将距离在T1以内的点当作这个’canopy’内的点.
对于每个list中的点,将距离在T2以内的点从list中删去.
重复步骤3、4、5
canopy内聚类
有了上面的canopy,可以在各自的canopy内进行聚类计算。聚类算法可以是常用的kmeans,也可以是其他算法。因此,可以讲CANOPY看做是一种算法框架。
问题
上面有一个问题,T1和T2需要用户手动设置,不同的设置可能有不同的聚类结果
对于canopy,若第一步将阈值设置非常大,那么最后只能生成一个canopy,然后在这个canopy内进行聚类。只有T1和T2有意义才能生成超过1个canopy,从而在第二步计算距离时只需要计算同一canopy的距离,从而减少计算量。
CANOPY是另外一个不需要指定K的聚类算法,它的速度很快,不过由于它分类比较粗,因此一般用于在K-Means之前用于确定K的值提供参考。
CANOPY算法分为两大步:
生成canopy
设定T1(松阈值)>T2(紧阈值)
将需要聚类的数据转化为一个list的形式
将list中的第一个点从list中删去,转化为一个新的’canopy’的中心.
对于每个list中的点,将距离在T1以内的点当作这个’canopy’内的点.
对于每个list中的点,将距离在T2以内的点从list中删去.
重复步骤3、4、5
canopy内聚类
有了上面的canopy,可以在各自的canopy内进行聚类计算。聚类算法可以是常用的kmeans,也可以是其他算法。因此,可以讲CANOPY看做是一种算法框架。
问题
上面有一个问题,T1和T2需要用户手动设置,不同的设置可能有不同的聚类结果
对于canopy,若第一步将阈值设置非常大,那么最后只能生成一个canopy,然后在这个canopy内进行聚类。只有T1和T2有意义才能生成超过1个canopy,从而在第二步计算距离时只需要计算同一canopy的距离,从而减少计算量。
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- 也谈 机器学习到底有没有用 ?
- 量子计算机编程原理简介 和 机器学习
- 初识机器学习算法有哪些?
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习书单
- 北美常用的机器学习/自然语言处理/语音处理经典书籍
- 如何提升COBOL系统代码分析效率
- 自动编程体系设想(一)
- 自动编程体系设想(一)
- 支持向量机(SVM)算法概述
- 神经网络初步学习手记
- 常用的分类评估--基于R语言
- 开始spark之旅
- spark的几点备忘
- 关于机器学习的学习笔记(一):机器学习概念
- 关于机器学习的学习笔记(二):决策树算法