python分层聚类集群合并_24、python分层聚类案例(scipy方法)

目录

1、分层聚类算法

2、方法

3、分析步骤

4、案例

1、分层聚类算法

层次聚类算法又称为树聚类算法,它根据数据之间的距离,透过一种层次架构方式,反复将数据

进行聚合,创建一个层次以分解给定的数据集。

2、方法

01 聚类方法

linkage=scipy.cluster.hierarchy.linkage(data,method='single')

data  训练样本

method 类距离的计算公式:

1、single l两个类之间最短距离的点的距离

2、complete 两个类之间最长距离的点的距离

3、centroid 两个所有点的中点的距离

02 层次聚类绘图

scipy.cluster.hierarchy.dendrogram(linkage)

linkage    层次聚类的结果

03 层次聚类分类方法

scipy.cluster.hierarchy.fcluster(linkage,n,criterion='maxclust')

linkage   层次聚类的结果

n         要聚类的个数

criterion 划分方法,使用maxclust,最大划分法

3、分析步骤

01 计算每两个点距离的平方

计算公式:也就是两个点距离的平方。

02 找出他们之间的最近距离进行合并

两点的均值作为新值,归为一类

03 重新计算新生成的这个类与各个旧类之间的相似度

04 重复胡2和3的步骤

4、案例

import pandas as pd

import matplotlib.pyplot as plt

data=pd.read_csv('D:\\DATA\\pycase\\7.1\\data.csv')

# 提取关键特征 data.columns

fColumns=[ '工作日上班时电话时长', '工作日下半时电话时长', '周末电话时长', '国际电话时长', '总电话时长',

'平均每次通话时长']

# 导入距离计算公式,并且进行训练数据

import scipy.cluster.hierarchy as hcluster

linkage=hcluster.linkage(

data[fColumns],

method='centroid')

# 查看层次聚类的结果

hcluster.dendrogram(linkage)

# 仅仅查看其中一部分的数据,这里查看12个数据

hcluster.dendrogram(

linkage,

truncate_mode='lastp',

p=12,

leaf_font_size=12.

)

# 进行层次聚类

pTarget=hcluster.fcluster(

linkage,3,

criterion='maxclust')

# 对样本量进行统计交叉

pd.crosstab(pTarget,pTarget)

# 通过PCA对数据进行降维

from sklearn.decomposition import PCA

pca_2=PCA(n_components=2)

data_pca=pca_2.fit_transform(data[fColumns])

# 转化为数据框

data_pca_2=pd.DataFrame(data_pca)

# 绘图

plt.scatter(

data_pca_2[0],

data_pca_2[1],

c=pTarget)

# 绘制每个数据特征的影响和表现

# 3 定义空的数据框

dMean=pd.DataFrame(columns=fColumns+['分类'])

data_gb=data[fColumns].groupby(pTarget)

i=0;

for g in data_gb.groups:

rMean=data_gb.get_group(g).mean()

rMean['分类']=g

dMean=dMean.append(rMean,ignore_index=True)

subData=data_gb.get_group(g)

for column in fColumns:

i=i+1

p=plt.subplot(3,5,i)

p.set_title(column)

p.set_ylabel(str(g)+"分类")

plt.hist(subData[column],bins=20)

# 绘制折线图data.columns

pTarget=pTarget-1 # 下面绘图从0开始绘制

r=data[['工作日上班时电话时长', '工作日下半时电话时长', '周末电话时长', '国际电话时长']]

r.index=data.客户编号

r['聚类类别']=pTarget

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

#有中文出现的情况,需要u'内容'

style=['ro-','go-','bo-']

fColumns2=[ '工作日上班时电话时长', '工作日下半时电话时长', '周末电话时长', '国际电话时长']

xlabels=fColumns2

# # %matplotlib qt 弹窗

k=3

for i in range(k): #注意作图、做出不同样式

plt.figure()

tmp=r[r[u'聚类类别']==i].iloc[:,:4] # 提取每一类

for j in range(len(tmp)):

plt.plot(range(1,5),tmp.iloc[j],style[i])

plt.xticks(range(1,5),xlabels,rotation=20) #坐标标签

plt.subplots_adjust(bottom=0.15) # 调整底部

plt.savefig(u'%s%s,png'%('D:\\DATA\\pycase\\7.1\\scipy',i)) #保存图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经典回放】多种语言系列数据结构算法:数组

数组如同前面学过的顺序表,一次性申请一片地址连续的存储空间,我们还知道,计算机中数组是以一维的形式存储的,因为计算机的内存的一维的。在知道了多维数据的计算机存储方式后,我们还要知道构造一个多维数据的方法,并构造ADT,具体做法如下所示: 内容和步骤: 1、C语言中…

stl中Priority Queues(优先队列)的基本用法

博客搬家啦 blog.ma6174.comstl中Priority Queues(优先队列)的基本用法 C优先队列类似队列, 但是在这个数据结构中的元素按照一定的断言排列有序。 C Priority Queues(优先队列) empty 语法: bool empty(); empty()函数返回真(true)如果优先队列为空,否则…

