机器学习中如何用筛选器检测冗余?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中如何用筛选器检测冗余?相关的知识,希望对你有一定的参考价值。
筛选器试图在特征丛林中进行清洗,它独立于后续使用的任何机器学习方法。它基于统计方法找出冗余或无关特征。一般来讲,筛选器的工作流所图:
通过使用相关性,很容易看到特征之间的线性关系。这种关系可以用一条直线来拟合。在下面这些图中,我们可以看到不同程度的相关性,以及一个用红色虚线描绘出的潜在线性依赖关系(一个拟合的一维多项式)。每幅图上方的相关系数Cor(X1,X2)是用皮尔逊相关系数计算出来的(皮尔逊r值),采用的是scipy.stat里的rearsonr()函数。
给定两个大小相等的数据序列,它会返回相关系数值和p值所组成的元组。p值是该序列产生于一个不相关系统的概率。换句话说,p值越高,我们越不能信任这个相关系数:
在第一种情况下,知道这两个序列是相关的。而在第二种情况下,我们仍然有一个非零的r值。
然而,p值基本上告诉这个系数是什么样的,不应对它过多关注。
在前三个具有高相关系数的情形中,我们可能要把X1或X2扔掉,因为它们似乎传递了相似的信息。
然而在最后一种情况中,我们应该所两个特征都保留。在应用中,这种决策当然是由p值驱动的。
尽管这种方法在前面这个例子中工作得不错,但在实际应用中却并不好。基于相关性的特征选择方法的一个最大缺点就是,它只能检测出线性关系(可以用一条直线拟合的关系)。如果在非线性数据中使用相关性,就有问题了。
除右下图以外的所有图中,尽管人的眼睛可以立即看到X1或X2之间的关系,却没法发现相关系数。很明显,相关性在检测线性关系中是很有用的,但对于其他关系就不行了。而对于非线性关系,可以用互信息。
以上是关于机器学习中如何用筛选器检测冗余?的主要内容,如果未能解决你的问题,请参考以下文章
Python机器学习及实践——进阶篇2(特征提升之特征筛选)
Python机器学习及实践——进阶篇2(特征提升之特征筛选)