gpt4 book ai didi

Python实现简单层次聚类算法以及可视化

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 28 4
gpt4 key购买 nike

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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com