非监督学习——聚类

介绍
第一部分 参数方法——类密度模型参数估计
第二部分 监督学习——分类(基于似然的方法)
第三部分 监督学习——分类(基于判别式的方法)(参数方法——判别式参数估计)
第四部分 监督学习——回归
第五部分 监督学习——关联规则
第六部分 维度规约(特征的提取和组合)
第七部分 半参数方法
第八部分 非监督学习——聚类
第九部分 非参数方法——密度估计
第十部分 非参数方法——决策树实现的判别式
第十一部分 多层感知器——非参数估计器
第十二部分 局部模型
第十三部分 支持向量机与核机器
第十四部分 隐马尔科夫模型
第十五部分 参数的贝叶斯估计
第十六部分 集成学习——组合多学习器
第十七部分 增强学习
第十八部分 机器学习实验
第十九部分 特征工程与数据预处理

不同于监督学习下的分类问题,对数据样本,非监督学习只有而没有类标号。所以非监督学习需要估计两方面:一是数据实例所属的分支标号;二是要估计实例集所属分支的参数。

k均值聚类

假设有样本,找到k个参考向量,将数据映射到这k个向量上,使。

对每一种映射,其重构误差为

其中

我们需要最小化重构误差的,其中也依赖于,无法解析地求解这个优化问题。

k均值聚类是计算的一种方法,是一个迭代过程。首先随初始化,每次迭代先计算每个所邻近地,得到标号(在k个类的代表中,选择距离最近的获胜,就是竞争学习的思想(《局部模型》一节)。)。然后最小化重构误差,更新。这样重复,直到稳定。


除了批量处理数据,还可以采用在线学习的方法,迭代的使用梯度下降来更新(梯度下降和在线学习方法的介绍见《监督学习——分类(基于判别式的方法)》中计算逻辑斯蒂判别式部分),称为**在线k均值**。

对于单个实例,重构误差为,使用梯度下降,得到每个实例的更新规则为。这把最近的中心()向输入的实例移动一个因子。而其他中心()不更新。


k均值聚类的一个缺点是它是一个局部搜索过程,最终结果高度依赖于初始的。

初始值的选取:1、完全随机k个实例;2、计算所有数据的均值,在均值的基础上加一些小随机变量,得到k个初始值;

数据从连续空间映射到离散空间,这一过程叫做向量量化。向量量化是聚类的一种应用。但聚类也用于分类或回归之前的预处理。



期望最大化

k均值聚类是期望最大化方法的一个简例。k均值聚类中,把聚类问题看作寻找最小化总重构误差的参考向量的问题。而在期望最大化方法是概率的,并使用该方法寻找最大化样本似然的支密度参数。

期望最大化(EM)算法用于求最大似然估计,其中涉及两组随机变量。一组变量是可观测的X,也就是样本数据,另一组是隐藏的变量Z。

求解最大似然估计的目的是找到参数向量,使得最大化X的观测值似然。在无法求解的时候,我们关联附加的隐藏变量Z,并使用X和Z表示基础模型。则最大化似然为最大化X和Z联合分布的完全似然。

由于Z不可观测,同样不能直接求解。EM方法 根据给定X和当前参数值(l是迭代次数),求期望Q,这是EM方法的期望(E)步。之后,再进行最大化(M)步,求解新的参数值,它最大化期望。

E:

M:

随着迭代,有论证。

使用混合密度模型描述抽取样本的分布,样本X的对数似然为。其中包含先验概率和支密度的有效统计量。该问题不能解析地求解,使用EM方法。

对于混合模型,其隐藏变量是观测样本的源,既样本实例的分支来源。如果类是给定的,如监督学习的类标号,那么就可知道应该根据数据调整哪些参数。根据EM算法,我们先给定分支的初始知识,后再更新分支知识。对应k均值聚类的两步:计算(E步),更新(M步)。

定义一个指示变量的向量,如果属于簇,则,否则为0。z是多项式分布,每个实例以先验概率取自k个类,是的简写,如下:

观测的似然等于其概率:。是的简写。

联合密度

独立同分布的样本X 的完全似然为:

\begin{align}L_C(\Phi|X,Z)&=\log \prod_tp(\mathbf{x}^t,\mathbf{z}^t|\Phi)=\sum_t \log p(\mathbf{x}^t,\mathbf{z}^t|\Phi)\\&=\sum_t(\log p(\mathbf{z}^t|\Phi)+\log p(\mathbf{x}^t|\mathbf{z}^t,\Phi))\\&=\sum_t\sum_i z_i^t[\log \pi_i+\log p_i(\mathbf{x}^t|\Phi)]\end{align}

下面进行EM算法的更新过程——

E步:

其中,

\begin{align}E[z_i^t |X,\Phi^l]&=E[z_i^t | \mathbf{x}^t,\Phi^l]\\&=P(z_i^t=1 |\mathbf{x}^t,\Phi^l)\\&=\frac{p(\mathbf{x}^t|z_i^t=1,\Phi^l)P(z_i^t=1|\Phi^l)}{p(\mathbf{x}^t|\Phi^l)}\\&=\frac{p_i(\mathbf{x}^t|\Phi^l)\pi_i}{\sum_jp_j(\mathbf{x}^t|\Phi^l)\pi_j}\\&=\frac{p(\mathbf{x}^t|G_i,\Phi^l)P(G_i)}{\sum_jp(\mathbf{x}^t|G_j,\Phi^l)P(G_j)}\\&=P(G_i|\mathbf{x}^t,\Phi^l)\end{align}

