特征降维
来源:互联网 发布:sql 附加数据库 编辑:程序博客网 时间:2024/05/16 04:56
维度灾难
首先在机器学习中,如果特征值(也可称之为维度,或feature,或参数)过多,会发生所谓的维度灾难。维度灾难最直接的后果就是过拟合现象,而发生该现象最根本的原因是:
1,维度增加时,有限的样本空间会越来越稀疏。因此模型出现在训练集上表现良好,但对新数据缺乏泛化能力的现象。
如果训练集可以达到理论上的无限个,那么就不存在维度灾难,我们可以用无限个维度去得到一个完美的分类器。训练集样本越少,越应该用少量的特征,如果N个训练样本足够覆盖一个一维的特征空间(区间大小为一个单位),那么 需要N^2个样本去覆盖一个同样密度的二维的特征空间,需要N^3个样本去覆盖三维的特征空间。换句话说,就是训练样本多少需要随着维度指数增长。
2,维度增加时,每个样本数据越来越不可能符合所有维度(特征),这使得大部分样本都变成了噪声。
下面这两篇文章非常非常浅显的探讨了这个问题,绝对不要错过:
http://blog.csdn.net/tanya_girl/article/details/50151183
http://blog.csdn.net/tanya_girl/article/details/50151291
如何判断发生了过拟合
如果模型训练完毕后,发现模型在样本集上表现良好,但在新数据上准确率低于或高于某阈值,可基本判定发生了过拟合。例如在新数据上准确率低于50%或高于90%。
也可在模型训练阶段采用交叉验证来检测是否发生了过拟合。基本方法是将训练数据分为一个或多个数据集,用一部分数据集训练模型,另一部分验证模型准确度。如果分类结果在训练集合和测试集合上相差很多,那么就是产生了过拟合。
特征降维
特征降维就是用来减少维度,去除过拟合现象的方法。特征降维分为两种特征选择和特征抽取。
首先我们应明确特征选择与特征抽取的区别,虽然二者达到的效果都是减少特征维度,但二者有本质的区别:
1,特征选择 Feature Selection
选择有效的特征子集,即去掉不相关或冗余的特征。目的是减少特征个数,提高模型精度,减少运行时间。特征选择后留下的特征值的数值在选择前后没有变化。
2,特征抽取 Feature Extraction
特征抽取是指改变原有的特征空间,并将其映射到一个新的特征空间。例如某个特征是一张图片,将这张图片中的点,线条或颜色提取出来并参数化,就是一个特征抽取的过程,且这个过程是升维的。因此这个例子是特征抽取,但不能算是特征降维。
另一种情况,例如特征空间包含城市名称,城市等级和城市人口。这三种特征有很强的相关性,但并不能互相替代。因为例如北上广同为一线城市,但人口总量还是有区别的,因此不能在特征选择时简单的将城市人口去掉。但为了达到降维的目的,我们可以将高维特征空间映射到低维特征空间,且城市等级和人口在低维空间都有所表达。
此时降维的本质就是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度。抽取前后特征值的数值会发生变化,维度会降低,且维度之间会更加独立。
特征选择和特征抽取的常用算法
特征选择和特征抽取又是一个复杂的话题,具体可以参考维基百科。但二者都是非监督学习。
简单的说:
特征选择的模型可以分为三类:Wrappers, Filters and Embedded。
Wrappers 使用一个搜索算法来搜索所有可能的特征空间子集,对于每一个特征空间子集运行模型并评估。因此Wrappers在计算上非常费时,同时存在过拟合的风险。
Filters和Wrappers类似,只不过不使用模型来评估,而是使用一个更为简单的过滤器来评估。
Embedded是指嵌入一个模型。
PCA算法和LDA算法是最常用的两种特征抽取算法。
PCA算法又名主成分分析算法(Principal Component Analysis)。它通过协方差矩阵的特征值分解能够得到数据的主成分,以二维特征为例,两个特征之间可能存在线性关系(例如运动的时速和秒速度),这样就造成了第二维信息是冗余的。PCA的目标是发现这种特征之间的线性关系,并去除。因此PCA本质是一种去相关算法。
LDA算法又名线性判别式分析(Linear Discriminant Analysis,也有叫做Fisher Linear Discriminant)。它考虑label,降维后的数据点尽可能地容易被区分。
- 特征降维
- 特征降维 理论
- 特征降维 实例
- 特征降维
- PCA特征降维
- 特征选择与特征降维的差别
- 特征的转换_06-特征降维PCA
- 降维中的特征选择
- 降维中的特征选择
- 降维中的特征选择
- 特征降维之SVD分解
- PCA数据降维(Eigenfaces特征脸)
- PCA方法对特征降维
- 特征降维——PCA
- 特征选择与降维总结
- opencv笔记(9):特征降维-PCA
- 机器学习-->特征降维方法总结
- 【数据平台】sklearn库特征工程之特征选择和降维
- 第一次实验1-1
- 日志管理系统部署方法
- css背景样式
- python-opencv颜色提取分割
- 单片机的时钟分频
- 特征降维
- C++第一次上机实验报告—01
- 实际应用中经常用的代码片段,但是没有必要记住的
- 【leetcode】Array——Maximal Rectangle(85)
- tree
- AndroidStudio运行项目出现Failure [INSTALL_FAILED_DEXOPT]
- 用循环求
- 程序设计作业报告
- android日期选择器,从底部弹出的日期选择器,有点像IOS日期选择器