特征工程与scikit-learn

欢迎关注我的公众号:AI_Engine。知乎,简书同名呦~今日头条搜索:极意就是在下啦!欢迎转发,评论噢!

Filter过滤法

过滤法通常在预处理阶段使用,特征选择完全独立于任何算法之外。

  • 方差过滤
    **本质:** 使用特征本身的方差来消除方差小于阈值的特征。
    **API:** VarianceThreshold
    **实例:**
import pandas as pd
data = pd.read_csv(r'../Data/digit recognizor.csv')
x = data.iloc[:,1:]
y = data.iloc[:,0]
x.shape

(42000, 784)
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold() # 实例化,默认方差为0
x_var = selector.fit_transform(x) # 获取删除不合格特征之后的新特征矩阵
x_var.shape

(42000, 708)
import numpy as np
median = np.median(x.var().values)
median

1352.286703180131
x_fc_var = VarianceThreshold(threshold=median).fit_transform(x)
x_fc_var.shape

(42000, 392)
%%timeit # 魔法命令,计算运行时间
# 当特征是二分类是,特征的取值就是伯努利随机变量,这些变量的方差可以计算为var[x] = p(1-p),其中x是特征矩阵,p是二分类特征中的一类在这个特征中所占的概率
# 若特征是伯努利随机变量,p=0.8,即二分类特征中某种分类占到80%以上的时候删除特征
x_bvar = VarianceThreshold(threshold=0.8 * (1-0.8)).fit_transform(x)
x_bvar.shape

(42000, 685)
  • 卡方过滤
    **本质:** 计算特征与标签的相关性,相关性可以根据卡方值和p值进行判定。一般情况下,p值<0.05或=0.01时,特征与标签即为相关,该特征可以保留。
    API:chi2,SelectKBest
    **实例:**
from sklearn.feature_selection import chi2
from sklearn.feature_selection import SelectKBest
from s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值