最近实习遇到了生产环境下,回归预测效果不好,转成分类效果也依然不是很好。这该如何改进提升呢?这里搜集几种方法,有效无效我先去试验一下。
0. 究极大杀器 - 数据
机器学习界最有名的一句话是,“数据决定效果的上限,模型只能接近这个上限”。那我是需要找新特征吗?还是需要对原有的特征进行分析呢?
数据的处理主要是两个方面,一个是筛掉表达能力差的数据,一个是提升数据的表达能力。筛选表达能力差的数据主要有几个角度:
- 数据的重复性(针对类别数据);
- 数据的缺失性;
- 数据的相关性;
- 以及数据在模型里的表达能力;
提升数据的表达能力的方式主要有:
- 数据升维:embedding 方法(如 DeepFM模型);
- 数据降维:主成分、TSNE降维方法;
- 数据处理:分布转换、异常值限制;
- 特征构建:增加特征;
1. 筛选特征
1.1 几重原则
- 90% 以上为某一个值的去掉
- 缺失值超过 50% 的不要
- 计算相关系数,相关性系数大于 70%,按照表型表现剔除重要性低的
- 业务上与目标不相关的不需要
1.2 计算
2. 提升表达能力
1.1 几种方法
- embedding 方法,包含正常的 word2vec,以及 transformer;
- 主成分分析降维,TSNE 降维;
- 查看分布,限定异常值;
- 增加特征,新特征提升效果显著;
1.2 计算
实践中发现,PCA降维在提前经历了上面的数据筛选之后,会丢失信息,推荐大家谨慎使用。