当前位置:   article > 正文

【机器学习】几种常见的无监督学习算法_瑞士卷t-sne

瑞士卷t-sne

本系列包含:


1. PCA

降维是指在保留数据特征的前提下,以少量的变量表示有许多变量的数据,这有助于降低多变量数据分析的复杂度。减少数据变量的方法有两种:一种是只选择重要的变量,不使用其余变量;另一种是基于原来的变量构造新的变量。

PCA(Principal Component Analysis)是一种用于减少数据中的变量的算法。它对变量之间存在相关性的数据很有效,是一种具有代表性的降维算法。PCA 使用低维变量表示高维空间中的数据。这个低维的轴叫做主成分,以原来的变量的线性和的形式组成。PCA 能够发现对象数据的 方向重要度。方向由构成新变量时对象数据变量的权重决定,而重要度与变量的偏差有关。

PCA 采用以下步骤来寻找主成分:
(1)计算协方差矩阵。
(2)对协方差矩阵求解特征值问题,求出特征向量和特征值。
(3)以数据表示各主成分方向。

求解协方差矩阵的特征值问题,在数学上等同于 寻找使方差最大化的正交轴 的问题。PCA 对协方差矩阵求解特征值问题,并计算出特征值和特征向量的几种组合。这时按特征值大小排序的特征向量分别对应于第一组成分,第二主成分…

如果我们使用针对每个主成分计算出的特征值除以特征值的总和,就能够以百分比来表示主成分的重要度,这个比例叫做 贡献率,它表示每个主成分对数据的解释能力。从第一主成分开始依次相加得到的贡献率叫做 累计贡献率

值得注意的是,如果对变量之间没有相关性的数据进行 PCA,会发现各个主成分的贡献率几乎相同,所以可以反过来推断,这样的数据不适合用 PCA 进行降维。

2. LSA

LSA(Latent Semantic Analysis)是一种自然语言处理技术。作为一种降维算法,它常被用于信息搜索领域。使用 LSA 能够从大量的文本数据中找出单词之间的潜在关联性。

使用 LSA 可以根据大量文本自动计算单词和单词的相似度,以及单词和文本的相似度。通过 LSA 对文本和单词的矩阵进行降维,将其变换为 潜在语义空间。这种变换使用矩阵分解进行。比如,在单词空间中,车和汽车都被当作正交维度处理,而在语义空间中,二者被表示为相似的单词。

LSA 使用的矩阵分解是 奇异值分解。使用这种分解方法变换后的矩阵有时难以解释。在通过奇异值分解降维时,各个维度可能是正交的,矩阵中的元素也可能是负值,因此与之相比,NMF 和 LDA 等算法的结果更容易解释。同时,LSA 的计算成本有时很高。特别是在用于文本时,由于原始矩阵的维度就是单词的个数。所以 LSA 必须在非常大的矩阵上进行奇异值分解。随着新词的加入,原有的矩阵必须重新创建,我们必须在此基础上重新计算,所以模型的更新难度很大。

3. NMF

NMF(Non-negative Matrix Factorization,非负矩阵分解)是一种降维算,它的特点是输入数据和输出数据的值都是非负的。这个特点在处理图像等数据时有一个优点就是模型的可解释性强。

NMF 是一种矩阵分解方法,在计算机视觉、文本挖掘、推荐等各个领域都有应用。与 LSA 一样,它也可以找到矩阵的潜在变量,但 NMF 只适用于原始矩阵的所有元素都是非负数的情况。NMF 有如下特点:

  • 原始矩阵的元素是非负数。
  • 分解后矩阵的元素是非负数。
  • 没有 潜在语义空间的每一个维度都是正交的 这一约束条件。

4. LDA

LDA(Latent Dirichlet Allocation,隐含狄利克雷分布)是一种降维算法,适用于文本建模。该算法可以根据文本中的单词找出潜在的主题,并描述每个文本是由什么主题组成的,还可以用于说明一个文本不只有一个主题,而是有多个主题。

LDA 通过以下步骤计算主题分布和单词分布。

  1. 为各文本的单词随机分配主题。
  2. 基于为单词分配的主题,计算每个文本的主题概率。
  3. 基于为单词分配的主题,计算每个主题的单词概率。
  4. 计算步骤 2 和步骤 3 中的概率的乘积,基于得到的概率,再次为各文本的单词分配主题。
  5. 重复步骤 2 到步骤 4 的计算,直到收敛。

