Python数据分析:特征选择-SelectKBest

一、参数: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
  • 10
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用sklearn.feature_selection模块中的SelectKBest方法进行相关性分析特征选择。这个方法主要是根据互信息法来选择最佳特征。使用SelectKBest方法需要注意以下两点: 1. 区分离散数据和连续数据:在进行特征选择时,需要考虑特征的类型,即特征是离散型数据还是连续型数据。 2. 输出索引或特征名:SelectKBest方法的输出一般为特征的索引,但如果只获得索引对于特征量大的数据集来说不够友好,需要想办法获得特征的名称。 下面是一个示例代码,展示了如何使用SelectKBest方法进行相关性分析特征选择: ``` from sklearn.feature_selection import SelectKBest, mutual_info_classif # 创建SelectKBest对象,指定使用互信息法进行特征选择 selector = SelectKBest(score_func=mutual_info_classif, k=12) # 使用fit方法进行特征选择,传入特征矩阵X和目标变量y selector.fit(X, y) # 通过get_support方法获取选择的特征的索引 selected_features_indices = selector.get_support(indices=True) # 根据索引从原始特征矩阵X中选择特征 selected_features = X[:, selected_features_indices] ``` 这段代码演示了在相关性分析特征选择中使用互信息法的方法。首先,创建了一个SelectKBest对象,并指定score_func参数为mutual_info_classif,k参数为希望选择的特征数量。然后,使用fit方法对特征矩阵X和目标变量y进行特征选择。最后,通过get_support方法获取选择的特征的索引,再根据索引从原始特征矩阵X中选择特征。 希望以上内容对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值