Canopy聚类算法(经典,看图就明白)

聚类算法。

这个算法获得的并不是最终结果,它是为其他算法服务的,比如k-means算法。它能有效地降低k-means算法中计算点之间距离的复杂度。

图中有一个T1,一个T2,我们称之为距离阀值,显然T1>T2,这两个值有什么用呢?我们先确定了一个中心,然后计算其他点到这个中心间的距离,当距离大于T1时,小于T1大于T2时,小于T2时,对这个点的处理都是不一样的。

算法伪代码:

while D is not empty
select element d from D to initialize canopy c
remove d from D
Loop through remaining elements in D
if distance between d_i and c < T1 : add element to the canopy c
if distance between d_i and c < T2 : remove element from D
end
add canopy c to the list of canopies C
end

D指代一组数据,d_i表示D中的各个数据。

1:给我一组存放在数组里面的数据D

2:给我两个距离阈值T1,T2,且T1>T2

3:随机取D中的一个数据d作为中心,并将d从D中移除

4:计算D中所有点到d的距离distance

5:将所有distance<T1的点都归如到d为中心的canopy1类中(注意哦,小于T2的也是小于T1的,所以也是归入到canopy1中的哦)

6:将所有distance<T2的点,都从D中移除。(这一步很关键的,你回去看上面那个图,就明白了)

7:重复步骤4到6,直到D为空,形成多个canopy类

关键点在于t1,t2:

当与中心的距离大于T1时,这些点就不会被归入到中心所在的这个canopy类中。

然当距离小于T1大于T2时,这些点会被归入到该中心所在的canopy中,但是它们并不会从D中被移除,也就是说,它们将会参与到下一轮的聚类过程中,成为新的canopy类的中心或者成员。亦即,两个Canopy类中有些成员是重叠的。

而当距离小于T2的时候,这些点就会被归入到该中心的canopy类中,而且会从D中被移除,也就是不会参加下一次的聚类过程了。

最新文章

  1. [译] 给PHP开发者的PHP源码-第一部分-源码结构
  2. I finally made sense of front end build tools. You can, too.
  3. Mysql 该如何 Entity Framework 数据库迁移 和 如何更好的支持EntityFramework.Extended
  4. Android 获取设备信息 异常
  5. Struts2的处理结果(三)——动态配置结果
  6. kvm相关文章
  7. Help And Manual 帮助文件制作工具
  8. *[hackerrank]Tree Covering
  9. C#中的操作数据库的SQLHelper类
  10. Angular - - $templateCache 和 $templateRequest
  11. Bzoj4916: 神犇和蒟蒻
  12. Linux内核通用队列的使用笔记(读linux内核设计与实现)
  13. 电脑出现问题如何修复Windows 10
  14. centos安装make
  15. Codeforces 438E The Child and Binary Tree - 生成函数 - 多项式
  16. submit form to convert to a Java Bean model.
  17. LOJ 2292 「THUSC 2016」成绩单——区间DP
  18. numpy.distutils.system_info.NotFoundError: no lapack/blas resources found问题解决
  19. Structs复习 Structs标签
  20. 安装Flume的时候出现File Channel transaction capacity cannot be greater than the capacity of the channel capacity -解决方案 摘自网络

热门文章

  1. 四十 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引
  2. sizeof结构体
  3. Android 中的BroadCastReceiver
  4. 多线程实现方式---实现Runnable接口
  5. Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
  6. [置顶] Android 适配真要命?
  7. [转]MFC 调用 printf 输出
  8. Apache的Mod_rewrite学习 (RewriteCond重写规则的条件) 转
  9. flask中cookie和session介绍
  10. iOS开发单例模式 dispatch_once