记。隐藏变量Z的期望值是被分支生成的后验概率,其值在0~1之间。于k均值聚类的0/1“硬标号”不同,是“软标号”。

M步:

最大化Q,得到下一组参数,其中

Q的最后一项独立于,所以在估计时忽略。使用约束,转换为拉格朗日问题,求解

得到。

Q的第一项独立于分支,所以在估计分支参数时将其请忽略。求解

若,则分支参数更新为

和参数分类一样,当样本小而维度高时,也可以简化假设来正则化。如高斯混合模型下,假设所有类共享协方差矩阵。

k均值聚类时EM用于高斯混合模型的特里,假定了输入是独立的、具有共享方差,所有分支具有相等的先验,并且标号是“硬标号”。

潜在变量混合模型

潜在变量就是维度归约因子分析方法重得潜在因子。潜在变量混合模型在混合模型的簇内,对簇内参数运用因子分析方法。

对于使用EM方法估计高斯混合模型参数,如果输入维度很高且样本很小,共享协方差矩阵减少了参数个数,简化了问题。但还是可能过拟合。实际上对各簇共享协方差矩阵可能并不正确,根据实际场景需要具体斟酌。因为簇实际上可能具有不同的形状。假设协方差矩阵为对角矩阵可能更危险,因为这排除了任何的相关性。

另一种解决输入维度高而样本小的方法,实在簇内做维度归约。减少参数个数,同时不舍弃相关性。

当在簇中做因子分析时,我们寻找产生是簇中数据的隐藏变量:

其中和是簇的因子载荷和特定方差。具体间维度归约因子分析方法。


谱聚类

除了如上述EM方法在原始空间上聚类外,一种可行的方法是先把数据映射到一个新空间,然后在新空间进行聚类。新空间具有约化的维度,并使得相似性更加明显。

将数据映射到新空间,可以通过特征选择和提取的维度归约方式来进行。采用拉普拉斯特征映射的方式,就是谱聚类。

拉普拉斯特征映射保持逐对相似性,具体内容见“维度归约”部分。这样注重局部逐对近似性,使得相似的点被映射到新空间中邻近的位置。这可望提高聚类的性能。

谱聚类有两步:一、在原始空间中定义局部领域,并通过实例间的距离定义相似度度量,不再一个邻域内的实例间相似度为0。也就是拉普拉斯特征映射需要做的。然后通过拉普拉斯特征映射将数据映射到新空间。

二、使用新空间重得而数据坐标进行聚类。

对于将数据映射到新空间再进行聚类,目的在于尽量使映射后的数据相似性更明显,提高聚类性能。那么使用拉普拉斯特征映射比使用MDS或PCA方法更有意义,因为MDS和PCA注重全局的逐对相似性,而拉普拉斯特征映射只关心邻域内的实例间的相似度。在这种情况下,原空间中邻域内的实例会安置在新空间中邻近的位置,从而使聚类更容易处理。

依赖于不同的图拉普拉斯和不同的邻域大小,可能有不同的结果。应尝试不同的超参数。


层次聚类

前面的方法将聚类看作一个拟合数据混合模型的过程,找到最小重构误差的参考向量。还有一种聚类方法,只使用实例之间的相似性。找出分组,使得在同一分组内的实例比不在同一分组内的实例更相似,称为层次聚类。

定义一种相似度度量。如闵可夫斯基距离,或。

凝聚过程,从N个分组开始,每个分组最除初只有一个数据实例。每次合并距离最近的分组,形成更大的分组,知道所有数据合并为一个分组。分裂过程,以相反的方向进行,最开始只有一个分组,所有实例都在其中。

在凝聚过程的每次迭代中,选在两个距离最近的分组合并。单链接聚类中,定义两个分组的距离为所有可能实例对之间的最小距离:

在全连接聚类中,定义两个分组的距离为所有可能实例对之间的最大距离:

谱聚类和层次聚类的一个好处是,只要得到实例之间的距离度量或相似度度量,就不再需要实例的向量表示。


聚类后的监督学习

与唯独规约一样,聚类可以用于两个目的:一、用来探查数据,理解数据的结构,也就是对按数据聚集情况分组。二、将数据映射到新空间,在新空间里监督学习更容易。

维度归约方法用来发现变量之间的相关性,从而对变量进行分组(维度变量的选取、组合)。

聚类方法用于发现实例之间的相似性,从而对实例进行分组。

聚类常作为预处理步骤使用,就像维度归约将数据映射到新空间,聚类也可以将数据映射到新的 k 为空间,其中各维是。但不同于唯独规约的是,聚类后的新空间维度 k 可能比原空间维度 d 大(维度归约对维度变量分组,所以k小)。

你可能感兴趣的:(非监督学习——聚类)