文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

机器学习:基于Kmeans聚类算法对银行客户进行分类

2023-08-31 12:18

关注

在这里插入图片描述

作者:i阿极

作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪


大家好,我i阿极。喜欢本专栏的小伙伴,请多多支持


文章目录


K-means算法是一种常用的聚类算法,用于将数据集划分成k个不重叠的簇。其主要思想是通过迭代的方式将样本点划分到不同的簇中,使得同一簇内的样本点相似度较高,不同簇之间的相似度较低。
下面我们以一个简单案例对KMeans算法的原理进行解释,该案例目的是将样本点聚成3个类别(K=3)
在这里插入图片描述

下面是K-means算法的详细步骤:

K-means算法的特点:

K-means算法的优化方法:

Python 3.9

Jupyter Notebook

Anaconda

3.1构造数据

import numpy as npdata = np.array([[3, 2], [4, 1], [3, 6], [4, 7], [3, 9], [6, 8], [6, 6], [7, 7]])

3.2可视化展示

import matplotlib.pyplot as pltplt.scatter(data[:, 0], data[:, 1], c="red", marker='o', label='samples')  # 以红色圆圈样式绘制散点图并加上标签plt.legend()  # 设置图例,图例内容为上面设置的label参数plt.show()

在这里插入图片描述

3.3聚类成二分类

from sklearn.cluster import KMeanskms = KMeans(n_clusters=2)kms.fit(data)

在这里插入图片描述

3.4获取结果

label = kms.labels_print(label)

3.5结果可视化

plt.scatter(data[label == 0][:, 0], data[label == 0][:, 1], c="red", marker='o', label='class0')  # 以红色圆圈样式绘制散点图并加上标签plt.scatter(data[label == 1][:, 0], data[label == 1][:, 1], c="green", marker='*', label='class1')  # 以绿色星星样式绘制散点图并加上标签plt.legend()  # 设置图例

在这里插入图片描述

3.6聚类成3类

kms_3 = KMeans(n_clusters=3)kms_3.fit(data)label_3 = kms_3.labels_print(label_3)

在这里插入图片描述

3.7结果可视化

plt.scatter(data[label_3 == 0][:, 0], data[label_3 == 0][:, 1], c="red", marker='o', label='class0')  # 以红色圆圈样式绘制散点图并加上标签plt.scatter(data[label_3 == 1][:, 0], data[label_3 == 1][:, 1], c="green", marker='*', label='class1')  # 以绿色星星样式绘制散点图并加上标签plt.scatter(data[label_3 == 2][:, 0], data[label_3 == 2][:, 1], c="blue", marker='+', label='class2')  # 以蓝色加号样式绘制散点图并加上标签plt.legend()  # 设置图例

在这里插入图片描述

4.1案例背景

银行通常拥有海量的客户,对于不同的客户,银行需要进行不同的营销与工作开展策略,例如对于高收入且风险承受能力强的客户,可以进行重点挖掘业务机会,例如可以给他推销一些收益率高但周期相对较长的理财产品;而对于低收入且风险承受能力较弱的客户,则需要制定不同的营销与工作策略。因此对于银行来说,通常需要将客户进行分群处理,对于不同分群的客户进行不同的处理。

4.2读取数据

import pandas as pd data = pd.read_excel('客户信息.xlsx')data.head(10)

在这里插入图片描述

4.2可视化展示

import matplotlib.pyplot as pltplt.scatter(data.iloc[:, 0], data.iloc[:, 1], c="green", marker='*')  # 以绿色星星样式绘制散点图plt.xlabel('age')  # 添加x轴名称plt.ylabel('salary')  # 添加y轴名称plt.show()

在这里插入图片描述

4.3数据建模

from sklearn.cluster import KMeanskms = KMeans(n_clusters=3, random_state=123)kms.fit(data)label = kms.labels_label = kms.fit_predict(data)print(label)

在这里插入图片描述

4.4建模效果可视化展示

plt.scatter(data[label == 0].iloc[:, 0], data[label == 0].iloc[:, 1], c="red", marker='o', label='class0')  # 以红色圆圈样式绘制散点图并加上标签  plt.scatter(data[label == 1].iloc[:, 0], data[label == 1].iloc[:, 1], c="green", marker='*', label='class1')  # 以绿色星星样式绘制散点图并加上标签 plt.scatter(data[label == 2].iloc[:, 0], data[label == 2].iloc[:, 1], c="blue", marker='+', label='class2')  # 以蓝色加号样式绘制散点图并加上标签plt.xlabel('age')  # 添加x轴名称plt.ylabel('salary')  # 添加y轴名称plt.legend()  # 设置图例

在这里插入图片描述


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗

来源地址:https://blog.csdn.net/AOAIYI/article/details/130659496

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