:在一个机器学习项目中,你需要做哪些工作?

机器学习是通过对已有数据进行模型训练 , 再将训练好的模型应用于未知数据的过程 。从这句话中我们可以看到几个关键要素:数据 , 模型 , 训练 , 应用 。对于一个通常的机器学习项目 , 这些确实是其中最核心的环节 。那么 , 对于其中每一个项目 , 我们具体要做哪些工作?这些工作之间有什么联系?在这些核心工作之外 , 还有哪些我们可能忽略的项目 。本文我们来探讨这些问题 。内容主要参考了
《Hands-On Machine Learning with Scikit-Learn and TensorFlow》一书 。
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

总体框架
实际中 , 问题最初是从一个商业问题开始的 , 比如“如何预测某地区未来的房价是多少?”熟悉机器学习的同学可能会知道 , 这是一个典型的回归问题 。但此时我们更应该思考问题本身与现有业务的联系 , 比如该项目的如何影响上下游的业务 , 而不是项目本身的细节 。可以参考下面的框架:
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

将问题框架化并且关注重点
问题定义好了之后 , 就需要着手准备数据了 。这个过程也不是盲目进行的 , 也需要考虑与之相关的很多细节 。如数据源 , 存储空间 , 数据敏感性 , 获取成本等 。下面的框架可以给我们一些提示 。
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

获取数据
从获取数据开始 , 就进入我们上文提到的核心环节 。探究数据和可用性 , 分布 , 可视化等非常必要 , 也能帮助我们进一步思考数据与最终目标的联系 。这一环节通常被称为探索性分析 , 具体可以参考下面的步骤 。
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

探索数据
上一步骤中认识了数据 , 结合前面对于问题的定义 , 接下来就需要对数据进行预处理 。通常包含两部分工作:数据预处理和特征工程 。预处理的部分包括异常值 , 缺失值 , 重复值等;特征工程则包括特征提取 , 特征构建 , 特征缩放 , 特征融合等环节 。这一环节通常会特别耗时 , 甚至可能会占用绝大多数的时间 , 下面的步骤虽然不是面面俱到 , 但也能给我们一些参考 。
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

准备数据
处理完数据 , 我们来看模型 。机器学习有很多经典的模型 , 可以用于分类 , 回归 , 聚类 , 关联分析等方面 , 要根据我们的目标问题选择合适的模型 , 还要选择合理的评估指标对模型做合理的评价 。模型与上一步的特征紧密相关 。需要经过多次迭代之后才能找到更合适的模型 。这一环节的训练测试耗费的精力可能不亚于上一步骤的特征工程 。模型中超参数的选择可能有很多技巧 , 也是需要经验知识来支撑 , 并且可能会用到很多优化技巧 , 如贝叶斯优化方法 。
:在一个机器学习项目中,你需要做哪些工作?
文章图片

文章图片

:在一个机器学习项目中,你需要做哪些工作?


推荐阅读