码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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邮箱或者私信博主要

  • 相关阅读:
    山西深度研学游之长城之行
    vs2022 使用git同步报错以及解决每次推送要输入密码问题
    Springboot登录验证的统一拦截处理
    An overview of IfM Engage
    力扣452-用最少数量的箭引爆气球——贪心算法
    docker 生成镜像的几个问题
    计算机竞赛 题目:基于深度学习的手势识别实现
    MySQL 高级(进阶) SQL 语句(二) -----连接查询、union联集、case、正则表达式
    OpenvSwitch 子项目 OVN 功能介绍(一)
    MachineLearning 11. 机器学习之随机森林生存分析(randomForestSRC)
  • 原文地址:https://blog.csdn.net/jiebaoshayebuhui/article/details/126954892
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号