机器学习中特征降维和特征选择的区别

在machine learning中,特征降维和特征选择是两个常见的概念,在应用machine learning来解决问题的论文中经常会出现。

对于这两个概念,很多初学者可能不是很清楚他们的区别。很多人都以为特征降维和特征选择的目的都是使数据的维数降低,所以以为它们是一样的,曾经我也这么以为,这个概念上的误区也就导致了我后面对问题的认识不够深入。后来得到老师的指点才彻底搞清楚了两者的关系,现总结出来与大家分享。

machine learning的终极目标就是为了预测,当然预测前我们要对数据进行training。通常我们不会拿原始数据来训练,为什么呐?可能有些人觉得原始信息包含了样本最丰富的信息,没有经过任何处理的raw data能最完整表达样本,这个观点没有错。但是用raw data来直接训练的话,有一个问题就是我们设计的分类器在训练集上会得到很好的performance,但在测试集上的performance却变得非常差。这就是过拟合(overfitting)的问题。用raw data直接训练还有一个问题就是原始维度太高,耗时长。

解决过拟合的问题就要求我们找出raw data中差异性最大的那些特征,这样才能保证分类器在测试集有好的performance。所以通常我们都是要对原始数据进行特征提取的。提取特征后通常特征维数依然不低,而且依然可能会出现过拟合的问题,为了解决这些问题,通常的做法就是降维和特征选择。降维用的最多是PCA。

从上面的分析可能看到,感觉降维和特征选择都是为了使数据维度降小。但实际上两者的区别是很大,他们的本质是完全不同的。下面着重说说两者的区别。

降维本质上是从一个维度空间映射到另一个维度空间,特征的多少别没有减少,当然在映射的过程中特征值也会相应的变化。举个例子,现在的特征是1000维,我们想要把它降到500维。降维的过程就是找个一个从1000维映射到500维的映射关系。原始数据中的1000个特征,每一个都对应着降维后的500维空间中的一个值。假设原始特征中有个特征的值是9,那么降维后对应的值可能是3。

特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。举个例子,现在的特征是1000维,现在我们要从这1000个特征中选择500个,那个这500个特征的值就跟对应的原始特征中那500个特征值是完全一样的。对于另个500个没有被选择到的特征就直接抛弃了。假设原始特征中有个特征的值是9,那么特征选择选到这个特征后它的值还是9,并没有改变。

本文系原创,转载请注明转载自:http://blog.csdn.net/computerme/article/details/39157073
版权声明:本文为CSDN博主「IT修道者」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

最新文章