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

news2024/11/17 17:34:16

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

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邮箱或者私信博主要

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能调试【学习笔记】

什么是调优? 每执行一个Java命令,就分配一个JVM,调优时不要混淆。 根据需求进行JVM规划和预调优优化运行JVM的运行环境(慢、卡顿)解决JVM运行过程中出现的各种问题(内存泄露、内存溢出OOM) 生…

DSP定点数的概念和表示方法

1. 基本概念 (1) 计算机中定点数的三种表示方法:原码、补码和反码 (2) 在DSP中一般使用补码的形式来表示操作数 (3) 整型数的表示范围由DSP芯片的字长决定,比如16位或24位 (4) 注意,符号位的bit个数,不同类型的数以及不同的DS…

计算机是如何工作的(笔记)

目录 寄存器 操作系统 进程(process) CPU pcb中关于进程调度相关的属性 寄存器 用来存储数据的单位,是CPU的一部分 寄存器,存储空间更小,访问速度更快,成本更高,掉电后数据会丢失 寄存器…

在线协作设计工具都有哪些?推荐这10款

协作设计是一个复杂而乏味的设计过程系统,不仅需要许多设计师同时进行在线设计协作,而且还包含了许多团队角色。 因此,为了协同设计高质量的产品,更好地服务客户服务,选择高质量的设计协作软件已成为许多设计师的首要…

C++sokcet网络编程笔记

C网络编程 TCP/IP协议 网络介质层:将模拟信号转化成数字信号,会形成一个MAC地址(本机地址,一般情况下不会变化)。百兆宽带用4根线,千兆宽带用8根线进行传输。 网络层:进行网络层的通讯&#x…

数据结构 | 递归

目录 一、何谓递归 1.1 计算一列数之和 1.2 递归三原则 1.3 将整数转换成任意进制的字符串 二、栈帧:实现递归 三、递归可视化 四、谢尔平斯基三角形 五、复杂的递归问题 六、动态规划 一、何谓递归 递归是解决问题的一种办法,它将问题不断地分…

本地mvn仓库清理无用jar包

背景 开发java时间久了,本地的m2仓库就会产生很多过期的jar包,不清理的话比较占空间。 原理 是通过比较同一目录下,对应jar包的版本号的大小,保留最大版本号那个,删除其他的。 脚本 执行脚本见文章顶部 执行方式 …

P3374 【模板】树状数组 1 浅谈树状数组 (内附封面)

【模板】树状数组 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x x x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n , m n,m n,m,分别表示该数列数字的个数和操作的总个数。 第二…

部署安装私服-Gitlab

一、国内的gitlab是极狐 www.gitlab.cn 国服 www.github.com 国际服 二、国服的gitlab蛮适合中国国情的 1.提交申请可以获得30天的订阅版服务,有需要的话可以先提交一下。订阅后功能多一些。 Gitlab中文官网下载_GitLab免费下载安装_极狐GitLab免…

从零开始学python(十四)百万高性能框架scrapy框架

前言 回顾之前讲述了python语法编程 必修入门基础和网络编程,多线程/多进程/协程等方面的内容,后续讲到了数据库编程篇MySQL,Redis,MongoDB篇,和机器学习,全栈开发,数据分析,爬虫数…

uniapp 视频截图

uniapp 视频截图 本文只针对微信小程序,其他平台并没有测试过,不确定可行性。 微信提供了两个组件可以用来播放视频: live-player: 只要用于实时音视频的播放(出于政策和合规的考虑,微信暂时没有放开所有小程序对&l…

地统计学空间插值方法及应用

地统计学 地统计学,是指以具有空间分布特点的区域化变量理论为基础,研究自然现象的空间变异与空间结构的一门学科。它是针对像矿产、资源、生物群落、地貌等有着特定的地域分布特征而发展的统计学。由于最先在地学领域应用,故称地统计学 地…

自学网络安全(黑客)学习心得路线规划

趁着今天下班,我花了几个小时整理了下,非常不易,希望大家可以点赞收藏支持一波,谢谢。 我的经历: 我 19 年毕业,大学专业是物联网工程,我相信很多人在象牙塔里都很迷茫,到了大三大…

html | 无js二级菜单

1. 效果图 2. 代码 <meta charset"utf-8"><style> .hiddentitle{display:none;}nav ul{list-style-type: none;background-color: #001f3f;overflow:hidden; /* 父标签加这个&#xff0c;防止有浮动子元素时&#xff0c;该标签失去高度*/margin: 0;padd…

4年测试工程师,常用功能测试点总结,“我“不再走弯路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 输入框测试 1、字…

模电专题-MOS管的放大电路分析

在实际应用中&#xff0c;我们经常会使用到功率MOS&#xff0c;这时通常不会将它当成一个开关使用&#xff0c;而是当成一个放大器来使用&#xff0c;那这就需要让其工作在放大状态。 参考下图中的mos管的特性曲线&#xff0c;右图中的输出特性曲线中有一根红色的分界线&#x…

2000-2021年上市公司常用控制变量数据(A股)含stata处理代码

2000-2021年上市公司企业A股常用控制变量 1、时间&#xff1a;2000-2021年&#xff08;注&#xff1a;股权性质从2004年开始&#xff0c;第一大股东持股比例从2003年开始&#xff09; 2、来源&#xff1a;整理自csmar 和wind 3、数据范围&#xff1a;A股公司 不包含已退市的…

使用Python动画粒子的薛定谔波函数(ψ)(完整代码)

使用Python动画粒子的薛定谔波函数&#xff08;ψ&#xff09;&#xff08;完整代码&#xff09; 使用曲柄-尼科尔森方法求解盒子中的粒子 Kowshik chilamkurthy 以后 发表于 书技术 4 分钟阅读 2月 2021&#xff0c; <> 1.4K 5 左图&#xff1a;来源&#xff0c;右图…

Leetcode-每日一题【剑指 Offer 56 - II. 数组中数字出现的次数 II】

题目 在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1&#xff1a; 输入&#xff1a;nums [3,4,3,3]输出&#xff1a;4 示例 2&#xff1a; 输入&#xff1a;nums [9,1,7,9,7,9,7]输出&#xff1a;1 限制…

网工必须掌握的5种组网技术,你会了吗?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、VLAN技术 1、VLAN是什么&#xff1f; 2、VLAN的作用 ①提高网络安全性 ②提高了网络的灵活性性 ③增强了网络的健壮性 二、D…