特征工程基本流程
过程包含了特征提取、特征构建、特征选择。特征工程的目的是筛选出更好的特征,获取更好的训练数据,大多数工程师们做的事情基本是在数据仓库里搬砖,不断地数据清洗,再一个是分析业务不断地找特征。
1. 数据采集 / 清洗 / 采样
数据采集前需要明确采集哪些数据,一般的思路为:哪些数据对最后的结果预测有帮助?数据我们能够采集到吗?
数据清洗:包括缺失值处理,补齐可对应的缺省值。异常值检测与处理。异常值检测与处理就是要去除脏数据。不可信的样本丢掉,缺省值极多的字段考虑不用。
数据采样的方法有随机采样和分层抽样。但是随机采样会有隐患,因为可能某次随机采样得到的数据很不均匀,更多的是根据特征采用分层抽样。分层抽样是要先把所有元素按某种特征或标志(比如年龄、性别、职业或地域等)划分成几个类型或层次,再在其中采用前两种方法抽取一个子样本,所有子样本构成了总的样本。
2. 特征处理
2.1 数值型
1. 幅度调整/归一化:python中会有一些函数比如preprocessing.MinMaxScaler()将幅度调整到 [0,1] 区间。
2.统计值:包括max, min, mean, std等。python中用pandas库序列化数据后,可以得到数据的统计值。
3.离散化:把连续值转成非线性数据。pandas.cut() 可以直接把数据分成若干段。