我观察到静态和机器学习科学家在使用Python(或其他语言)时通常不会遵循ML /数据科学项目的OOPS .

主要是因为在开发用于 生产环境 的ML代码时,缺乏对oops中最佳软件工程实践的理解 . 因为他们大多来自数学和统计学教育背景而不是计算机科学 .

ML科学家开发临时原型代码和另一个软件团队使其 生产环境 就绪的日子在业界已经结束 .

enter image description here

Questions

  • 我们如何使用OOPS为ML项目构建代码?

  • 每个主要任务(如上图所示),如数据清理,特征转换,网格搜索,模型验证等都应该是一个单独的类吗? ML推荐的代码设计实践有哪些?

  • 任何好的github链接都有很好的代码供参考(可能是一个写得很好的kaggle解决方案)

  • 每个像数据清理这样的类都应该为每个进程设置fit(),transform(),fit_transform()函数,比如remove_missing(),outlier_removal()?当这样做时,为什么scikit-learn BaseEstimator通常会被继承?

  • 生产环境 中ML项目的典型配置文件结构应该是什么?

谢谢