使用 K-Means 聚类算法将餐厅客户分类为 VIP 和普通客户

问题描述: 假设某餐厅现有 4 个客户,分别编号为 a、b、c、d,这 4 位客户某段时间的平均消费水平分别为 1、2、4、5 万元。请用 K-Means 算法将这 4 个客户聚类为 VIP 客户和普通客户两个类别。

输入形式: 无输入

输出形式:

  • 聚类标签:一个列表,表示每个客户所属的类别(0 代表普通客户,1 代表 VIP 客户)。
  • 类别中心坐标:一个列表,表示每个类别的中心坐标。

示例输出:

[0 0 1 1]
[[1.5]
[4.5]]

解释:

  • 聚类标签为 [0 0 1 1],表示客户 a、b 属于普通客户类别,客户 c、d 属于 VIP 客户类别。
  • 类别中心坐标为 [[1.5] [4.5]],表示普通客户的中心坐标为 1.5 万元,VIP 客户的中心坐标为 4.5 万元。

使用 K-Means 算法进行聚类的步骤:

  1. **初始化类别中心:**随机选择两个点作为初始类别中心。
  2. **分配客户到类别:**根据每个客户到两个类别中心的距离,将其分配到距离较近的类别。
  3. **更新类别中心:**计算每个类别中所有客户的平均消费水平,作为新的类别中心。
  4. 重复步骤 2 和 3,直到类别中心不再发生明显变化。

代码实现:

import numpy as np
from sklearn.cluster import KMeans

# 客户消费水平
customer_spending = np.array([1, 2, 4, 5]).reshape(-1, 1)

# 使用 K-Means 算法进行聚类
kmeans = KMeans(n_clusters=2, random_state=0)
kmeans.fit(customer_spending)

# 聚类标签
labels = kmeans.labels_

# 类别中心坐标
cluster_centers = kmeans.cluster_centers_

# 打印输出
print(f'聚类标签:{labels}')
print(f'类别中心坐标:{cluster_centers}')

结果:

聚类标签: [0 0 1 1]
类别中心坐标: [[1.5]
[4.5]]

结论:

通过 K-Means 聚类算法,将餐厅的 4 个客户成功分类为 VIP 客户和普通客户,并获得了每个客户的聚类标签和聚类的类别中心坐标。这个结果可以帮助餐厅更好地理解客户群体,并制定针对性的营销策略。

K-Means 聚类算法:将餐厅客户分类为 VIP 和普通客户

原文地址: https://www.cveoy.top/t/topic/ozS9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录