Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 3.14 KB

File metadata and controls

44 lines (30 loc) · 3.14 KB

数据预处理

无监督学习

降维技术

下面我们将开始通过术语介绍各类降维技术。第一种降维的方法称为主成分分析,在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由 数据本身决定的。第一个新坐标轴选择在的是原始数据中方差最大的方向,第二个新坐标轴的选择和第一个坐标轴正交且最大方差的方向。该过程一直重复, 重复次数为原始数据中特征的数目。我们会发现,大部分方差都包含在最前面的几个新坐标轴中。

另外一种降维技术是因子分析。在因子分析中,我们假设在观察数据的生成中有一些观察不到隐变量。假设观察数据是这些隐变量和某些噪声的线性组合。 那么隐变量的数据可能比观察数据的数目少,也就是说通过找到隐变量就可以实现数据的降维。
还有一种降维技术就是独立成分分析。ICA假设数据是从N个数据源生成的,这一点和因子分析有些类似。假设数据为多个数据源的混合观察结果,这些数 据源之间在统计上是相互独立的,而在PCA中只假设数据是不相关的。同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维过程。

PCA本身也由于其算法的特点,并不能满足所有的场景。这里我们将学习另一个非负矩阵分解(NMF)算法,它主要用于提取有用的特征,它的工作原理 类似于PCA,也可以用于降维。其特点在将数据分解成非负加权求和的这个过程,对由多个独立源相加创建而成的数据特别有用,比如多人说话的音轨或 包含多种乐器的音乐,在这种情况下,NMF可以识别除组成合成数据的原始分量。如果读者希望了解更多关于NMF的知识,可以参考 本文章

注意其中我们使用了图像,但是其库将会自动下载,考虑到实际网速原因,需要读者自行下载(百度fetch_lfw_people接口) 安装包然后解压到C:\Users\[用户]\scikit_learn_data目录下

最后我们介绍t-SNE算法。虽然PCA通常是用于变换数据的首选方法,但这一方法的性质限制了其有效性。而有一类用于可视化的算法叫做流形学习算法 ,它允许进行更复杂的映射,通常也可以给出更好的可视化。

最后需要介绍介绍的就是SVD算法,由于该算法本身已在numpy提供了,所以并不需要具体的实现算法进行单独的介绍,具体的使用方式可以参考如下 的方式:

from numpy import linalg
U,Sigma,VT = linalg.svd(mat(data))

在很多情况下,数据中的一小段携带了数据集中的大部分信息,其他信息则要么是噪声,要么就是毫不相关的信息。为了提取中其中重要的数据,我们 需要使用到矩阵分解技术,而最常见的则是SVD分解技术。SVD将原始数据集矩阵A分解成三个矩阵,从而