介绍
任何行业中,了解客户行为都是至关重要的。去年,我的首席营销官问 “现有客户中哪些客户应作为新产品的目标用户?”时,我就意识到了这一点。
对我来说,这是一个很好的学习曲线。我意识到了细分客户是多么重要,这样企业就可以制定和构建针对性策略。聚类的概念在这里变得非常方便!
像细分客户这样的问题通常很棘手,因为我们没有任何目标变量供考虑。我们处在一个无监督学习的状态,需要从中找出模式和结构,而不用考虑一个既定的结果。作为一名数据科学家,这既具有挑战又令人兴奋。
有几种不同的方法可以执行聚类(如下所示)。我将在本文中向您介绍其中一种--层次聚类。
我们将了解层次聚类是什么,它优于其他聚类算法的优势,不同类型的层次聚类以及执行它的步骤。我们最终使用客户细分数据集在Python中实现层次聚类。我很喜欢这种技术,我相信你也会在看完这篇文章之后做到这一点!
注意:如上所述,有多种方法可以执行群集。我鼓励您在文末链接查看介绍不同类型群集的精彩指南。
目录
- 监督学习与无监督学习
- 为什么采用层次聚类
- 什么是层次聚类
- 层次聚类的类型
- 聚合层次聚类
- 分裂层次聚类
- 执行层次聚类的步骤
- 如何选择层次聚类中的聚类数
- 使用层次聚类解决客户细分问题
监督学习与非监督学习
在深入层次聚类之前,理解有监督和无监督学习之间的区别非常重要。让我用一个简单的例子解释这个差异。
假设我们想要估算每天在城市租用的自行车数量:
或者假设我们想要预测泰坦尼克号上的人是否幸存:
我们在这两个示例中都有一个固定的目标:
- 在第一个例子中,我们必须根据季节,假日,工作日,天气,气温等特征预测自行车的数量。
- 我们在第二个例子中预测乘客是否幸存。在'Survived'变量中,0代表该人丧生,1代表该人幸存。这里的自变量包括船票等级,性别,年龄等。
因此,当我们给出一个目标变量(上述两种情况下的数量和生存情况)时,我们必须根据给定的一组预测变量或自变量(季节,假日,性别,年龄等)进行预测,这些问题称为监督学习问题。
让我们从下图直观地理解这一点:
这里y是我们的依赖变量,或叫做目标变量,X代表自变量。目标变量依赖于X,因此它也被称为因变量。我们使用自变量在目标变量的监督下训练我们的模型,因此命名为监督学习。
在训练模型时,我们的目标是生成将自变量映射到所需目标的函数。一旦模型被训练,模型就可以通过新的观测值预测它们的目标。简而言之,这是有监督的学习。
但是可能存在我们没有任何目标变量来预测的情况。没有任何明确的目标变量的这些问题被称为无监督学习问题。我们在这些问题中只有自变量而没有目标/因变量。
在这些情况下,我们尝试将整个数据划分为一些组。这些组称为集群,制作这些集群的过程称为聚类。