查看原文
其他

Machine Learning-模型结果的应用之道

阿Sam Python爱好者社区 2019-04-07

作者:阿Sam
个人公众号:SAMshare


前文传送门:

Machine Learning-算法汇总介绍

 Machine Learning-模型调优备忘录


当你有了一个相当不错的模型结果了,这个时间就需要上线应用了,但实际上这个过程也是需要注意很多东西的呢,比如汇报你的项目结果、上线计划沟通、上线后的监控等等,都是相当重要的,Brownlee教授有一篇概括地挺全的文章,我再加上自己的见解,完成了本文,下面我们就来看一下呗。


(本文大多数内容来自Jason Brownlee 的文章《How To Use Machine Learning Results》)


(图文无关,只为并茂)


永远要记得,建立模型只是为了解决业务问题,模型只是一个工具而已,所以,脱离具体业务场景的模型都是假的。所以,在一开始,就要对自己的目标进行明确,在做完了模型后再度审视自己目标,看下自己做出来的模型是否仍是解决这个目标。

根据你试图解决的问题类型,我们可以大致分为两种呈现方式:

  • 报告汇报式

  • 部署上线式

当然了,实际上更多的是两种方式的融合,即两个都需要做,那么下面我们就分别来说一下这两种方式在实际操作上都需要做些什么呗。


报告汇报式


一旦你发现了一个很不错的模型,并且训练的结果也很不错,你此时就需要总结这一切内容,并很好的展示给你的观众(可以是老板、客户或者是同事等),而此时如何完美地展示显得格外重要。

展示的最好方式我个人觉得是ppt,但有些地方更偏好于单页报告,不过也不影响,下面罗列的内容,都是可以在这两种方式内容上展示的,不管你现在做的模型是什么,比赛的、教程的,还是工作的,都可以试着去总结这些关键点,完成一次报告的撰写。

  • Context (Why): 定义问题存在的大背景,并且说明研究的动机或目的。

  • Problem (Question): 简单扼要地把问题描述一个具体需要解决的问题并回答它。

  • Solution (Answer): 简单扼要地描述关于上一个环节提出的问题的解决方案,而且要详细具体。

  • Findings: 罗列一下你在建模过程中发现的一些有价值的点,比如在数据上的发现,又或者是原先方式的缺点及现有方式的优点,也可以是模型在性能方面的优势等等。

  • Limitations: 考虑模型能力所不能覆盖的点,或者是方案不能解决的点。不要回避这些问题,你不说别人也会问,而且,只有你重新认识模型的短处,才能知道模型的优点。

  • Conclusions (Why+Question+Answer): 回顾目的、研究的问题及解决方案,并将它们尽可能压缩在几句话,让人能够记住。

如果是自己平时做练习的项目,我觉得可以多按照上面的点来描述自己的项目结果,并且将报告上传到社区网络,让更多的人来评价,你从中也可以得到更多的反馈,这对你下一次的报告有很大的帮助。

部署上线式

同样的,你有一个训练得很不错的模型,这时候需要将它部署到生产系统中,你需要确定很多东西,比如调用的环节、入参出参以及各种接口开发,下面有3个方面的内容需要在做这些事情之前进行考虑,分别是:算法实现、模型自动化测试、模型效果追踪

1)算法实现

其实python里有很多算法都是可以直接通过库来调用的,但这对于一般情况下是很好用的,但是如果涉及到要具体部署应用,这要考虑的东西就多了。

在你考虑部署一个新模型在现有的生产系统上,你需要非常仔细地研究这可能需要产生的依赖项和“技术负债”(这里可以理解为一些所需的技术,包括硬软件)。所以,在建模前,需要考虑去查找能匹配你的方法的公司生产级别的库,要不然,等到要上线的时候,你就需要重复模型调优的过程了哦。

2)模型自动化测试

编写自动化测试代码,对模型的应用进行验证,监控在实际的使用过程中,并且能够重复实现模型效果的最低水平,尽可能是可以对不同的数据都可以随机性地测试。

3)模型效果追踪

增添一些基础设施来监控模型的性能,并且可以在精度低于最低水平的时候发出警报,追踪模型实时或者离线的数据样本的效果,包括入参。当你发现不仅仅是模型效果发生了很大的变化,就连入参也有很大的变化,那这个时候就需要考虑模型的更新或者重构了。

当然,有一些模型是可以实现在线自我学习并且更新自己的,但并不是所有的生产系统可以支持这种操作,毕竟这种还只是一个比较先进的办法,仍存在很多不太完善的地方。比较传统的方式还是对现有的模型进行人工管理,人工更新与切换,这样子显得更加明智而且稳健。

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的Python入门视频课程!!!

崔老师爬虫实战案例免费学习视频。

丘老师数据科学入门指导免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

丘老师Python网络爬虫实战免费学习视频。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存