快捷搜索:  汽车  科技

怎样用spss进行聚类分析(还在用SPSS做聚类分析)

怎样用spss进行聚类分析(还在用SPSS做聚类分析)说明:使用前需要安装,安装命令:pip install scipyimport pandas as pd cdata=pd.read_excel('../data/clusterdata.xlsx' sheet_name='data1' index_col='编号') cdata.head() 系统聚类法(层次聚类法)1、实现系统聚类法的第一种方式:scipy2、系统聚类法(层次聚类法)3、K-mean聚类法Python中的scikit-learn库和scipy库都有聚类分析算法的实现,下面将分别演示。

下表是同一批客户对经常光顾的五座商厦在购物环境和服务质量两方面的平均评分。现希望根据这批数据将五座商厦分类。

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(1)

说明:数据源就只有5行,大家练习的时候,可以直接手动输入这些数据到Excel中。

以下内容分3部分:

1、数据源读取

2、系统聚类法(层次聚类法)

3、K-mean聚类法

Python中的scikit-learn库和scipy库都有聚类分析算法的实现,下面将分别演示。

数据源读取

import pandas as pd cdata=pd.read_excel('../data/clusterdata.xlsx' sheet_name='data1' index_col='编号') cdata.head()

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(2)

系统聚类法(层次聚类法)

1、实现系统聚类法的第一种方式:scipy

说明:使用前需要安装,安装命令:pip install scipy

from scipy.cluster.hierarchy import linkage dendrogram cut_tree hcluster=linkage(cdata method='single' metric='euclidean') hcluster

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(3)

说明:以上结果反映了聚类分析的过程,SPSS中有类似的结果。

#绘制聚类图谱 hdiagram=dendrogram(hcluster)

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(4)

clabels=cut_tree(hcluster n_clusters=3) #假设分3个类别 clabels

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(5)

cdata_rst=pd.concat([cdata Series(clabels.T[0] index=cdata.index)] axis=1) cdata_rst

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(6)

cdata_rst.columns=['购物环境' '服务质量' '类别'] #cdata_rst.columns=list(cdata.columns) ['类别'] cdata_rst

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(7)

结论:从上面可以看出,将这5座商厦分成3类,A、B属于一个类别,C属于一个类别,D、E属于一个类别。

2、实现系统聚类法的第二种方式:sklearn

说明:使用前需要安装,安装命令:pip install scikit-learn

from sklearn.cluster import AgglomerativeClustering amodel=AgglomerativeClustering(n_clusters=3 affinity='euclidean' linkage='ward') amodel.fit(cdata)

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(8)

#获取类别标签 amodel.labels_

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(9)

接着就是把标签赋回原记录,跟上面一样。

K-Means聚类法

1、实现K-Means聚类法第一种方式:scipy

#scipy from scipy.cluster.vq import KMeans2 zcdata=(cdata-cdata.mean())/cdata.std() kmodel=kmeans2(zcdata k=3 iter=10 minit="points") kmodel[1]

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(10)

2、实现K-Means聚类法第一种方式:sklearn

from sklearn.cluster import KMeans kmodel=KMeans(n_clusters=3 n_jobs=4 max_iter=10) kmodel.fit(cdata)

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(11)

#获取样本的类别标签 kmodel.labels_

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(12)

#将类别标签赋回原记录 cdata_rst1=pd.concat([cdata Series(kmodel.labels_ index=cdata.index)] axis=1) cdata_rst1.columns=list(cdata.columns) ['类别'] cdata_rst1

怎样用spss进行聚类分析(还在用SPSS做聚类分析)(13)

总结:

1、从上面可以看出,将这5座商厦分成3类,A、B属于一个类别,C属于一个类别,D、E属于一个类别,两种聚类分析方法的结论大体都是一致的。

2、在Python中,有两个库都可以实现聚类分析:scikit-learn和scipy。

3、对于系统聚类法,scikit-learn库无法直接聚类图谱,所以这里通过scipy来绘制聚类图谱。

感谢观看,喜欢的朋友,关注走一波,后续内容更精彩!

猜您喜欢: