聚类分析

发现并可视化数据中的自然分组和模式

聚类分析涉及应用聚类算法,目标是在数据集中找到隐藏的模式或分组。因此,它经常用于探索性数据分析,但也用于异常检测和监督学习的预处理。

聚类算法以这样一种方式形成分组:一个组(或聚类)内的数据比任何其他聚类中的数据具有更高的相似性度量。可以使用各种相似度量,包括欧几里得、概率、余弦距离和相关性。大多数无监督学习方法是聚类分析的一种形式。

聚类算法分为两大类:

  1. 硬聚类,即每个数据点只属于一个聚类,如流行k——方法。
  2. 软聚类,其中每个数据点可以属于多个聚类,例如在高斯混合模型中。例子包括语音中的音素,它可以被建模为多个基音的组合,以及可以参与多个生物过程的基因。
K-means聚类,用于将数据划分为不同的组。

k表示聚类,用质心来表示群体——每个成员的平均值,用上图中的星星来表示。

Gassian混合模型用于将数据分离为两个簇。

Gassian混合模型,分配聚类成员概率,表示与不同聚类的关联强度。

聚类分析被用于各种领域和应用,以识别模式和序列:

  • 在数据压缩方法中,聚类可以表示数据而不是原始信号。
  • 聚类在分割算法中表示图像和激光雷达点云的区域。
  • 遗传聚类和序列分析用于生物信息学。

在半监督学习中,还使用聚类技术来建立有标签和无标签数据之间的相似性,其中用最小的标签数据构建初始模型,并用于为原始的无标签数据分配标签。相比之下,半监督聚类将关于聚类的可用信息整合到聚类过程中,比如已知某些观察数据属于同一聚类,或者某些聚类与特定的结果变量相关。

MATLAB®支持许多流行的聚类分析算法:

  • 分层聚类通过创建集群树来构建集群的多层层次结构。
  • k - means聚类根据到群集质心的距离,将数据划分为k个不同的群集。
  • 高斯混合模型形成集群作为多元法向密度成分的混合物。
  • 空间聚类(如流行的基于密度的DBSCAN)将高密度区域中彼此接近的点分组,跟踪低密度区域中的异常值。可以处理任意的非凸形状。
  • 自组织映射使用学习拓扑和数据分布的神经网络。
  • 谱聚类将输入数据转换为基于图形的表示,其中集群比在原始特征空间中更好地分离。可以通过研究图的特征值来估计聚类的数量。
  • 隐马尔可夫模型可用于发现序列中的模式,如生物信息学中的基因和蛋白质。

要点

  • 聚类分析常用于探索性数据分析、异常检测和分割,以及作为监督学习的预处理。
  • k-means和分层聚类仍然流行,但对于非凸形状,需要更先进的技术,如DBSCAN和光谱聚类。
  • 可用于发现数据分组的其他无监督方法包括降维技术和特征排序。

MATLAB中的聚类分析示例

使用imsegkmeans命令(使用k-means算法),MATLAB给原始图像(被血氧素和伊红染色的组织)分配了三个聚类,提供了将组织分割为三类(表示为白、黑、灰)的方法。自己尝试一下,以及相关的分割方法这段代码示例

cluter-analysis-discovery-page-he-image
cluter-analysis-discovery-page-cluster-index-image

参见:统计和机器学习工具箱™,Machine Learning with MATLAB,图像处理工具箱™

Baidu
map