1.8 实时机器学习模型的生存期
进行实时机器学习开发必须考虑生存期。生存期是指一个系统从提出、设计、开发、 测试到部署运用、维护、更新升级或退役的整个过程。若在生存期设计上出现了数据,那么在后面的使用中就会出现各种各样的瓶颈阻碍应用产生价值。
从软件工程的角度上讲,开发实时机器学习也遵从构思、分析、设计、实现和维护五个步骤,这五个步骤可能会循环往复,随着业务的发展进行多次迭代。实时机器学习模型的应用由于其技术的特殊性,也具有自己的小型生存期,其中包括数据收集、数据分析、离线手工建模评测、上线自动化建模评测这四个方面。如图1-1所示,离线手工建模评测、上线自动化建模评测这两个部分主要是靠监督式机器学习。而数据分析主要是依靠非监督式机器学习和统计数据分析。
值得一提的是,进行上面这四个步骤的前提是机器学习模型能够给组织和用户带来价值。但是,众多开发人员甚至是领导层都不愿意面对的一个问题是:我的模型真的有用吗?
对于一些非机器学习大数据类的初创公司来说,在用户数量并不太多的情况下,用非监督式机器学习进行少量数据分析,然后用人力进行反馈,反而有可能会取得更优良的投资回报率。笔者道听途说得知国内一些门户视频网站,就算在公司都已经上市之后,仍然还在使用人工选择的方式进行视频推介,甚至还取得了尚可的效果。
如果机器学习不能给组织带来直接效果,就算有高层支持,对于机器学习从业人员来说也不是很好的职业选择。在机器学习能为组织带来效益的情况下,让数据说话,从业人员才能够不断进行深挖,并得到更多的锻炼和领域洞见;与此相反,如果所建立的系统听起来很好,但是却没能带来相对应的效益,那么这样岗位上从业人员的工作重心就会像浮萍一样随波逐流,被公司政治利益驱动,长期来说这样很不利于从业人员的个人发展。
机器学习实战的最高境界,就是知行合一,在创造科技前沿作品的同时,能够为个人、组织和社会带来效益,这也是本书写作的指导思想。
在下面的章节里,我们将会从更实际的角度出发来探索实时机器学习的应用。其中,第2章到第4章,我们将会介绍监督式机器学习模型,并且学习建模的工具Pandas和Scikit-learn;第6章到第9章,我们将会介绍实时机器学习的架构,并且学习使用Docker、 RabbitMQ、Elasticsearch及数据库等重要组成部分。