4、K- 均值聚类(Clustering With K-Means)

用聚类标签解开复杂的空间关系。

文章目录

  • 1、简介
  • 2、聚类标签作为特征
  • 3、k-均值聚类
  • 4、示例 - 加利福尼亚住房

1、简介

这节课和下一节课将使用所谓的无监督学习算法。无监督算法不使用目标;相反,它们的目的是学习数据的某些属性,以某种方式表示特征的结构。在预测的特征工程上下文中,你可以将无监督算法视为"特征发现"技术。

聚类简单地意味着根据数据点之间的相似性将数据点分配到组中。聚类算法使得"物以类聚",可以这么说。

当用于特征工程时,我们可以尝试发现代表市场细分的客户群,例如,或者分享相似天气模式的地理区域。添加一个聚类标签的特征可以帮助机器学习模型解开空间或接近性的复杂关系。

2、聚类标签作为特征

应用于单个实值特征,聚类就像传统的"分箱"或"离散化"转换。在多个特征上,它就像"多维分箱"(有时称为向量量化)。
4、K- 均值聚类(Clustering With K-Means)_第1张图片
左: 对单个特征进行聚类。 右: 在两个特征上进行聚类。

添加到数据框中,聚类标签的特征可能看起来像这样:

Longitude Latitude Cluster
-93.619 42.054 3
-93.619 42.053 3
-93.638 42.060 1
-93.602 41.988 0

重要的是要记住,这个Cluster特征是分类的。这里,它以标签编码(即,整数序列)显示,就像典型的聚类算法会产生的那样;取决于你的模型,独热编码可能更合适。

添加聚类标签的动机是,聚类将在特征之间的复杂关系分解成更简单的块。然后我们的模型可以逐个学习这些更简单的块,而不是一次性学习复杂的整体。这是一种"分而治之"的策略。
4、K- 均值聚类(Clustering With K-Means)_第2张图片
对YearBuilt特征进行聚类有助于这个线性模型学习其与SalePrice的关系。

该图显示了聚类如何改进一个简单的线性模型。YearBuiltSalePrice之间的曲线关系对于这种模型来说太复杂了——它欠拟合。然而,在较小的块上,关系几乎是线性的,模型可以轻松学习。

3、k-均值聚类

有许多聚类算法。它们主要在如何衡量"相似性"或"接近性"以及它们处理哪种特征上有所不同。我们将使用的算法,k-均值,直观易用,易于在特征工程上下文中应用。根据你的应用,另一种算法可能更合适。

K-均值聚类使用普通的直线距离(换句话说,欧几里得距离)来衡量相似性。它通过在特征空间内放置一些点,称为质心,来创建聚类。数据集中的每个点都被分配到它最接近的质心的聚类中。"k-均值"中的"k"是它创建的质心(也就是聚类)的数量。你自己定义k。

你可以想象每个质心通过一系列辐射圆来捕获点。当来自竞争质心的圆集合重叠时,它们形成一条线。结果就是所谓的Voronoi镶嵌。镶嵌向你展示未来的数据将被分配到哪些聚类;镶嵌本质上就是k-均值从其训练数据中学习的内容。

上面的Ames数据集上的聚类是一个k-均值聚类。下面是同一图形,显示了镶嵌和质心。
4、K- 均值聚类(Clustering With K-Means)_第3张图片

K-均值聚类在特征空间中创建了一个Voronoi。

让我们回顾一下k-均值算法是如何学习聚类的,以及这对特征工程意味着什么。我们将关注scikit-learn实现的三个参数:n_clustersmax_itern_init

这是一个简单的两步过程。算法首先随机初始化一些预定义数量(n_clusters)的质心。然后它对这两个操作进行迭代:

  1. 将点分配给最近的聚类质心
  2. 移动每个质心以最小化到其点的距离

它对这两个步骤进行迭代,直到质心不再移动,或者直到通过了一些最大迭代次数(max_iter)。

质心的初始随机位置经常会导致聚类效果差。因此,算法会重复多次(n_init),并返回具有最小总距离的聚类,即每个点和其质心之间的距离,这是最优聚类。

下面的动画显示了算法的运行情况。它说明了结果对初始质心的依赖性,以及迭代到收敛的重要性。
4、K- 均值聚类(Clustering With K-Means)_第4张图片

在纽约市的Airbnb租赁上的K-均值聚类算法。

对于大

你可能感兴趣的:(数据特征工程,Feature,Engineering,均值算法,聚类,kmeans)