本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。
Canopy算法是2000年由Andrew McCallum, Kamal Nigam and Lyle Ungar提出来的,它是对k-means聚类算法和层次聚类算法的预处理。众所周知,kmeans的一个不足之处在于k值需要通过人为的进行调整,后期可以通过肘部法则(Elbow Method)和轮廓系数(Silhouette Coefficient)来对k值进行最终的确定,但是这些方法都是属于“事后”判断的,而Canopy算法的作用就在于它是通过事先粗聚类的方式,为k-means算法确定初始聚类中心个数和聚类中心点。使用的包:
1 2 3 4 5 6 |
|
1.首先我在算法中预设了一个二维(为了方便后期画图呈现在二维平面上)数据dataset。
当然也可以使用高纬度的数据,并且我将canopy核心算法写入了类中,后期可以通过直接调用的方式对任何维度的数据进行处理,当然只是小批量的,大批量的数据可以移步Mahout和Hadoop了。
1 2 |
|
相关推荐:《Python视频教程》
2.然后生成个两类,类的属性如下:
1 2 3 4 5 |
|
加入设定t1和t2初始值以及判断大小函数
1 2 3 4 5 6 7 |
|
3.距离计算,各个中心点之间的距离计算方法我使用的欧式距离。
1 2 3 |
|
4.再写个从dataset中根据dataset的长度随机选择下标的函数
1 2 3 |
|
5.核心算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
为了方便后面的数据可视化,我这里的canopies定义的是一个数组,当然也可以使用dict。
6.main()函数
1 2 3 4 5 6 7 8 |
|
Canopy聚类可视化代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
效果图如下:
以上就是python怎么实现canopy聚类的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。