标签:通过 method for 配置方法 随机 rate pac 需要 参数
在sklearn.feature_selection模块中,可以对样本集进行特征选择(feature selection)和降维(dimensionality reduction),这样会提高估计器的准确度或者增强在高维数据集上的性能。
VarianceThreshold是特征选择的一个基本方法,移除所有方差不满足阈值的特征。默认移除所有零方差特征,即在所有样本上取值不变的特征。
例如:假设有一个特征是布尔值的数据集,我们要移除那些在整个数据集中特征为0或者为1的比例超过80%的特征。布尔特征是伯努利随机变量,变量方差为 Var[X] = p(1-p),因此,我们用阈值“0.8*(1-0.8)”进行选择:
from sklearn.feature_selection import VarianceThreshold X = [[0,0,1], [0,1,0], [1,0,0], [0,1,1], [0,1,0], [0,1,1]] sel = VarianceThreshold(threshold=(.8*(1-.8))) print(sel.fit_transform(X))
[[0 1]
[1 0]
[0 0]
[1 1]
[1 0]
[1 1]]
VarianceThreshold移除了第一列,它的值为0的概率为 p=5/6>0.8
单变量的特征选择是通过基于单变量的统计测试来选择最好的特征。它可以当做评估期的预处理步骤。
Scikit-learn将特征选择的内容作为实现transform方法的对象:
例如下面的实例,我们可以使用 检验样本集来选择最好的两个特征:
>>> from sklearn.datasets import load_iris >>> from sklearn.feature_selection import SelectKBest >>> from sklearn.feature_selection import chi2 >>> iris = load_iris() >>> X, y = iris.data, iris.target >>> X.shape (150, 4) >>> X_new = SelectKBest(chi2, k=2).fit_transform(X, y) >>> X_new.shape (150, 2)
这些对象将得分函数作为输入,返回单变量的得分和 p 值 (或者仅仅是 SelectKBest 和 SelectPercentile 的分数):
对于回归:f_regression,mutual_info_regression
对于分类:chi2,f_classif,mutual_info_classif
这些基于 F-test 的方法计算两个随机变量之间的线性相关程度。另一方面,mutual information methods(互信息)能够计算任何种类的统计相关性,但是作为非参数的方法,互信息需要更多的样本来进行准确的估计。
来自:sklearn官方文档
标签:通过 method for 配置方法 随机 rate pac 需要 参数
原文地址:https://www.cnblogs.com/keye/p/13361633.html