一、参数:SelectKBest(score_func= f_classif, k=10)
score_func:特征选择要使用的方法,默认适合分类问题的F检验分类:f_classif。
k :取得分最高的前k个特征,默认10个。
二、属性:fit(x,y)方法后才能调用
scores_ :返回每个特征的得分
pvalues_ : 返回每个特征得分对应的p_value值。如果score_func只返回分数,则pvalues_返回空。
三、常用方法
fit(x,y):传入特征集x和标签y 拟合数据。
transform(x):fit(x,y)后使用,转换数据,返回特征过滤后保留下的特征数据集。
get_support(indices=True):fit(x,y)后使用,返回特征过滤后保留下的特征列索引。
fit_transform(x,y):拟合数据+转化数据,返回特征过滤后保留下的特征数据集。
#鸢尾花数据集
from sklearn.datasets import load_iris
iris = load_iris()
x, y = iris.data, iris.target
# 导入 SelectKBest,和要使用的卡方过滤法chi2类
from sklearn.feature_selection import SelectKBest,chi2
# 实例化selectKBest对象
skb=SelectKBest(chi2,k=2)
# 调用fit方法
skb=skb.fit(x,y)
#调用属性scores_,获得chi2返回的得分
skb.scores_
# 调用属性pvalues_ ,获得chi2返回的P值
skb.pvalues_
#返回特征过滤后保留下的特征列索引
skb.get_support(indices=True)
# 转换数据,得到特征过滤后保留下的特征数据集
x_new=skb.transform(x)
x_new
拟合数据加转化数据一步到位:
x_new=skb.fit_transform(x,y)
x_new