原理:先设置两个先验值r1,r2,我把他们理解为内圈外圈,大家可以跟我学。将所有样本放入一个列表,随机选一个样本拿出来作为第一个簇的簇中心点,然后从列表中剩下的所有样本中随机抽取一个,,计算其与簇中心点的距离。
如果大于外圈r1,则不属于此簇,而是拿出去单独成为一簇,并作为簇中心点,从列表中删除此样本
如果大于内圈r2,且小于外圈r1,则属于此簇,放入簇中。
如果小于内圈r2,哎呀,了不得呀!这家伙和簇中心点很是亲近呐,这么亲近,当然要更新一下簇中心点以示尊敬了。把这个点和簇中心点相加取均值作为此簇新的簇中心点。从列表中删除此样本
直到列表中没有样本为止
Canopy算法得到的最终结果的值,聚簇之间是可能存在重叠的,但是不会
存在某个对象不属于任何聚簇的
应用场景: