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


Posted in Python onMarch 18, 2019

本文实例为大家分享了Python实现简单层次聚类算法,以及可视化,供大家参考,具体内容如下

基本的算法思路就是:把当前组间距离最小的两组合并成一组。

算法的差异在算法如何确定组件的距离,一般有最大距离,最小距离,平均距离,马氏距离等等。

代码如下:

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次

运行的效果就是迭代一次,组数就会少一次,调用画图方法,同一组的数据被显示为一个颜色。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python import用法以及与from...import的区别
May 28 Python
python实现图片变亮或者变暗的方法
Jun 01 Python
pygame实现弹力球及其变速效果
Jul 03 Python
Pycharm远程调试openstack的方法
Nov 21 Python
用python处理图片实现图像中的像素访问
May 04 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
pandas 如何分割字符的实现方法
Jul 29 Python
python 有效的括号的实现代码示例
Nov 11 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
python 调用js的四种方式
Apr 11 Python
PyQt5实现简单数据标注工具
Mar 18 #Python
Python简单I/O操作示例
Mar 18 #Python
python实现简单图片物体标注工具
Mar 18 #Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 #Python
Python动态赋值的陷阱知识点总结
Mar 17 #Python
Python将字符串常量转化为变量方法总结
Mar 17 #Python
实例讲解Python中整数的最大值输出
Mar 17 #Python
You might like
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue实现购物车案例
2020/05/30 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
python中tab键是什么意思
2020/06/18 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
精彩的英文自荐信
2014/01/30 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
关于环保的活动方案
2014/08/25 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
开票员岗位职责
2015/02/12 职场文书
公司承诺书格式范文
2015/04/28 职场文书
文明礼仪倡议书
2015/04/28 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python