建议收藏!10 种 Python 聚类算法完整操作示例

Python019

建议收藏!10 种 Python 聚类算法完整操作示例,第1张

聚类分析是一类将数据所对应的研究对象进行分类的统计方法。这一类方法的共同特点是,事先不知道类别的个数与结构;进行分析的数据是表明对象之间的相似性或相异性的数据,将这些数据看成对对象“距离”远近的一种度量,将距离近的对象归入一类,不同类对象之间的距离较远。

[if !supportLineBreakNewLine]

[endif]

聚类分析根据对象的不同分为Q型聚类分析和R型聚类分析,其中,Q型聚类是指对样本的聚类,R型聚类是指对变量的聚类。本节主要介绍Q型聚类。

一、距离和相似系数

1.1 、距离 在聚类过程中,相距较近的样本点倾向于归为一类,相距较远的样本点应归属于不同的类。最常用的是Minkowski距离。当各变量的单位不同或变异性相差很大时,不应直接采用Minkowski距离,而应先对各变量的数据做标准化处理,然后用标准化后的数据计算距离。使用SciPy库spatial模块下的distance子模块可以计算距离,使用该子模块下的pdist函数可以计算n维空间中观测值之间的距离,其语法格式如下:

获取更多知识,前往前往我的wx ————公z号 (程式解说)

原文来自 https:// https://mp.weixin.qq.com/s/ZB1V8NZHJLfKFgIJgiRxOw

系列文章: 聚类分析(1)之市场细分

聚类分析方法分为快速聚类和系统聚类(层次聚类)。快速聚类spss使用的是K-means聚类算法。该聚类方法需要指定聚类数量,通常我们需要多次尝试并分析多少个类合适。聚类分析适合大样本量情况。样本个数超过500,变量数超过50(并不是强制的)。

聚类分析数据类型为数值型,非数值型变量需要做转换,二分类变量(0,1)可以参与聚类分析。聚类多数适用于连续变量,分类变量适用对应分析。

聚类分析对极端值敏感,同时变量数据的量纲也会影响到聚类结果,需要做标准化处理。

结果依赖于第一次初始分类,聚类中绝大多数重要变化均发生在第一次分配中。

聚类分析中,关于分类时,一种是利用相似系数,性质越接近的,相似系数就越接近1或者-1,通过此来确定归类。另一种是利用空间距离,将每一个点看做m维空间上的一个点,并在空间中定义距离。

在spss中可以设定迭代次数。

来自《Python数据科学:技术详解与商业实践》。聚类效果的评估基于结果的可解释性,通常需要多次聚类才能找到合适的分类。

数据包含6个变量(字段),除了客户编号为名义变量外,其他都是连续变量。

不论什么做什么数据分析,第一步就是查看原始数据的分布,这里应该查看一下各变量的数据分布状态:均值,极大极小值,方差,缺失情况。

通过spss分析-描述

可以看出1.量纲差异较大。2极大极小值组距很大。从这方面可以讲,我们需要做标准化处理。先尝试不做标准化处理。

通过业务知识等,决定先设定5个细分人群,后面可以再尝试4和6。

先做标准化处理:spss分析-描述。在左下角中有一个“将标准化值另存为变量”,标准化为Z分数。确定后会生成新的标准化后的变量。

对标准化后的变量聚类:分析-分类-K-means

选择迭代次数同时将分类结果存在表中。

默认迭代次数是10次,迭代次数过少,可能已经迭代完了仍无法收敛,所以需要增加迭代次数。将分类结果保存在表中,是指对每个样本标注被分到哪一类了。这一步的目的是为了后续通过其他方法(比如比较均值)来看5类人群之间的差异。停

输出4个表格,都是经过标准化处理的。主要查看是否已经迭代收敛。然后下一步就是做均值比较等,目的是查看5类人群是否有差异,分类是否合理。同时还可以在对4和6类人群试做分类。聚类分析无法检验标准,

通过比较均值,可以了解5类人群之间的差异

输出的结果

从结果中可以看出

第一类:高端商用客户,总通话时间长,工作日上班时间通话比例高

第二类:少使用低端客户,总通话时间短,各时段通话时间都短

第三类:中端商用客户,总通话时间居中,工作日上班时间通话比例高

第四类:中端日常用客户,总通话时间居中,工作日下班时间通话比例高

第五类:长聊客户,每次通话时间长