以“点一份披萨外卖”为例:了解机器学习工作流程
我们有没有想过在点一份外卖的背后,有哪些工作流程呢?
想象一下你点了一份披萨外卖,过了一会儿美味热腾腾的披萨就送到家门口了。
你有没有想过从下单点外卖到披萨送过来当中的工作流程呢?我指的是完成的工作流程,包括从种下披萨上的西红柿到外卖骑手送单到你的楼下。其实这一系列过程与与机器学习工作流程并没有什么不同,不妨让我们来看看。
1. 播种
农民播种的种子之后会长为披萨的配料,比如:西红柿等。
这相当于数据生成过程,例如:用户操作、移动、触发传感器等。
2. 收获
接着到了收获的时节,也就是蔬菜或水果成熟的时候。
这相当于数据收集,也就是浏览器或传感器将用户操作或触发传感器的事件转换为实际数据。
3. 运输
收获后,产品会被运到目的地,作为披萨中的原料。
这相当于将数据提取到存储库中,以便之后从中获取数据库,如数据库或数据湖。
4. 选择厨具和设备
每种原料都需要适合的用具来处理。如果要切片,就用刀;如果要搅拌,就用勺子。设备方面也是如此,如果要烤,就用烤箱;如果要炒,就用炉子,你还可以使微波炉等更复杂的设备。
在机器学习中,厨具是用于预处理数据的技术,而设备就相当于线性回归、随机森林等算法。你也可以使用微波炉等复杂的设备,这也就相当于深度学习。当中不同的就是超参数,在简单的设备(算法)中只有少数参数。而复杂设备(算法)中,涉及到的参数更多,但这并不意味着复杂的算法就能提供更好的性能。因此,你需要明智地选择算法。
5. 选择菜谱
仅有原料和用具是不够的。你还需要菜谱,当中包括你准备这道菜的所有步骤。
这就是模型,记住模型与算法不同,模型包括所有算法需要的预处理和之后的处理过程。
6. 准备配料
我敢打赌,大多数菜谱的第一条指令都是:“切片”,削皮等等。而不是洗蔬菜等,因为这是理所当然的,没人想吃没洗的蔬菜。
同样,数据也是如此,没有人想要脏数据。你必须清理数据,即处理缺失值和异常值。然后需要进行削皮和切片,也就是进行预处理,对变量进行分类(例如:男性或女性)编码为数字变量(0或1)。
没有人喜欢清洗这个部分,无论是数据科学家还是厨师。
7. 特别准备
有时你可以用原料来创新,以达到更好的品味或更复杂的表现。你可以将牛排风干获得不同的风味,或者将胡萝卜削成玫瑰的形状作为装饰。
这就是特征工程。这是一个重要的步骤,如果完成得好能够显着提高模型的性能。
几乎每个数据科学家都喜欢这个环节,我猜厨师们也是如此。
8. 烹饪
这是最重要的步骤,如果不开火炒菜一切都是徒劳。你将准备好的配料放入炊具中,调节油温等等。
这就模型训练的环节。你将数据提供给算法,调整其超参数并等待一段时间再重新检查。
9. 尝一尝
即使你严格按照菜谱来做菜,你也不能保证一切都是完全正确的。那么,怎么知道你是否做对了?品尝它!如果不好你可以添加更多盐来调味。或者调解下火力,继续烹饪。
但有时披萨会烧糊,或者味道糟糕到难以挽救。那么只能扔进垃圾箱,吸取教训并重新开始。坚持不懈加上一点点运气就能做出美味的披萨。
品尝就是评估过程。你需要评估模型,检查它是否运行正常。如果没有,你需要添加更多特征,还可以更改超参数,但你继续训练!
不幸的是,有时你的模型不会得出合适的解决方案,或者做出错误的预测,没有任何办法修改和挽救。那么这时你只能放弃这个模型,从中吸取教训然后重新开始。
坚持不懈和一点点运气将会产生一个高性能的模型。
10. 送餐
在厨师看来,他的工作已经完成了,做好了一道美味的披萨。但是,如果披萨没有及时送到顾客的手中也是不成功的。
披萨做好后必须立即包装,保持温度,及时送给顾客。如果外卖骑手没有到达目的地,或在途中丢失了披萨,或者把披萨颠簸得面目全非,之前所有的功夫都将是徒劳的。
送餐就相当于部署。不是部署披萨,而是预测。预测必须好好包装,不是用餐盒,而是包装成数据产品,因此才能送到用户手里。如果这个流程出了问题,中间崩溃了或者预测发生了变动,那么前面花费力气所做的模型训练和验证工作也就没有价值了。
结语
就是这样,机器学习就像点外卖一样,当中需要许多人参与,合作付出努力,但最终结果都很美味!
总结几个要点:
- 如果原料有问题,菜品也会有问题。没有任何菜谱或炊具能解决这个问题。
- 如果你是厨师,那不要忘了,如果没有送餐这一步,烹饪就没有意义,因为没有人会品尝到美味的食物 ;
- 如果你是餐馆老板,不要强迫你的厨师使用某种炊具或设备,有时微波炉并不是最好的选择。如果让厨师花大量的时间在清洗和切食材上,这也会让厨师很不开心。
好了不说了,去点披萨吃了。
作者:Daniel Godoy
翻译:Mika
本文由 @Mika 翻译发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
来来来