分析总结Python数据化运营KMeans聚类_第1页
分析总结Python数据化运营KMeans聚类_第2页
分析总结Python数据化运营KMeans聚类_第3页
分析总结Python数据化运营KMeans聚类_第4页
分析总结Python数据化运营KMeans聚类_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第分析总结Python数据化运营KMeans聚类以Python使用Keans进行聚类分析的简单举例应用介绍聚类分析。

聚类分析或聚类是对一组对象进行分组的任务,使得同一组(称为聚类)中的对象(在某种意义上)与其他组(聚类)中的对象更相似(在某种意义上)。

它是探索性数据挖掘的主要任务,也是统计数据分析的常用技术,用于许多领域,包括机器学习,模式识别,图像分析,信息检索,生物信息学,数据压缩和计算机图形学。

一般应用场景

目标用户的群体分类:

根据运营或商业目的挑选出来的变量,对目标群体进行聚类,将目标群体分成几个有明显的特征区别的细分群体,在运营活动中为这些细分群体采用精细化、个性化的运营和服务,提升运营的效率和商业效果。

不同产品的价值组合:

按特定的指标变量对众多产品种类进行聚类。将产品体系细分成具有不同价值、不同目的、多维度产品组合,在此基础上制定相应的产品开发计划、运营计划和服务计划。

探索、发现孤立点及异常值:

主要是风控应用。孤立点可能会存在欺诈的风险成分。

聚类的常见方法

分为基于划分、层次、密度、网格、统计学、模型等类型的算法,典型算法包括K均值(经典的聚类算法)、DBSCAN、两步聚类、BIRCH、谱聚类等。

Keans聚类实现

importnumpyasnp

importmatplotlib.pyplotasplt

fromsklearn.clusterimportKMeans

fromsklearnimportmetrics

importrandom

#随机生成100组包含3组特征的数据

feature=[[random.random(),random.random(),random.random()]foriinrange(100)]

label=[int(random.randint(0,2))foriinrange(100)]

#转换数据格式

x_feature=np.array(feature)

#训练聚类模型

n_clusters=3#设置聚类数量

model_kmeans=KMeans(n_clusters=n_clusters,random_state=0)#建立聚类模型对象

model_kmeans.fit(x_feature)#训练聚类模型

y_pre=model_kmeans.predict(x_feature)#预测聚类模型

y_pre

聚类的评估指标

inertias

是K均值模型对象的属性,表示样本距离最近的聚类中心的总和,它是作为在没有真实分类结果标签下的非监督式评估指标。

该值越小越好,值越小证明样本在类间的分布越集中,即类内的距离越小。

#样本距离最近的聚类中心的总和

inertias=model_kmeans.inertia_

adjusted_rand_s:

调整后的兰德指数(AdjustedRandIndex),兰德指数通过考虑在预测和真实聚类中在相同或不同聚类中分配的所有样本对和计数对来计算两个聚类之间的相似性度量。

调整后的兰德指数通过对兰德指数的调整得到独立于样本量和类别的接近于0的值,其取值范围为[-1,1],负数代表结果不好,越接近于1越好意味着聚类结果与真实情况越吻合。

#调整后的兰德指数

adjusted_rand_s=metrics.adjusted_rand_score(label,y_pre)

mutual_info_s:

互信息(MutualInformation,MI),互信息是一个随机变量中包含的关于另一个随机变量的信息量,在这里指的是相同数据的两个标签之间的相似度的量度,结果是非负值。

#互信息

mutual_info_s=metrics.mutual_info_score(label,y_pre)

adjusted_mutual_info_s:

调整后的互信息(AdjustedMutualInformation,AMI),调整后的互信息是对互信息评分的调整得分。

它考虑到对于具有更大数量的聚类群,通常MI较高,而不管实际上是否有更多的信息共享,它通过调整聚类群的概率来纠正这种影响。

当两个聚类集相同(即完全匹配)时,AMI返回值为1;随机分区(独立标签)平均预期AMI约为0,也可能为负数。

#调整后的互信息

adjusted_mutual_info_s=metrics.adjusted_mutual_info_score(label,y_pre)

homogeneity_s:

同质化得分(Homogeneity),如果所有的聚类都只包含属于单个类的成员的数据点,则聚类结果将满足同质性。其取值范围[0,1]值越大意味着聚类结果与真实情况越吻合。

#同质化得分

homogeneity_s=metrics.homogeneity_score(label,y_pre)

completeness_s:

完整性得分(Completeness),如果作为给定类的成员的所有数据点是相同集群的元素,则聚类结果满足完整性。其取值范围[0,1],值越大意味着聚类结果与真实情况越吻合。

#完整性得分

completeness_s=pleteness_score(label,y_pre)

v_measure_s:

它是同质化和完整性之间的谐波平均值,v=2(均匀性完整性)/(均匀性+完整性)。其取值范围[0,1],值越大意味着聚类结果与真实情况越吻合。

v_measure_s=metrics.v_measure_score(label,y_pre)

silhouette_s:

轮廓系数(Silhouette),它用来计算所有样本的平均轮廓系数,使用平均群内距离和每个样本的平均最近簇距离来计算,它是一种非监督式评估指标。其最高值为1,最差值为-1,0附近的值表示重叠的聚类,负值通常表示样本已被分配到错误的集群。

#平均轮廓系数

silhouette_s=metrics.silhouette_score(x_feature,y_pre,metric='euclidean')

calinski_harabaz_s:

该分数定义为群内离散与簇间离散的比值,它是一种非监督式评估指标。

#Calinski和Harabaz得分

calinski_harabaz_s=metrics.calinski_harabasz_score(x_feature,y_pre)

聚类效果可视化

#模型效果可视化

centers=model_kmeans.cluster_centers_#各类别中心

colors=['#4EACC5','#FF9C34','#4E9A06']#设置不同类别的颜色

plt.figure()#建立画布

foriinrange(n_clusters):#循环读类别

index_sets=np.where(y_pre==i)#找到相同类的索引集合

cluster=x_feature[index_sets]#将相同类的数据划分为一个聚类子集

plt.scatter(cluster[:,0],cluster[:,1],c=colors[i],marker='.')#展示聚类子集内的样本点

plt.plot(centers[i][0],centers[i][1],'o',markerfacecolor=colors[i],markeredgecolor='k',

markersize=6)#展示各聚类子集的中心

plt.show()#展示图像

#模型应用

new_X=[1,3.6,9.9]

cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论