35

如何利用高斯混合模型建立更好、更精确的集群?

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODU3OTIyOA%3D%3D&%3Bmid=2650680442&%3Bidx=1&%3Bsn=18b7617e230e21e5ce963eeaf38b176b
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

点击上方“蓝字”关注“AI开发者”

2QjM3uJ.jpg!web

本文作者 | AISHWARYA SINGH

编译 | skura

高斯混合模型是一种强大的聚类算法。本文将带你了解高斯混合模型的工作原理以及如何在 Python 中实现它们,我们还将讨论 k-means 聚类算法,看看高斯混合模型是如何对它进行改进的。

我真的很喜欢研究无监督的学习问题。相对于一个有监督的学习问题来说,它们提供了一个完全不同的挑战——有更多的空间来试验我的数据。难怪机器学习领域的大多数发展和突破都发生在无监督学习领域。

无监督学习中最流行的技术之一是聚类。这是一个概念且很容易掌握,我们通常在机器学习的早期学习它。我相信你已经经历甚至参与过客户细分、市场篮分析等项目。

nMZfIjI.png!web

高斯混合模型

但问题是——集群有很多层。它不仅限于我们之前学习的基本算法。它是一种强大的无监督学习技术,我们可以在现实世界中准确无误地使用它。

高斯混合模型是我在本文中要讨论的一种聚类算法。

想预测你最喜欢的产品的销量吗?想通过不同客户群体的视角来理解客户流失?不管是什么用例,你都会发现高斯混合模型非常有用。

在本文中,我们将采用自下而上的方法。因此,我们将首先学习聚类的基础知识,包括快速回顾 k-means 算法。然后,我们将深入研究高斯混合模型的概念并用 Python 实现它们。

