VarianceThreshold
模型原型
class sklearn.feature_selection.VarianceThreshold(threshold=0.0)
参数
- threshold:指定预期变换后属性的取值范围,指定方差的阙值,低于此阙值将被剔除
属性
- variances_:一个数组,分别为各属性的方差
方法
- fit(X,[,y]):从样本数据中学习方差
- transform(X):执行属性标准化,执行特征选择(删除低于阙值的属性)
- fit_transform(X[,y])
- get_support([indices])
- True:返回被选出的特征的下标
- False:返回一个布尔值组成的数组,该数组指示哪些特征被选中
- inverse_transform(X):逆标准化,还原成原始数据
示例
from sklearn.feature_selection import VarianceThreshold
X=[
[100,1,2,3],
[100,4,5,6],
[100,7,8,9],
[101,11,12,13]
]
selector=VarianceThreshold(1)
selector.fit(X)
print('Variances is %s'%selector.variances_)
print('After transform is \n%s'%selector.transform(X))
print('The surport is %s'%selector.get_support(True))
print('After reverse transform is \n%s'%selector.inverse_transform(selector.transform(X)))
单变量特征提取
SelectKBest
模型原型
class sklearn.feature_selection.SelectKBest(score_func=,k=10)
参数
- score_func:给出统计指标
- sklearn.feature_selection.f_regression:基于线性回归分析来计算统计指标。适用于回归问题
- sklearn.feature_selection.chi2:计算卡方统计量,适用于分类问题
- sklearn.feature_selection.f_classif:根据方差分析(ANOVA)的原理,以F-分布为依据,利用平方和与自由度所计算的祖居与组内均方估计出F值,适用于分类问题
- k:指定要保留最佳的几个特征
属性
- scores_
- pvalues_:给出所有特征得分的p值
方法
- fit(X,[,y]):从样本数据中学习统计指标得分
- transform(X):执行特征选择
- fit_transform(X[,y])
- get_support([indices])
- True:返回被选出的特征的下标
- False:返回一个布尔值组成的数组,该数组指示哪些特征被选中
- inverse_transform(X):根据选出来的特征还原原始数据,但对于被删除的属性值全部用0代替
SelectPercentile
模型原型
class sklearn.feature_selection.SelectPercentile(score_func=,percentile=10)
参数
- score_func:给出统计指标
- sklearn.feature_selection.f_regression:基于线性回归分析来计算统计指标。适用于回归问题
- sklearn.feature_selection.chi2:计算卡方统计量,适用于分类问题
- sklearn.feature_selection.f_classif:根据方差分析(ANOVA)的原理,以F-分布为依据,利用平方和与自由度所计算的祖居与组内均方估计出F值,适用于分类问题
- percentile:指定要保留最佳的百分之几的特征
属性
- scores_
- pvalues_:给出所有特征得分的p值
方法
- fit(X,[,y]):从样本数据中学习统计指标得分
- transform(X):执行特征选择
- fit_transform(X[,y])
- get_support([indices])
- True:返回被选出的特征的下标
- False:返回一个布尔值组成的数组,该数组指示哪些特征被选中
- inverse_transform(X):根据选出来的特征还原原始数据,但对于被删除的属性值全部用0代替
示例
from sklearn.feature_selection import SelectKBest,f_classif
X=[
[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3],
[1,1,1,1,1]
]
y=[0,1,0,1]
print('before transform:\n',X)
selector=SelectKBest(score_func=f_classif,k=3)
selector.fit(X,y)
print('scores_:\n',selector.scores_)
print('pvalues_:',selector.pvalues_)
print('selected index:',selector.get_support(True))
print('after transform:\n',selector.transform(X))