第5章 软聚类和高斯混合模型
在本章中,我们将讨论软聚类的概念,它允许我们针对定义的聚类配置,获取数据集每个样本的隶属程度。也就是说,从0到100%的范围,我们想知道xi属于聚类的程度。如果极值为0,这意味着xi完全位于聚类的域外部;如果为1(100%),则表示xi已完全分配给单个聚类。所有中间值意味着两个或更多个不同聚类的部分域。因此,与硬聚类相反,在这里,我们感兴趣的不是固定分配,而是具有相同概率分布(或概率本身)属性的向量。这种方法可以更好地控制边界样本,并帮助我们找出生成过程的适当近似值,而数据集则可在该过程被绘制。
本章将着重讨论以下主题。
- Fuzzy c-means。
- 高斯混合。
- 用AIC和BIC作为性能指标。
- 贝叶斯高斯混合(简介)。
- 生成(半监督)高斯混合。
5.1 技术要求
本章中的代码需求如下。
- Python 3.5+(强烈推荐Anaconda发行版)。
- 库。
- SciPy 0.19+。
- NumPy 1.10+。
- scikit-learn 0.20+。
- scikit-fuzzy 0.2。
- pandas 0.22+。
- Matplotlib 2.0+。
- seaborn 0.9+。
示例代码可在本书配套的代码包中找到。
5.2 软聚类
在层次聚类操作中分析的所有算法都属于硬聚类方法。这意味着始终将给定样本分配给单个聚类。软聚类则旨在将每个样本xi与一个向量相关联,该向量通常表示xi属于每个聚类的概率:
另外,输出可以解释为隶属向量:
同时
从形式上讲,两个解释之间没有区别,但在通常情况下,当算法没有明确地基于概率分布时,我们将采用后者。出于我们的目的,我们总是将 ...
Get Python无监督学习 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.