特征选择与降维2–降维
什么是降维?
降维是通过获得一组基本上是重要特征的主变量来减少所考虑的特征变量的过程。现实应用中属性维度成千上万,在高维度情况下会带来很多麻烦,而且当维度大的时候,数据样本一般分布的非常稀疏,这是所有学习算法要面对的问题,降维技术应运而生。
降维是对事物的特征进行压缩和筛选,该项任务相对比较抽象。如果没有特定领域知识,无法预先决定采用哪些数据,比如在人脸识别任务中,如果直接使用图像的原始像素信息,数据的维度会非常高,通常会利用降维技术对图像进行处理,保留下最具有区分度的像素组合。
降维中的数据集样本:
在降维方法中我们把样本数据集看成是矩阵,数据集的每行对应一个样本,每列对应一个特征或者维度,所以降维方法的证明均源于数学中很多关于矩阵的处理技巧和定理。
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间。
降维的本质是学习一个映射函数f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然也可以提高维度)。映射函数f可能是显式的或隐式的、线性的或非线性的。
在很多算法中,降维算法成为了数据预处理的一部分。一些算法如果没有降维预处理,就很难得到很好的效果。
常见的降维方法:
1.SVD–奇异值分解
奇异值分解(Singular Value Decomposition,简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域,是很多机器学习算法的基础,更是PCA降维方法的基础。
SVD的原理简单,仅涉及简单的矩阵线性变换知识,奇异值分解是一个能适用于任意矩阵的一种分解方法,奇异值分解发现矩阵中的冗余并提供用于消除他的格式,奇异值分解就是利用隐藏的特征建立起矩阵行和列之间的联系
SVD是较强的数据降维工具,可以有效处理数据噪音。在数据处理过程中得到的三个矩阵,也有相关物理含义。
SVD 的缺点是分解出的矩阵的可解释性差,计算量大。
关于奇异值分解的原理这里就不重复了,我在之前的预备知识的笔记中详细记录过。
前一篇笔记:大数据学习–预备知识:数学基础
SVD的原理不难,只要有基本的线性代数知识就可以理解,实现也很简单因此值得仔细的研究。当然,SVD的缺点是分解出的矩阵解释性往往不强,有点黑盒子的味道,不过这不影响它的使用。
由于奇异值的计算是一个纯数学的过程,在数据挖掘的应用中只要理解其原理掌握应用方法即可。
SVD的性质:一般地,奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。即可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵A,这样矩阵A的信息量就被极大的压缩和去除噪声,也为后续大规模的计算提高了效率。
SVD分解可以广泛地用来求解最小二乘问题,正则化问题,低秩逼近问题,数据压缩问题,文本处理中的分类问题。
SVD应用与推荐系统
推荐系统定义:不需要用户提供明确的需求,通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息的在线系统。
对比搜索引擎:搜索引擎满足了用户有明确目的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。
SVD用于推荐系统思路:
提取数据集,一般数据集的行代表用户user,列代表物品item,其中的值代表用户对物品的打分。
基于SVD的优势在于:用户的评分数据是稀疏矩阵,可以用SVD将原始数据映射到低维空间中,然后计算物品item之间的相似度,可以节省计算资源。
整体思路:先找到用户没有评分的物品,然后再经过SVD“压缩”后的低维空间中,计算未评分物品与其他物品的相似性,得到一个预测打分,再对这些物品的评分从高到低进行排序,返回前N个物品推荐给用户。
2.PCA–主成份分析
PCA(Principal Component Analysis,主成分分析)
在高维向量空间中,随着维度的增加,数据呈现出越来越稀疏的分布特点,增加后续算法的复杂度,而很多时候虽然数据维度较高,但是很多维度之间存在相关性,他们表达的信息有重叠。
思想:
寻找表示数据分布的最优子空间(降维&#