- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现简单层次聚类算法以及可视化由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享了Python实现简单层次聚类算法,以及可视化,供大家参考,具体内容如下 。
基本的算法思路就是:把当前组间距离最小的两组合并成一组.
算法的差异在算法如何确定组件的距离,一般有最大距离,最小距离,平均距离,马氏距离等等.
代码如下:
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
26
27
28
29
30
31
32
33
34
35
|
import
numpy as np
import
data_helper
np.random.seed(
1
)
def
get_raw_data(n):
_data
=
np.random.rand(n,
2
)
#生成数据的格式是n个(x,y)
_groups
=
{idx:[[x,y]]
for
idx,(x,y)
in
enumerate
(_data)}
return
_groups
def
cal_distance(cluster1,cluster2):
#采用最小距离作为聚类标准
_min_distance
=
10000
for
x1,y1
in
cluster1:
for
x2,y2
in
cluster2:
_distance
=
(x1
-
x2)
*
*
2
+
(y1
-
y2)
*
*
2
if
_distance<_min_distance:
_min_distance
=
_distance
return
_distance
groups
=
get_raw_data(
10
)
count
=
0
while
len
(groups)!
=
1
:
#判断是不是所有的数据是不是归为了同一类
min_distance
=
10000
len_groups
=
len
(groups)
for
i
in
groups.keys():
for
j
in
groups.keys():
if
i>
=
j:
continue
distance
=
cal_distance(groups[i],groups[j])
if
distance<min_distance:
min_distance
=
distance
min_i
=
i
min_j
=
j
#这里的j>i
groups[min_i].extend(groups.pop(min_j))
data_helper.draw_data(groups)
#一共n个簇,共迭代n-1次
|
运行的效果就是迭代一次,组数就会少一次,调用画图方法,同一组的数据被显示为一个颜色.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/york1996/article/details/86652330 。
最后此篇关于Python实现简单层次聚类算法以及可视化的文章就讲到这里了,如果你想了解更多关于Python实现简单层次聚类算法以及可视化的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!