美团机器学习实践
特征工程
EDA(探索性数据分析)
采用各种技术(大部分为可视化技术)在尽量少的先验假设条件下,探索数据内部结构和规律的一种数据分析方法或理念 。
- 主要技术:
- 可视化技术:箱形图 、 直方图、多变量图 、 链图 、 |怕累托图 、 散点图、茎叶图、平行坐标、让步比 、 多维尺度分析、目标投影追踪、主成分分析 、 多线性主成分分析、降维 、 非线性降维等
- 定量技术:样本均值、方差、 分位数 、 峰度 、 偏度等
数值特征
数据应满足模型的一些隐式或者显示的假设,例如:线性回归训练使用平方损失函数等价于假设预测误差服从高斯分布。
- 常见处理方法
- 截断
- 二值化
- 分桶
- 缩放
- 缺失值处理
- 特征交叉
- 非线性编码
- 行统计量
类别特征
- 常见处理方法
- 自然数编码
- 独热编码
- 分层编码
- 散列编码
- 计数编码:对异常值敏感,特征取值可能冲突
- 计数排名编码:对异常值不敏感,特征取值不冲突
- 目标编码
时间特征
空间特征
文本特征
- 语料构建
- 文本清洗
- 分词
- 词性标注
- 词形还原和词干提取
- 文本统计特征
- N-Gram模型
- Skip-Gram模型
- 词集模型
- 词袋模型
- TF-IDF(词频-逆文档频率)
- 余弦相似度
- Jaccard相似度
- Levenshtein(编辑距离)
- 隐性语义分析:奇异值分解(SVD)
- Word2Vec
特征选择
- 前提:训练数据中包含许多冗余或无关特征
- 应用情景:特征多样本少
- 关键部分:产生过程、评价函数、停止准则、验证过程
过滤方法
- 单变量:不考虑特征间的相互关系
- 多变量:考虑特征间的相互关系
- 常用过滤方法:基于特征变量和目标变量之间的相关性或互信息
- 覆盖率
- 皮尔森相关系数:衡量两个变量之间的线性相关性
- Fisher得分
- 假设检验
- 互信息
- 最小冗余最大相关性
- 相关特征选择
封装方法
封装方法直接使用机器学习算法评估特征子集的效果 ,它可以检测出两个或者多个特征之间的交互关系 ,而且选择的特征子集让模型的效果达到最优。
- 常用的特征子集搜索算法
- 完全搜索
- 启发式搜索
- 随机搜索
嵌入方法
嵌入方法则将特征选择嵌入到模型的构建过程中,具有封装方法与机器学习算法相结合的优点,而且具有过滤方法计算效率高的优点。
工具
- 过滤方法:
- 数据量较小:Sklearn中的feature_selection模块
- 数据量较大:Spark MLlib
- 嵌入方法
一般机器学习包的线性模型都支持 L 1 L_1 L1正则,如 SparkMLlib和 Skleam等。
参考文献
《美团机器学习实践》