Filter过滤法
特征选择完全独立于机器学习算法,根据各种统计检验中的分数以及相关性的各项指标来选择特征。
方差过滤VarianceThreshold:
根据特征本身的方差来筛选特征。过滤特征本身的方差很小的特征,所以无论特征工程要做什么,应优先考虑消除方差为0的特征。
# 重要参数threshold表示方差的阈值,方差舍弃小于threshold的特征,默认为0
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold() # 实例化,不填参数默认方差为0
x_var0 = selector.fit_transform(x) # 获取删除不合格特征之后的新特征矩阵
x_var0.shape # 过滤后方差的shape
可以进一步按照设置阈值进行筛选:
import numpy as np
x_fsvar = VarianceThreshold(np.median(x.var().values)).fit_transform(x) # 此处为中位数
x_fsvar.shape # 再次过滤后的方差的shape
当特征是二分类时,方差计算公式:
#假设p=0.8即二分类占到80%以上的时候删除特征
x_bar = VarianceThreshold(0.8*(1-0.8)).fit_transform(x)
方差过滤后对模型的影响:
在维持算法表现的前提,帮助算法降低计算成本
小白,望大佬指点