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


    想要数据集请点赞关注收藏后评论区留言留下QQ邮箱

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

    k-means

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

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

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

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

     源码如下

    1. #-*-coding:utf-8-*-
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. import pandas as pd
    5. import matplotlib; matplotlib.use('TkAgg')
    6. dataset=pd.read_csv(r'Customer_Info.csv')
    7. print(dataset)
    8. X=dataset.iloc[:,[4,3]].values
    9. from sklearn.cluster import KMeans
    10. sumDs=[]
    11. for i in range(1,11):
    12. kmeans=KMeans(n_clusters=i)
    13. kmeans.fit(X)
    14. sumDs.append(kmeans.inertia_)
    15. print(kmeans.inertia_)
    16. plt.plot(range(1,11),sumDs)
    17. plt.title('the Elbow method')
    18. plt.xlabel('number of cluster k')
    19. plt.ylabel('SSE')
    20. plt.show()
    21. kmenas1=KMeans(n_clusters=3,init='k-means++',max_iter=300,n_init=10,random_state=0)
    22. y_kmeans=kmenas1.fit_predict(X)
    23. plt.scatter(X[y_kmeans==0,0],X[y_kmeans==0,1],s=100,marker='^',c='red',label='poor')
    24. plt.scatter(X[y_kmeans==2,0],X[y_kmeans==2,1],s=100,marker='o',c='green',label='middle')
    25. plt.scatter(X[y_kmeans==1,0],X[y_kmeans==1,1],s=100,marker='*',c='blue',label='rich')
    26. plt.scatter(kmenas1.cluster_centers_[:,0],kmenas1.cluster_centers_[:,1],s=250,c='yellow',label='Centroids')
    27. plt.title('clusters of customer info')
    28. plt.xlabel('deposit')
    29. plt.ylabel('age')
    30. plt.legend()
    31. plt.show()

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

  • 相关阅读:
    最短路-蓝桥杯
    【Python知识】匿名函数lambda
    Docker常用命令使用总结
    IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】
    数据挖掘(二)朴素贝叶斯
    【数据结构入门_数组】 Leetcode 566. 重塑矩阵
    app一键加固加签名脚本 百度加固 window版本
    学习-Java类和对象之访问限制
    APP广告竞价机制:头部竞价与瀑布流
    git 以某次提交 创建新的分支
  • 原文地址:https://blog.csdn.net/jiebaoshayebuhui/article/details/126954892