如何用 windbg 导出 C# 中的 string 内容?

咨询区 driis我在用 windbg 调试一个生产上的 程序卡死 故障 ,在线程栈上有一个 string 类型的参数相当大,我用 !dumpobj 命令不能正常显示内容,参考如下:0:036> !do 00000001b30d8668 Name: System.String MethodTable: 00000…

《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量

一、学习目标 了解C语言的基本数据类型了解变量的基本概念了解变量的使用方法了解了变量的命名方法了解格式占位符了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。 第一篇:(一)脱离…

android一句话搞定图片加载

http://square.github.io/picasso/ Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); gradle中添加 compile com.squareup.picasso:picasso:2.5.2 转载于:https://www.cnblogs.com/rwxwsblog/p/5467874.html

转HTML+CSS总结/深入理解CSS盒子模型

原文地址:http://www.chinaz.com/design/2010/1229/151993.shtml 前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverflow上求助。ifaou在帮助我解决我问题的同时,还推荐我阅读一篇有关CSS盒子…

主成分分析步骤_多元分析(1)--主成分分析

主成分分析主成分分析(PCA)是数据降维的一种常见方法,其它常见的方法还有因子分析(FA),独立成分分析,在进行大数据处理时,因为数据有很多特征,维数过高,不容易进行处理且…

ArcGIS实验教程——实验十九:网络分析(最短路径实现)

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析、位置分配分析和高级网络的管理与创建等。 网络…

设计模式之策略模式和状态模式

1 策略模式 我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法, 我们可以简单理解为更加不同的策略对象,执行不同策略方法。 2 类图 3 代码实现 1)接口:Strat…

期待已久的Java 9 今日发布

人们期待已久的Java SE 9.0将在2017年9月21日发布,它会带来一些重要的变化。\\JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少…

AspNetCore7.0源码解读之UseMiddleware

前言本文编写时源码参考github仓库主分支。aspnetcore提供了Use方法供开发者自定义中间件,该方法接收一个委托对象,该委托接收一个RequestDelegate对象,并返回一个RequestDelegate对象,方法定义如下:IApplicationBuild…

边工作边刷题:70天一遍leetcode: day 11-3

Single Number I/II II的python解是网上抄的,其实可以AC,但是python不会像c/java那样自动overflow,而是转化成long。所以如果有负数的情况会得到一个巨大的正数解,比如 Input:[-2,-2,1,1,-3,1,-3,-3,-4,-2] Output:4294967292 Exp…

《零基础看得懂的C语言入门教程 》——(五)C语言的变量、常量及运算

一、学习目标 了解C语言变量的其它创建方式了解C语言常量了解C语言的运算符 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。 第一篇:(一)脱离学习误区 第二篇:(二&#xff…

实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI

系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI 实战使用Axu…

ArcGIS实验教程——实验二十:ArcGIS数字高程模型DEM建立

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 本实验讲述DEM的创建方法和过程。DEM的采集方法有四种:地面测量、摄影测量、空间站、地形图数字化。 二、实验内容 1、插值法DEM建立 2、创建TIN 3、TIN转栅格 4、生成等高线 …

思科asa5515端口映射_Cisco ASA端口映射

SQL基础--同义词同义词的概念: 同义词是Oracle对象的别名,使用同义词访问相同的对象 可以为表.视图.存储过程.函数或另一同义词等对象创建同义词 方便访问其它用户的对象,隐藏了对象的身份 缩短对象名字的长度 同义 ...访问本地json文件因跨域导致的问题我使用jquery的getJSON的…

英文词频统计预备,组合数据类型练习

实例: 下载一首英文的歌词或文章,将所有,.?!等替换为空格,将所有大写转换为小写,统计某几个单词出现的次数,分隔出一个一个的单词。2.列表实例:由字符串创建一个作业评分列表,做增删…

ArcGIS实验教程——实验二十一:DEM分析

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 表面分析主要通过生成新数据集,如等值线、坡度、坡向、山体阴影等派生数据,获取更多的反应原始数据集中所暗含的空间特征、空间格局等信息。 二、实验内容 1、地形因子计算 2、填…

《零基础看得懂的C语言入门教程 》——(六)轻轻松松了解C语言的逻辑运算

一、学习目标 了解逻辑判断的概念了解if语句的使用方法了解switch语句的使用方法了解逻辑运算符的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。 第一篇:(一)脱离学习误区 第二篇&#…

.NET 6 在 Win7 系统证书链错误导致 HttpWebRequest 内存泄露

本文记录我将应用迁移到 dotnet 6 之后,在 Win7 系统上,因为使用 HttpWebRequest 访问一个本地服务,此本地服务开启 https 且证书链在此 Win7 系统上错误,导致应用内存泄露问题。本文记录此问题的原因以及调查过程核心原因核心原因…