一、前言
特征:数据中抽取出来的对结果预测有用的信息。
特征工程:特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。
意义:
- 更好的特征意味着更强的灵活度
- 更好的特征意味着更好的结果
- 更好的特征意味着只需用简单模型
二、数据与特征处理
数据采集:
哪些数据对最后的结果预测有帮助?
能否采集到数据?
线上实时计算的时候获取是否快捷?数据格式化
时间日期格式等数据清洗
去除脏数据数据采样
很多情况下,正负样本是不平衡的。例如,某些疾病的患者和正常人。
正负样本不平衡处理办法:- 正样本>>负样本,且量都挺大 => downsampling
- 正样本>>负样本,量不大 =>
1). 采集更多的数据
2). oversampling
3). loss function
特征处理之数值型
- 幅度调整/归一化
- 统计值max,min,mean,std
- 离散化
- hash分桶
- 每个类别下对应的变量统计值histogram(分布状况)
- 试试 数值型 => 类别型
特征处理之类别型
- one-hot编码
- 哑变量
- hash与聚类处理
- 小技巧:统计每个类别变量下各个target比例,转成数值型
特征处理之时间型
既可以做连续值,也可以做离散值特征处理之文本型
- 文本数据预处理后,去掉停用词,剩下的词组成的list,在词库中映射成 稀疏向量
- 考虑把词袋中的词扩充到n-gram
- 使用Tf-idf特征
- TF:Term Frequency
- IDF
特征处理之组合特征
- 简单组合特征:拼接型
- 模型特征组合
三、特征选择
1. 过滤型
- 评估单个特征和结果值之间的相关程度,排序留下top相关的特征部分
- Pearson相关系数,互信息,距离相关度
- 缺点:没有考虑到特征之间的关联作用,可能把有用的关联特征误踢掉
2. 包裹型
- 把特征选择看做一个特征子集搜索问题,筛选各种特征子集,用模型评估效果
- 典型的包裹型算法为‘递归特征删除算法’
3. 嵌入型
- 根据模型来分析特征的重要性(有别于上面的方式,是从生产的模型权重等)
- 最常见的方式为用正则化方式来做特征选择
-