R 中的聚类分析:您将永远需要的完整指南 [2022]
已发表: 2021-01-04如果你曾经涉足数据科学或 Python 的世界,你就会听说过 R。
R 是作为 GNU 项目开发的,它既是一种语言,又是一种为图形和统计计算而设计的环境。 它类似于 S 语言,因此可以被视为它的实现。
作为一门语言,R 是高度可扩展的。 它提供了各种统计和图形技术,如时间序列分析、线性建模、非线性建模、聚类、分类、经典统计测试。
我们将更深入地探索这些技术之一,那就是聚类或聚类分析!
目录
什么是聚类分析?
用最简单的术语来说,聚类是一种数据分割方法,根据相似性将数据分成几组。
如何评估相似性? 在观测距离测量的基础上。 这些可以是欧几里得或基于相关的距离测量。
聚类分析是数据分析和数据挖掘中最流行且直观的方法之一。 它非常适合存在大量数据并且我们必须从中提取见解的情况。 在这种情况下,可以将批量数据分解为更小的子集或组。
从整个数据集中形成和派生的小组称为集群。 这些是通过执行一个或多个统计操作获得的。 每个集群虽然包含不同的元素,但共享以下属性:
- 他们的人数事先不知道。
- 它们是通过执行统计操作获得的。
- 每个集群都包含相似且具有共同特征的对象。
即使没有聚类分析的“花哨”名称,在日常生活中也经常使用相同的名称。
在个人层面上,我们将外出度假时需要打包的东西组合在一起。 先是衣服,然后是洗漱用品,然后是书,等等。 我们制作类别,然后单独处理它们。
公司在对电子邮件列表进行细分并根据年龄、经济背景、以前的购买行为等对客户进行分类时,也会使用聚类分析。
聚类分析也称为“无监督机器学习”或模式识别。 无监督,因为我们不希望仅对特定样本中的特定样本进行分类。 学习是因为算法还学习如何聚类。
3 聚类方法
我们有三种最常用于聚类的方法。 这些是:
- 凝聚层次聚类
- 关系聚类/Condorcet 方法
- k-均值聚类
1. 凝聚层次聚类
这是最常见的层次聚类类型。 AHC 的算法以自下而上的方式工作。 它首先将每个数据点视为一个集群(称为叶子)。
然后它将最相似的两个集群组合在一起。 这些新的更大的集群称为节点。 重复分组,直到整个数据集组合成一个称为根的大集群。
可视化和绘制 AHC 过程的每个步骤会导致生成称为树状图的树。
反转 AHC 过程会导致分裂聚类和聚类的生成。
树状图也可以可视化为:
资源
总之,如果您想要一个擅长识别小集群的算法,请选择 AHC。 如果您想要一种擅长识别大型集群的方法,那么分裂式聚类方法应该是您的选择。
2.关系聚类/Condorcet方法
“通过相似性聚合聚类”是此方法的另一个名称。 它的工作原理如下:
比较建立全局聚类的成对的单个对象。 为向量 m(A, B) 和 d(A, B) 分配一对单独的值 (A, B)。 在向量 b(A, B) 中,A 和 B 都具有相同的值,而在向量 d(A, B) 中,它们都具有不同的值)。
据说 A 和 B 的两个单独的值遵循如下的 Condorcet 准则:

c(A, B) = m(A, B)- d(A, B)
对于像 A 这样的单个值和称为 S 的集群,Condorcet 标准为:
c(A,S) = Σ i c(A,B i )
总和为 Bi ∈ S。
在满足上述条件的情况下,构造 c(A, S) 形式的簇。 A 的最小值可以为 0,并且是集群中所有数据点中最大的。
最后,计算全局孔多塞准则。 这是通过对 A 中存在的各个数据点和包含它们的集群S A进行求和来完成的。
重复上述步骤,直到全局 Condorcet 准则没有改进或达到最大迭代次数。
3. k-means 聚类
这是最流行的分区算法之一。 所有可用数据(有时也称为数据点/观察)将仅分组到这些集群中。 以下是算法如何进行的细分:
- 随机选择k个簇。 这k行也意味着为每个集群找到k个质心。
- 然后将每个数据点分配给最接近它的质心。
- 随着越来越多的数据点被分配,质心被重新计算为添加的所有数据点的平均值。
- 继续分配数据点并根据需要移动质心。
- 重复步骤 3 和 4,直到没有数据点更改集群。
使用以下方法之一计算数据点和质心之间的距离:
- 欧几里得距离
- 曼哈顿距离
- 明洛夫斯基距离
其中最流行的 - 欧几里得距离 - 计算如下:
每次运行算法时,都会返回不同的组作为结果。 对变量k的第一次赋值是完全随机的。 这使得 k-means 对第一选择非常敏感。 结果,除非组的数量和总体观察值很小,否则几乎不可能获得相同的聚类。
如何给一开始,我们将随机分配一个值给k ,这将指示结果的方向。为确保做出最佳选择,记住以下公式会很有帮助:
这里, n是数据集中数据点的数量。
无论是否存在公式,聚类的数量在很大程度上取决于数据集的性质、所属的行业和业务等。因此,建议也注意自己的经验和直觉。
使用错误的集群大小,分组可能不会那么有效并且可能导致过度拟合。 由于过度拟合,新的数据点可能无法在集群中找到位置,因为算法已经漏掉了小细节并且所有的泛化都丢失了。
聚类分析的应用
那么,强大的聚类方法到底用在了哪里呢? 我们在上面粗略地提到了几个例子。 以下是更多实例:
医药与健康
根据患者的年龄和基因构成,医生能够提供更好的诊断。 这最终会导致更有益和一致的治疗。 也可以通过这种方式发现新药。 医学中的聚类被称为疾病学。
社会学
在社会领域,根据人口统计、年龄、职业、居住地等对人群进行聚类有助于政府执行法律并制定适合不同群体的政策。
营销
在市场营销中,术语聚类被细分/类型分析所取代。 它用于探索和选择特定产品的潜在买家。 然后,公司测试每个集群的元素,以了解哪些客户表现出支持保留的行为。
网络分析
作为将在此实施的聚类算法的输入,输入用户访问过的网页。 然后将这些网页聚集在一起。 最后,根据用户的浏览活动生成用户的个人资料。 从个性化到网络安全,这个结果可以在任何地方得到利用。
零售
奥特莱斯还受益于根据年龄、颜色偏好、风格偏好、过去购买等因素对客户进行聚类。这有助于零售商创造定制体验,并规划符合客户需求的未来产品。
结论
很明显,聚类分析是一种非常有价值的方法——无论它是在何种语言或环境中实现的。无论是想获得洞察力、找出模式还是挖掘配置文件,聚类分析都是一种非常有用的工具,其结果可以得到实际执行。 熟练使用各种聚类算法可以导致执行准确且真正有价值的数据分析。
学习世界顶尖大学的数据科学课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。