如果你对集群和数据科学还不熟悉,我建议您学习以下综合课程:Applied Machine Learning(https://courses.analyticsvidhya.com/courses/applied-machine-learning-beginner-to-professional)

本文将分为以下几个部分:

  • 聚类简介

  • k-means 聚类简介

  • k-means 聚类的缺点

  • 高斯混合模型简介

  • 高斯分布

  • 什么是期望最大化?

  • 高斯混合模型中的期望最大化

    聚类简介

在我们开始讨论高斯混合模型的本质之前,让我们快速更新一些基本概念。

注意:如果你已经熟悉了聚类背后的思想以及 k-means 聚类算法的工作原理,可以直接跳到第四节「高斯混合模型简介」。

因此,让我们从正式定义开始:

聚类是指根据相似数据点的属性或特征将它们分组在一起。

例如,如果我们有一组人的收入和支出,我们可以将他们分为以下几类:

  • 高收入,高消费

  • 高收入,低消费

  • 低收入,低消费

  • 低收入,高消费

nYvu2a7.png!web

这些组都分别拥有一个具有相似特征,这在向组投递相关方案/产品时非常有用。想想信用卡、汽车/房产贷款是不是这样的?简单地说:

集群背后的思想是将数据点分组在一起,这样每个单独的集群都拥有最相似的数据点。

有各种各样的聚类算法。最流行的聚类算法之一是 k-means。让我们了解 k-means 算法是如何工作的,以及该算法可能达不到预期的情况。

    k-means 聚类简介

k-means 聚类是一种基于距离的聚类算法。这意味着它试图将最近的点分组以形成一个簇。

让我们仔细看看这个算法是如何工作的。这将帮助你了解高斯混合模型是如何在本文后面发挥作用的。

因此,我们首先定义要将总体划分为的组的数量——这是 k 的值。根据需要的簇或组的数量,随机初始化 k 个质心。

然后将数据点指定给最近的质心,形成一个簇。然后更新质心并重新分配数据点。这个过程不断重复,直到质心的位置不再改变。

这里有个视频代表了初始化和更新集群的整个过程,其中,群集数被指定为 10:

Fr2a2yY.jpg!web

原视频地址:https://thumbs.gfycat.com/SoftEnragedHypsilophodon-mobile.mp4

注意:这是 k-means 聚类的简要概述,对于本文来说已经足够了。如果你想深入研究 k-means 算法的工作,这里有一个深入的指南:The Most Comprehensive Guide to k-means you’ll Ever Need !(https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/)

  k-means 聚类的缺点

k-means 聚类概念听起来不错,对吧?它易于理解,相对容易实现,并且可以应用于很多用例中。但也有一些缺点和局限性需要我们注意。

让我们以我们在上面看到的同样的收支例子为例。k-means 算法似乎运行得很好,但是,如果你仔细观察,你会发现所有创建的簇都是圆形的。这是因为集群的质心是使用平均值迭代更新的。

现在,考虑下面的例子,其中点的分布不是圆形的。如果我们对这些数据使用 k-means 聚类,你认为会发生什么?它仍然试图以循环方式对数据点进行分组。那不太好!k-means 无法识别正确的集群:

3mYR3qb.png!web

k-means 高斯混合模型

因此,我们需要一种不同的方法来将集群分配给数据点。因此,我们不再使用基于距离的模型,而是使用基于分布的模型。

    高斯混合模型简介

高斯混合模型(GMMs)假设存在一定数量的高斯分布,并且每个分布代表一个簇。因此,高斯混合模型倾向于将属于单一分布的数据点组合在一起。

假设我们有三个高斯分布——GD1、GD2 和 GD3。它们分别具有一定的均值(μ1,μ2,μ3)和方差(σ1,σ2,σ3)。对于给定的一组数据点,我们的 GMM 将识别属于这些分布的每个数据点的概率。

等等,概率?

对的!高斯混合模型是一种概率模型,采用软聚类方法对不同的聚类点进行分布。我再举一个例子,让大家更容易理解。

在这里,我们有三个集群,用三种颜色表示——蓝色、绿色和青色。让我们以红色突出显示的数据点为例。该点成为蓝色团簇一部分的概率为 1,而成为绿色或青色团簇一部分的概率为 0。

fUBvIj2.png!web

高斯混合模型

现在,考虑另一个点-介于蓝色和青色之间(在下图中突出显示)。这个点是绿色簇的一部分的概率是 0,对吧?这属于蓝色和青色的概率分别为 0.2 和 0.8。 

B3eeU3Z.png!web

高斯混合模型使用软聚类技术将数据点分配给高斯分布。你肯定想知道这些分布是什么,所以让我在下一节解释一下。

    高斯分布

我相信你熟悉高斯分布(或正态分布)。它有一个钟形曲线,数据点围绕平均值对称分布。

下图有一些高斯分布,平均值(μ)和方差(σ2)不同。记住,σ 值越高,价差越大:

QvUrUvz.png!web

高斯混合模型(来源:维基百科)

在一维空间中,高斯分布的概率密度函数由下式给出:

VryYbee.png!web

高斯分布

其中μ是平均值,σ2 是方差。

但这只适用于单个变量。在两个变量的情况下,我们将得到如下所示的三维钟形曲线,而不是二维钟形曲线:

2mYRNbM.png!web

高斯混合模型

概率密度函数由以下公式给出:

jEV73eu.png!web

高斯分布

其中 x 是输入向量,μ是 2D 平均向量,∑ 是 2×2 协方差矩阵。协方差现在可以定义曲线的形状。我们也可以对 d 维进行推广。

因此,这个多元高斯模型将 x 和 μ 作为长度 d 的向量,∑ 将是一个 d×d 协方差矩阵。

因此,对于具有 d 个特征的数据集,我们将得到 k 个高斯分布(其中 k 相当于簇的数量)的混合,每个都有一定的平均向量和方差矩阵。但是,如何分配每个高斯分布的均值和方差值?

这些值用一种叫做期望最大化(EM)的技术来确定。在深入研究高斯混合模型之前,我们需要了解这项技术。

    什么是期望最大化?

好问题!

期望最大化(EM)是寻找正确模型参数的统计算法。当数据缺少值时,或者换句话说,当数据不完整时,我们通常使用 EM。

这些缺失的变量称为潜在变量。当我们在研究一个无监督学习问题时,我们认为目标(或簇数)是未知的。

由于缺少这些变量,很难确定正确的模型参数。这样想吧——如果你知道哪个数据点属于哪个集群,你就很容易确定平均向量和协方差矩阵。

由于我们没有潜在变量的值,期望最大化试图利用现有数据来确定这些变量的最优值,然后找到模型参数。基于这些模型参数,我们返回并更新潜在变量的值。

广义上,期望最大化算法有两个步骤:

  • E-step:在这个步骤中,可用的数据用于估计(猜测)丢失变量的值

  • M-step:根据 E-step 中生成的估计值,使用完整的数据更新参数

期望最大化是许多算法的基础,包括高斯混合模型。那么,GMM 如何使用 EM 的概念,以及如何将其应用于给定的点集?让我们看看!

    高斯混合模型中的期望最大化

让我们用另一个例子来理解这一点。我想让你在读的时候自己也思考以下。这将帮助你更好地理解我们在说什么。

假设我们需要分配 k 个簇。这意味着存在 k 个高斯分布,平均值和协方差值为 μ1,μ2 ... μk 和 ∑1,∑2 ... ∑k。此外,还有一个用于分布的参数,用于定义分布的点数。或者换句话说,分布密度用 ∏i 表示。

现在,我们需要找到这些参数的值来定义高斯分布。我们已经决定了簇的数量,并随机分配了均值、协方差和密度的值。接下来,我们将执行 E-step 和 M-step!

E-step:

对于每个点 Xi,计算它属于簇/分布 C1、C2、…CK 的概率。使用以下公式完成此操作:

jIjIFbA.png!web

高斯混合模型

该值将在将点指定给右簇时为高,否则为低。

M-step:

完成 E-step 后,我们返回并更新 ∏,μ 和 ∑ 值。更新方式如下:

  • 新密度由群集中的点数与总点数的比率定义:

Jr6rQnF.png!web

高斯混合模型

  • 平均值和协方差矩阵根据分配给分布的值进行更新,与数据点的概率值成比例。因此,具有更高概率成为该分布一部分的数据点将贡献更大的部分:

    buUfAzM.png!web

高斯混合模型

基于此步骤生成的更新值,我们计算每个数据点的新概率并迭代更新值。为了最大化对数似然函数,重复该过程。实际上我们可以说:

k-means 只考虑更新质心的均值,而 GMM 则考虑数据的均值和方差!

    结语

这是高斯混合模型的入门指南。我在这里的目的是向你介绍这种强大的聚类技术,并展示它与传统算法相比是多么高效。

我鼓励你参加一个集群项目并在那里尝试 GMMs。这是学习和理解一个概念的最好方法——相信我,你会意识到这个算法有多有用!

via:https://www.analyticsvidhya.com/blog/2019/10/gaussian-mixture-models-clustering/

/ 更多阅读 /

ZvYJNnb.jpg!web

100000AI人才为你投票,企业扫码报名

BbeuQvV.jpg!web

nQZJjub.gif点击 阅读原文 ,查看:AI最佳雇主评选来了!100000票选最受AI开发者青睐的企业Top榜


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK