【机器学习】利用K-means算法进行客户分群

利用K-means算法进行客户分群

在数据科学和机器学习领域,K-means聚类是一种常用的无监督学习方法,用于将数据分成预定义数量的群体。在这个例子中,我们将使用K-means算法对一个简化的销售数据集进行客户分群,以便更好地了解不同群体的消费行为。

1. 导入库和生成模拟数据

# 导入必要的库
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib

matplotlib.use('TkAgg')  # 选择TkAgg或其他合适的后端
import matplotlib.pyplot as plt

# 生成模拟销售数据集
data = {
    
    
    'CustomerID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],  # 客户ID
    'AnnualIncome (k$)': [15, 20, 25, 30, 35, 40, 50, 60, 70, 80],  # 年收入
    'SpendingScore (1-100)': [39, 81, 6, 77, 40, 76, 6, 94, 3, 72]  # 消费分数
}

df = pd.DataFrame(data)

2. 选择特征和应用K-means聚类

# 选择特征
X = df[['AnnualIncome (k$)', 'SpendingScore (1-100)']]

# 使用K-means聚类
kmeans = KMeans(n_clusters=3, random_state=42, n_init='auto')
df['Cluster'] = kmeans.fit_predict(X)

print(df.head())

3. 可视化聚类结果

# 可视化结果
# 绘制散点图,每个簇使用不同颜色表示
plt.scatter(X['AnnualIncome (k$)'], X['SpendingScore (1-100)'], c=df['Cluster'], cmap='viridis')
# 绘制聚类中心点,用红色表示
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red')
# 添加轴标签
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
# 添加标题
plt.title('Customer Segmentation using K-means')
# 显示图形
plt.show()

4. 分析和实际应用

在这个例子中,我们使用了一个包含顾客ID、年收入和消费得分的简化销售数据集。我们使用K-means算法将顾客分成三个群体,然后通过散点图可视化不同群体的年收入和消费得分。这个示例可能对一个零售企业有实际意义,可以根据不同顾客群体的特征制定个性化的营销策略。例如,高收入且高消费得分的群体可能是高价值顾客,可以针对他们提供更精细化的服务和促销活动。通过这样的客户分群,企业可以更好地理解其目标市场,从而优化销售和服务策略。

  • 运行截图:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/linjiuxiansheng/article/details/134903251
今日推荐