及时行乐|算法工程师福利:超实用技术路线图( 五 )


  • 自我考核:对内沟通方面 , 能使用可视化技术 , 分析模型的 bad case 情况 , 并确定优化改进方向 。 对外沟通方面 , 能独立完成项目的数据分析沟通报告 。
误差分析与调优
在做算法模型调优改进中 , 需要从数据分析的基础上出发来决定实验方向 , 这么做有几个好处:
  • 从分析出发指导调优更有方向性 , 而不是凭经验加个特征 , 改个参数碰运气 。 哪怕是业务方提供的信息 , 也最好是有数据分析为前提再做尝试 , 而不是当成一个既定事实 。
  • 由分析发现的根源问题 , 对于结果验证也更有帮助 。 尤其在预测的数据量极大情况下 , 加一个单一特征很可能总体只有千分位准确率的提升 , 无法确定是天然波动还是真实的提升 。 但如果有分析的前提 , 那么我们可以有针对性的看对于这个已知问题 , 我们的调优策略是否生效 , 而不是只看一个总体准确率 。
  • 对于问题的彻底排查解决也更有帮助 , 有时候结果没有提升 , 不一定是特征没用 , 也可能是特征代码有 bug 之类的问题 。 带着数据分析的目标去看为什么这个特征没有效果 , 是模型没学到还是特征没有区分度等 , 有没有改进方案 , 对于我们评判调优尝试是否成功的原因也更能彻查到底 。
  • 数据分析会帮助我们发现一些额外的问题点 , 比如销量数据清洗处理是不是有问题 , 是不是业务本身有异常 , 需要剔除数据等 。
这方面在业界有一些关于误差分析的探索研究 , 不过大多数都是基于分类问题的 , 例如《Identifying Unknown Unknowns in the Open World》 , 《A Characterization of Prediction Errors》等 。 可以在了解这些研究的基础上 , 结合具体的业务情况 , 深入思考总结误差分析的思路与方法论 。
  • 自我考核:在项目中形成一套可以重复使用的误差分析方案 , 能够快速从预测输出中定位到目前模型最重要的误差类别 , 并一定程度上寻找到根本原因 。
机器学习基础
传统机器学习
这块大家应该都非常熟悉了 , 初阶的学习路线可以参考周志华老师的《机器学习》 , 涵盖了机器学习基础 , 常用机器学习方法 , 和一些进阶话题如学习理论 , 强化学习等 。 如果希望深化理论基础 , 可以参考经典的《PRML》 , 《ESL》和《统计学习方法》 。 在实战中 , 需要综合业务知识 , 算法原理 , 及数据分析等手段 , 逐渐积累形成建模调优的方法论 , 提高整体实验迭代的效率和成功率 。
  • 自我考核:结合实际业务和机器学习理论知识 , 挖掘项目中算法表现不够好的问题 , 并通过算法改造进行提升或解决 。
深度学习
近些年兴起的深度学习 , 已经成为机器学习领域一个非常重要的分支 , 在各个应用方向发挥了很大的作用 。 相对于传统机器学习 , 对于特征工程要求的降低成了其核心优势 。 另一方面 , 深度学习对于大数据量 , 大规模算力的应用能力很强 , 也一定程度上提升了整体的产出效果 。 由于理论方面的研究稍显落后 , 深度学习在实际应用中对于使用者的经验技能要求相对比较高 , 需要有大量的实战经验才能达到比较理想的效果 。 这方面的学习资料推荐 Keras 作者的《Deep Learning with Python》 , 以及《Hands-on Machine Learning with Scikit-Learn and TensorFlow》 , 而在理论方面推荐著名的“花书”《Deep Learning》 。 在学习理论原理的基础上 , 尤其要注意在实际算法应用中 , 能够通过观察各种指标与数据分析 , 找到提升模型的操作改进方向 。
  • 自我考核:能够在实际项目中 , 使用深度学习模型 , 达到接近甚至超过传统 GBDT 模型的精确度效果 , 或者通过 ensemble , embedding 特征方式 , 提升已有模型的精度 。
领域建模
目前我们的业务领域在时间序列预测 , 自然语言处理 , 推荐等方面 , 其它类似图像 , 搜索 , 广告等领域也都有各自的一些领域建模方法 。 在时间序列领域 , 包括了传统时序模型 , 如 ARIMA, Prophet , 机器学习模型 , 如划动窗口特征构建方法结合 LightGBM , 及深度学习模型 , 例如 LSTM , seq2seq , transformer 等 。 这方面可以参考 Kaggle 上相关比赛的方案分享 , 以及 Amazon , Uber , 天猫等有类似业务场景公司的分享资料 。 其它领域也是类似 , 通过了解历史技术演进 , 相关比赛 , 业界的方案分享与开源项目 , 会议论文来逐渐掌握学习建模方法 , 结合实际业务进行实践尝试 , 积累起更加体系性的个人知识技能 。


推荐阅读