一、问题描述
客户细分是无监督学习最重要的应用之一。利用聚类技术,公司可以识别出几个客户细分市场,从而让他们能够针对潜在的不同用户群体提供不同服务。在机器学习项目中,可以使用K均值聚类等算法对未标记的数据集进行聚类分析。
二、数据集内容
数据结构
以下为该数据集Mall_Customers.csv的记录样例,可获知各个字段的定义:
CustomerID | Gender | Age | Annual Income (k$) | Spending Score (1-100) |
---|---|---|---|---|
1 | Male | 19 | 15 | 39 |
2 | Male | 21 | 15 | 81 |
3 | Female | 20 | 16 | 6 |
4 | Female | 23 | 16 | 77 |
5 | Female | 31 | 17 | 40 |
6 | Female | 22 | 17 | 76 |
7 | Female | 35 | 18 | 6 |
8 | Female | 23 | 18 | 94 |
9 | Male | 64 | 19 | 3 |
10 | Female | 30 | 19 | 72 |
许可协议
Deed – CC0 1.0 Universal – Creative Commons
三、客户细分算法
K均值算法/K-means Algorithm
在使用k均值聚类算法时,第一步是指定我们希望在最终输出中产生的簇的数量(k)。算法首先从数据集中随机选择k个对象,这些对象将作为我们簇的初始中心。这些选定的对象是簇均值,也称为质心。然后,剩余的对象被分配给最近的质心。这个质心是由对象和簇均值之间的欧几里得距离定义的。我们将这一步称为“簇分配”。当分配完成后,算法继续计算数据中每个簇的新均值。在重新计算中心之后,检查观测值是否更靠近不同的簇。使用更新后的簇均值,对象进行重新分配。这个过程会重复多次迭代,直到簇分配停止改变。当前迭代中存在的簇与前一次迭代中获得的簇相同。