ML 项目:商城客户细分。
ML 项目:商城客户细分。
https://unsplash.com/photos/7H1hDt694s8
在机器学习中,无监督学习用于通过给定的未标记数据找到一些有趣的数据关系或数据结构来学习算法。量化或查看数据模式的技术之一是“聚类”。在项目中,聚类学习算法用于商城客户 来自 kaggle 的数据集 深入到内部分析进行细分。此外,该项目还提供具有各种评分指标的模型评估。
客户细分是根据共同的特定因素将客户量化为许多组的过程。这种细分可以提高效率、扩展或以更有效的方式发起活动。聚类技术揭示了客户的行为,例如每个离散组的需求和购买特征。这个项目分为4个步骤
- 数据预处理
- 探索性数据分析
- 模型治理
- 模型评估与总结
- 数据预处理
Pandas 用于将 csv 格式的数据加载到数据框中。为了方便地调用列,应用了标准格式的命名。
2. 探索性数据分析。
一、特征分为数值列和对象(分类)列
2.1。单变量分析
- 对象特征
性别统计图显示,女性和男性阶层几乎是平衡的。
- 数值特征
确保聚类算法可以正常工作。执行检查分布和异常值。在此步骤之后,严重的偏斜数据和异常值可能会导致许多问题。
如上图所示,除了“annual_income”特征有一个异常值 = 0.5% 的观察值之外,大多数数值特征已经很整洁了,这对于这种情况是可以接受的。
2.2.双变量分析
如配对网格所示,由于性别特征中男性和女性之间的平衡等级。 hue = “Gender”的分布在 kde-plot 上显示了数值特征(对角线)的相同密度。
3.模型治理
3.1。数据缩放
提高聚类算法的性能。所有数值特征在放入模型之前都需要缩放。选择 Min-Max scaler 缩放方法来完成这项工作,将所有给定特征的数据范围转换为 [0,1]。 sklearn.preprocessing 已经为此过程创建了工具。
3.2 模型候选
- K-means 聚类
从 本文 :K-means 聚类是一种简单的算法,它通过创建一个随机点并找到每个数据点的最近距离并为它们分配标签来工作。
- 平衡迭代减少和聚类层次结构 (BIRCH) 算法
从 本文 :BIRCH 聚类基本上是一种算法,它创建小而紧凑的摘要,足以保留原始数据集中的信息。
https://www.javatpoint.com/birch-in-data-mining
4. 模型评估与总结
聚类算法的一般评分
- 剪影得分
轮廓分数是分数范围 [-1,1],它使用其集群内每个点之间的距离以及到所有集群的集群间距离。使用上面提到的两个距离来计算平均距离/最大可能距离。
- 卡林斯基哈拉巴斯得分
也称为方差比标准,由所有簇的簇间离散度之和与簇内离散度之和的比值计算得出。 (分散可以是平方距离的总和)。较高的 Calinski Harabasz 分数意味着更好的聚类(每个聚类中更密集)。
更多详情: 访问这个网站
https://pyshark.com/calinski-harabasz-index-for-k-means-clustering-evaluation-using-python/
https://pyshark.com/calinski-harabasz-index-for-k-means-clustering-evaluation-using-python/
https://pyshark.com/calinski-harabasz-index-for-k-means-clustering-evaluation-using-python/
- 戴维斯布尔丹得分
该分数表示每个集群与与其最相似的集群或每个集群的内部模式的平均相似度。最低可能或最接近零表示更好的聚类。
4.1。 K-means 聚类
年收入和支出得分用于针对这种情况进行聚类,以找到这些特征的一些模式。
可视化和评估 k-means 算法的一种非常有效的方法是肘法。肘部方法是可视化具有不同数量的簇的平方距离之和(失真分数)的急转弯(递减收益)的过程。
结合模型惯性和上述 3 个之前的得分指标来评估 k-means 模型。为方便起见,下面的折线图显示了这些指标在不同数量的集群中的表现。
如图所示,簇数 = 5 是适用于该数据集的适当簇数
- 开始递减收益(肘法)
- 最高平均轮廓分数
- 相对较高的 Calinski Harabarsz 评分(局部最大值)
- Davies Bouldin 最低分数
silhouette score for number of cluster = 5
订购集群以提高年收入并将集群重新索引到从 1 开始,结果为
4.2. BIRCH 聚类
与 k-means 聚类不同,BIRCH 聚类没有失真分数。因此,3 个评分指标(Silhouette、CH、DBI)仍然相同。
K-means 和 BIRCH 都给出了相同的答案,即适当的簇数等于 5。
在与 k-means 相同的过程中,重新索引也适用于结果。
两种算法都得出相似的结果(不完全相同)。为了便于解释, 选择 K-means 算法作为成为 step 的候选。
4.3.结果
如上图所示,分割良好的Segment的年龄为
- 第 2 段 => 年龄在 27 到 40 岁之间 平均33岁。
- 第 5 段 => 年龄在 18 到 35 岁之间 平均25岁。
从显示的年收入密度图,
- 第 4 部分和第 5 部分的年收入大致相等,大约为 26,000 美元。 → 低收入群体
- 第 1 部分和第 2 部分的年收入大致相等,这意味着大约 87,000 美元。 → 高收入群体
- 第 3 部分是独立组,平均年收入为 $55K。 → 中等收入群体
结合年龄和年收入得出以下结果。
结果表明
- 第 2 段和第 5 段的年龄范围相同,但年收入有显着差异。
- 第 4 段和第 5 段的年收入范围相同,但第 5 段属于青少年组(20-40 岁)
结果表明
- 第 5 段有 最高消费分数。
- 第 4 段有 最低消费分数。
将支出分数和年收入结合在一起。
结果表明
- 段 1 和段 2 的年收入范围相同,但支出分数范围完全不同。
- 第 4 段和第 5 段的年收入范围相同,但支出分数范围完全不同。
概括
上表代表按段分组的平均值,
- 即使第 1 段是最高年收入组,但也是最差的支出分数。 → 目前商城的产品并不是让这部分客户花钱的首选。
- 与第 1 段相比, 段 2 的平均年龄比段 1 低 10 倍,但在相同年收入范围内的平均支出分数是 4 倍 .
- 甚至第 5 部分的支出得分最高,但年收入最低。→ 在该客户的细分市场中,明显的购买量显着增加。
- 如果目标是最大化客户提供的货币并且不能改变任何商场的产品 , 段 2 被认为是第一个目标。第 2 部分的年收入和支出得分均最高。 让我们假设客户花费的累计金额 是年收入和支出分数/100 的乘积 “净分数” .
- 然而,选择 k-means 聚类的聚类数量可以通过主要考虑后期/下游目的以及它如何为后期目的执行来完成。
参考
[
BIRCH 聚类算法指南(附 Python 代码)
BIRCH 聚类算法首先将大数据集聚类成小摘要。然后在小总结之后……
analyticsindiamag.com
](https://analyticsindiamag.com/guide-to-birch-clustering-algorithmwith-python-codes/)
https://towardsdatascience.com/understanding-k-means-clustering-in-machine-learning-6a6e67336aa1
https://www.kaggle.com/datasets/vjchoudhary7/customer-segmentation-tutorial-in-python
[
了解机器学习中的 K-means 聚类
K-means 聚类是最简单和流行的无监督机器学习算法之一。
向datascience.com
](https://towardsdatascience.com/understanding-k-means-clustering-in-machine-learning-6a6e67336aa1)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明