机器学习项目的关键内容

机器学习项目和一般的研发项目其实并没有本质的区别,最主要的区别在于机器学习项目要使用机器学习的相关知识和技术。(好像是废话)

简单来说机器学习项目的目标就是利用历史数据,训练出一个模型,再利用这个模型预测结果。所以机器学习一般包含3大任务:

  1. 获得历史数据
  2. 获得模型
  3. 使用模型

1. 获取历史数据
你需要的历史数据可能分布在一个数据库的一个或多个表里,有时甚至是多个数据库或多个系统里,你要做的第一件事情是要定义哪些数据是相关的,是能用来预测结果的,然后把你需要的数据抓取出来并转化成有若干列的矢量集合的特征数据,就像下面这样:

出门时间 天气 路线 到达公司时间
7:10 156->3号线 8:25
7:20 享骑->3好像 8:26
7:05 156->3号线 8:10

为了达到更好的效果,通常还需要对这些数据进行预处理,比如空值、非数值的处理,数据的标准化等等。

2. 获得模型
有了处理好的历史数据后,就需要选择合适的算法进行模型训练,一个好的模型不是一次就能训练出来的,这是一个持续评估和调整的过程,为了评估模型的好坏,我们一般把历史数据分为测试集和训练集,比如我们可以把历史数据的90%用于训练,10%用于测试。

模型在训练数据上的表现一定好于在测试数据上的表现,这是因为模型从训练数据中“学到”的知识不一定在测试数据中完全重现,或者用黑话来说,模型在训练过程中“拟合”了训练数据的特征。

把历史数据分成训练集和测试集以后,可以预期,模型在训练集上的表现会优于在测试集上的表现,这两个表现通常都会低于项目期望值。我们把模型在训练集上的表现期望值之间的差距”叫做Bias,把模型在训练集上的表现模型在测试集上的表现之间的差距”叫做Variance。

机器学习项目的关键内容_第1张图片
来源于熊节

如果模型在训练集和测试集上表现都好,就可以投入实用,否则就需要持续优化。

3. 使用模型
模型训练好之后就是利用模型进行预测了,可以通过UI或者API把预测服务开放给用户使用。

总结一下,机器学习的过程可以由下图表示:


机器学习项目的关键内容_第2张图片
来源于熊节

我们把生产数据转化成机器学习能识别的训练数据,通过持续的训练和优化得到一个靠谱的模型,最后再把获得的模型部署到生产环境用于预测。

你可能感兴趣的:(机器学习项目的关键内容)