2019/2/18-星期一-下雨天
今天利用spss做了一个关于移动电话客户手机通话时间聚类分析的案例。一看K-means聚类分析以为很高大尚,其实用spss来做,就只是点点两三下的事情,但是对数据本身的解析才是最重要的地方。
首先先讲两个概念k-means是什么,聚类又是什么?
一、概念理论
①、K均值聚类算法(k-means算法),又叫快速聚类法,可以用于大量数据进行聚类分析的情形。
算法实现的概要如下:
1、初始化常数k,随机选取初始点为质心。
2、重复计算以下过程,直到质心不在改变。
2.1、计算样本与每个质心之间的相似度,将样本归类到最相似的类中;
2.2、重新计算质心;
3、输出最终的质心以及每个类。
②、聚类是组成多个类的过程,常常让人联想到分类。个人认为,聚类归属无监督,分类归属有监督;完全由数据本身自发的分类。
二、模型分析
①数据预处理
原始数据:https://pan.baidu.com/s/1pRnxBD0SC6znuOC3qJPP2w,包含客户编号、工作日上班时间通话时长、工作日下班通话时长、周末电话通话时长、国际电话时长、总通话时长、平均每次通话时长。
我们需要对数据进行常规空值,异常值,数据类型,统计口径是否符合等检测数据是否合理。
接着查看变量的描述统计指标,可以看出周末电话时长的标准差跟其他数据相差较大,虽然各个变量的统计时间长度其实是不同,但是这边考虑作为独立的变量,所以需要对数据进行进行标准化处理。
数据标准化处理:分析--描述---
②尝试性进行k-means迭代:
聚类数5,迭代次数5次;聚类数5以及迭代次数5次都是用户自己定义的。点击【确定】
输出运行结果:包括初始聚类中心、迭代历史记录、最终聚类中心、聚类个案数。
其中根据图10,我们看出迭代没能到达收敛,需要增加迭代次数,这里我增加到100次。
为了能够看到每一条数据别分到哪一类中,所以我们需要保存聚类成员,在k-means迭代选择面版中选择,保存,勾选。
标准化后的结果,我们并没有很直观地观察数据结果,所以操作【分析】--【比较平均值】--【平均值】
这一就是我们最终所希望看到分类各类均值结果。
接下来我们需要解读我们分类好的每一类数据。
第一类:总通话时长,国际电话时长、工作日通话时长(上班、下班)都是比较高的。这类用户数量为443人。总通话时长也是各类中最高的,并且上班时间通话时长也是最高的,所以可以将这类客户定义为“高端商用客户”。
第二类:总通话时长,国际通话时长,工作日通话时长(上班,下班)都是比较低的。这类用户数量为1239人。总通话时长在各类中是最低的。上班通话时长(上班,下班)也是最低到的,所以可以将这类客户定义为“少用低端客户”。
第三类:总通话时长,国际通话时长都是中等的。这类用户数量831人。该类客户上班通话时长在总通话时长中占比相当高。所以这类客户可以定义为“中端商用客户”。
第四类:总通话时长,国际通话时长都是中等的。这列用户数量809人。这类客户下班通话时长在总通话时长中占比相当高。所以这类客户可以定义为“中端日常客户”。
第五类:最明显的特征是平均通话时长为22.67。相对于其他类的通话时长高了5倍以上。所以可以定义这类客户为“长聊客户”