根据步骤 4 中计算得到的概率,为各文本的单词分配主题。由于步骤 2 中确定了文本的主题概率,所以在同一个文本内,某些主题被选中的可能性较大。另外,同一个文本中的单词往往被选为同一个主题。通过重复这样的计算,文本分配到特定主题的概率就会增加,同时,由于与每个主题相关联的单词更容易被选中,所以单词作为代表主题的词的概率也会增加。

5. K-Means

K-Means 算法是一种聚类算法。其典型计算步骤如下:

  1. 从数据点中随机选择数量与簇的数量相同的数据点,作为这些簇的重心。
  2. 计算数据点与各重心之间的距离,并将最近的重心所在的簇作为该数据点所属的簇。
  3. 计算每个簇的数据点的平均值,并将其作为新的重心。
  4. 重复步骤 2 和步骤 3,直到所有数据点不改变所属的簇,或者达到最大计算步数。

可以通过计算 簇内平方和(Within-Cluster Sum of Squares,WCSS)来评估聚类结果的好坏。WCSS 随着簇的增加而变小,所以可以用于相同数量的簇的情况下的比较。WCSS 指的是对所有簇计算其所属的数据点与簇的重心之间距离的平方和,并将它们相加得到的值。这个值越小,说明聚类效果越好。

随着簇的增加,WCSS 会变小,但有时 WCSS 的变小幅度会从簇的数量为某个值时开始放缓。通过使用 Elbow 方法,可以确定合理的簇的数量。

6. 混合高斯分布

在机器学习和统计学中常用的高斯分布(即:正态分布),可以表示一组数据。如果数据集中有多组数据,可以使用 混合高斯分布(即多个高斯分布的线性组合)来实现聚类。

数据的分布可以用均值和方差表示,均值描述数据的中心位置,方差描述数据的离散程度。混合高斯分布是以多个高斯分布的线性叠加来表示数据的模型。

混合高斯分布的学习过程是从给定的数据点中找到每个高斯分布的均值和方差的过程。当然,混合高斯分布必须在不知道每个数据点的类别的情况下求出参数。因此,我们需要在推测每个数据点属于某个类别的权重的基础上,计算出数据点的各个类别的高斯分布参数(均值和方差)。具体的计算步骤如下:

  1. 初始化参数(各高斯分布的均值和方差)。
  2. 对每个类别计算数据点的权重。
  3. 根据步骤 2 中计算出的权重重新计算参数。
  4. 重复步骤 2 和步骤 3,直到通过步骤 3 更新前后的每个均值的变化足够小。

混合高斯分布中的每个高斯分布对呈椭圆形分布的数据有效,而 k-means 算法对从重心开始呈圆形分布的数据有效。

7. LLE

LLE(Locally Linear Embedding,局部线性嵌入)是一种被称为流形学习(mainfold learning)的算法。流形指的是可以将局部看作没有弯曲的空间。类似地,地球虽然是球体,但是我们可以对地球的局部绘制平面地图。

其目标是对具有非线性结构的数据进行降维。LLE 可以将以弯曲或扭曲的状态埋藏在高维空间中的结构简单地表示在低维空间中。

LLE 算法要求数据点由其近邻点的线性组合来表示。近邻点数量是超参数。虽然实际的数据在三维空间中,可能会呈现瑞士卷那样的卷曲结构,但 LLE 将其视为局部的点与点的关系,即近邻点之间是不弯曲的空间,所以仍使用近邻点来表示数据点。

8. t-SNE

t-SNE(t-Distributed Stochastic Neighbor Embedding, t t t 分布随机邻域嵌入)也是一种流形学习算法。通过将高维的复杂数据降维为二维或三维,用于空间的可视化。

t-SNE 特点是在降维时使用了自由度为 1 的 t t t 分布。通过 t t t 分布可以使高维空间中原本很近的结构在低维空间中变得更近,原本较远的结构变得更远。

t-SNE 算法的步骤如下:

  1. 对于所有的组 i i i j j j,使用高斯分布来表示 x i x_i xi x j x_j xj 的相似度。
  2. 在低维空间中随机配置与 x i x_i xi 相同数量的点 y i y_i yi,对于所有的组 i i i j j j,使用 t t t 分布表示 y i y_i yi y j y_j yj 的相似度。
  3. 更新数据点 y i y_i yi,使得步骤 1 和步骤 2 中定义的相似度分布尽可能相似。
  4. 重复步骤 3,直至达到收敛条件。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/770688
推荐阅读
相关标签
  

闽ICP备14008679号