推荐算法的第二节课特征工程是有广告组的同学讲,还是比较基础并且浅显易懂(可能我之前有学过统计学的缘故吧)。我会总结一下特征工程的知识点。
这张图很好总结了如何从0开始构建机器学习模型的过程。做一个机器学习项目,可能要花大量的时间在理解问题,把问题转化为现有的AI问题,然后通过特征工程技术选择好的特征进行学习。学过深度学习的同学可能觉得深度学习可以解决特征工程,但深度学习的黑箱原理无法解释模型。
特征工程
特征设计(是否可能得到有用并且部署在线上的特征)
- 头脑风暴
- 询问有项目经验的专家
特征转化
1.离散特征(男女)(one-hot编码,multi-hot编码)
2.数值特征(年龄)(使用归一化或者标准化,让模型更好收敛并且把所有特征转成同一量纲)
3.时间特征(早上,下午)
4.文字特征(NLP)
- 统计类特征(方差)
特征选择(选择和最后结果最相关的特征)
1.过滤(通过皮尔逊系数,开森检验,找到相关性最强的N个特征)
2.包装法(通过AIC,BIC删除一些不重要的特征)
3.向量化(增加正则化L1等)
注意:如果发现特征太强的话,可能会发生信息泄露,那同样不是一个好的特征。信息泄露包含特征泄露和数据泄露两种。数据泄露指训练集可能包含未来做预测的数据。解决数据泄露的手段是尝试不同的数据划分。
通过树模型做特征选择
Facebook 提出了GBDT加LR的算法,GBDT做特征工程,让LR训练。
为什么特征工程还是很重要
1.模型的准确性(模型的交叉可能会导致噪音)
2.模型的高效性(简单模型可能高效地服务化)
3.模型的可解释性(深度学习模型提取的特征太过抽象,可解释性不强)