机器学习算法07 - 聚类分析

聚类分析

“物以类聚,人以群分”

K-means

在聚类中,数据对象之间的相似度时很关键的。如果我们把样本转换为向量,然后使用向量空间中的距离或者夹角余弦,就很自然的能获得这种相似度,所以向量空间模型和聚类算法可以很容易的结合在一起。

EM

EM 算法相当于一个框架,你可以采用不同的模型来进行聚类,比如 GMM(高斯混合模型)或者 HMM(隐马尔科夫模型)来进行聚类。GMM 是通过概率密度来进行聚类,聚成的类符合高斯分布(正态分布)。而 HMM 用到了马尔可夫过程,在这个过程中,我们通过状态转移矩阵来计算状态转移的概率。HMM 在自然语言处理和语音识别领域中有广泛的应用。

在 EM 这个框架中,E 步骤相当于是通过初始化的参数来估计隐含变量。M 步骤就是通过隐含变量反推来优化参数。最后通过 EM 步骤的迭代得到模型参数。

通过上面举的炒菜的例子,你可以知道 EM 算法是一个不断观察和调整的过程。

通过求硬币正面概率的例子,你可以理解如何通过初始化参数来求隐含数据的过程,以及再通过求得的隐含数据来优化参数。

通过上面 GMM 图像聚类的例子,你可以知道很多 K-Means 解决不了的问题,EM 聚类是可以解决的。在 EM 框架中,我们将潜在类别当做隐藏变量,样本看做观察值,把聚类问题转化为参数估计问题,最终把样本进行聚类。

EM 聚类的实战,具体使用的是 GMM 高斯混合模型。从整个流程中可以看出,我们需要经过数据加载、数据探索、数据可视化、特征选择、GMM 聚类和结果分析等环节。

聚类和分类不一样,聚类是无监督的学习方式,也就是我们没有实际的结果可以进行比对,所以聚类的结果评估不像分类准确率一样直观,那么有没有聚类结果的评估方式呢?这里我们可以采用 Calinski-Harabaz 指标。

指标分数越高,代表聚类效果越好,也就是相同类中的差异性小,不同类之间的差异性大。当然具体聚类的结果含义,我们需要人工来分析,也就是当这些数据被分成不同的类别之后,具体每个类表代表的含义。

另外聚类算法也可以作为其他数据挖掘算法的预处理阶段,这样我们就可以将数据进行降维了

机器学习基本算法之一的聚类分析的基本原理,其要点如下:

  • 聚类分析是一种无监督学习方法,通过学习没有分类标记的训练样本发现数据的内在性质和规律;
  • 数据之间的相似性通常用距离度量,类内差异应尽可能小,类间差异应尽可能大;
  • 根据形成聚类方式的不同,聚类算法可以分为层次聚类、原型聚类、分布聚类、密度聚类等几类;
  • 聚类分析的一个重要应用是对用户进行分组与归类。

你可能感兴趣的:(算法,人工智能,算法之美,algorithm,ai)