目录
特征选择
数据预处理完成后,就进入特征工程
特征工程包括特征提取、特征创造、特征选择
特征提取(feature extraction)
从文字,图像,声音等其他非结构化数据中提取新信息作为特征。比如说,从淘宝宝贝的名称中提取出产品类别,产品颜色,是否是网红产品等等。
特征创造(feature creation)
把现有特征进行组合,或互相计算,得到新的特征。比如说,我们有一列特征是速度,一列特征是距离,我们就可以通过让两列相处,创造新的特征:通过距离所花的时间。
特征选择(feature selection)
从所有的特征中,选择出有意义,对模型有帮助的特征,以避免必须将所有特征都导入模型去训练的情况
特征工程的第一步是:理解业务
导入数据
import pandas as pd
data = pd.read_csv(r"D:\digit recognizor.csv")
x = data.iloc[:,1:]
y = data.iloc[:,0]
x.shape #(42000,784) 7百多列
这个数据集维度大,如果使用支持向量机和神经网络,会直接跑不出来,使用knn跑大概需要半小时,用这个数据可以证明特征工程的重要性
1、Filter过滤法
方差过滤
这是通过特征本身的方差来筛选特征的类。比如一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,可能特征中的大多数值都一样,甚至整个特征的取值都相同,那这个特征对于样本区分没有什么作用。所以无论接下来的特征工程要做什么,都要优先消除方差为0的特征。
1,消除方差为0的特征
VarianceThreshold有重要参数threshold,表示方差的阈值,表示舍弃所有方差小threshold的特征,不填默认为0,即删除所有的记录都相同的特征。
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold() #实例化,不填参数默认方差为0,即删除值都是一样的特征
X_var0