当前位置: 代码网 > it编程>前端脚本>Python > python 实现k-means聚类算法 银行客户分组画像实战(超详细,附源码)

python 实现k-means聚类算法 银行客户分组画像实战(超详细,附源码)

2024年08月01日 Python 我要评论
python 实现k-means聚类算法 银行客户分组画像实战(超详细,附源码)

k-means具体是什么这里就不再赘述,详情可以参见我这篇博客

问题描述:银行对客户信息进行采集,获得了200位客户的数据,客户特征包括以下四个1:社保号码 2:姓名  3:年龄 4:存款数量 使用k-means算法对客户进行分组,生成各类型客户的特点画像

肘部折线图如下  tips:利用肘部方法可以找到最佳的簇数,即看那个点之后逐渐收敛,则那个点为最优的簇数

由下图可以得知k=3或k=4时比较好

分类出的画像图如下,可以清楚的看出不同客户的画像

 源码如下

#-*-coding:utf-8-*-
import  numpy  as np
import  matplotlib.pyplot as plt
import pandas as pd
import matplotlib; matplotlib.use('tkagg')
dataset=pd.read_csv(r'customer_info.csv')
print(dataset)
x=dataset.iloc[:,[4,3]].values
from sklearn.cluster import  kmeans
sumds=[]
for i in range(1,11):
    kmeans=kmeans(n_clusters=i)
    kmeans.fit(x)
    sumds.append(kmeans.inertia_)
    print(kmeans.inertia_)
plt.plot(range(1,11),sumds)
plt.title('the elbow method')
plt.xlabel('number of cluster k')
plt.ylabel('sse')
plt.show()
kmenas1=kmeans(n_clusters=3,init='k-means++',max_iter=300,n_init=10,random_state=0)
y_kmeans=kmenas1.fit_predict(x)
plt.scatter(x[y_kmeans==0,0],x[y_kmeans==0,1],s=100,marker='^',c='red',label='poor')
plt.scatter(x[y_kmeans==2,0],x[y_kmeans==2,1],s=100,marker='o',c='green',label='middle')
plt.scatter(x[y_kmeans==1,0],x[y_kmeans==1,1],s=100,marker='*',c='blue',label='rich')
plt.scatter(kmenas1.cluster_centers_[:,0],kmenas1.cluster_centers_[:,1],s=250,c='yellow',label='centroids')
plt.title('clusters of customer info')
plt.xlabel('deposit')
plt.ylabel('age')
plt.legend()
plt.show()

数据集请点赞关注收藏后评论区留下qq邮箱或者私信博主要

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com