[聚类算法KMeans]案例:客户分群

文章介绍了如何运用KMeans算法进行客户分群。首先导入数据,通过散点图对数据进行初步探索,然后使用sklearn库中的KMeans模型进行训练,设定聚类数为3,并可视化聚类结果,展示不同年龄段和收入群体的分布。
摘要由CSDN通过智能技术生成

KMeans算法是无监督学习算法,用在聚类任务中。可以使用的业务场景有:客户分群、商品分类、推荐系统、图像分割等。本期用一份简单的数据集带大家了解KMeans算法在客户分群的使用。

导入数据

import pandas as pd
data = pd.read_excel('/kaggle/input/customer-age-and-income/Customer age and income.xlsx')
data.info()


数据探索

X = data.iloc[:, 0]
y = data.iloc[:, 1]

# 散点图绘制
import matplotlib.pyplot as plt
plt.scatter(X, y)

代码讲解:

scatter()是用于绘制散点图的函数;

X是我们定义的横坐标,代表年龄;y是纵坐标代表收入;

运行结果:


 训练模型

from sklearn.cluster import KMeans
kms = KMeans(n_clusters=3, random_state=123)
kms.fit(data)
label = kms.labels_
label

代码讲解:

导入KMeans包,并把模型赋值给我们自定义的参数kms;

n_clusters=3指定了聚类的数量为3个,是我们手动定义簇的数据,通过上面的散点图也可以发现数据大致分为3块;

random_state是随机种子,可以自定义一个数字,以确保每次运行的结果都一样;

模型.fit()的写法在每次训练模型都有写到,fit()里面写数据集,将参数传入进行模型训练;

KMeans的labels_属性可以返回每个数据点所属的聚类,但是这样不够直观,我们继续把类别标签用图形表示;

运行结果:


绘制聚类结果

plt.scatter(X[label == 0], y[label == 0], c="red")  
plt.scatter(X[label == 1], y[label == 1], c="green")  
plt.scatter(X[label == 2], y[label == 2], c="yellow")  

代码讲解:

scatter()是用于绘制散点图的函数;

X是我们定义的横坐标,代表年龄;y是纵坐标代表收入;

运行结果:

结论:特征只有两个年龄和收入,三种颜色代表kmeans划分的3个客群

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值