刚看《机器学习系统设计》,边看边理解形成了以下心得。
机器学习其实不是新的技术,前两年它的名字叫数据挖掘或预测分析。和统计学的关联非常大,统计学是研究现有的大量数据,来帮助人更好的理解数据。机器学习其实也是类似的过程。机器根据现有的大量训练数据,计算出指定特征的最优参数,得到模型,然后用测试数据对模型进行验证,验证符合一定的准确率条件就得到一个可以用于生产的模型。
概览
机器学习的处理对象是数据,这些数据一般从应用采集而来,采集的过程,机器学习是不关注的。机器学习的入口是就是采集到的一堆数据,一般还有对元数据的介绍和相关的背景知识。
前面说的比较抽象,这节用一张图来描述机器学习的主要工作流程。
理解数据
有了元数据,只知道这些数据column的领域,但对数据的特点并不了解,所以第一步就是读取数据,让数据到程序的数据结构中来,通过工具我们可以把玩数据,进而使用工具去分析数据的分布,掌握数据的特点,另外采集的数据中有些异常这也是非常正常的,清洗工作不可避免。
这个过程是一个反复的过程,需要通过多次探索,才能对数据有一定深度的理解。
机器学习
机器学习部分并不是完全的机器去学,数据特征的识别、模型的确定、算法的选择都是数据科学家要干的事情。选定算法后,我们可能发现,初始的数据不能满足算法处理的需要。所以为适配算法可能还需要对数据进行提炼。
数据提炼的过程是体现数据科学家价值的美好时刻,一个简单算法在提炼后数据上的表现,能够超过一个复杂算法在原始数据上的效果。
而机器学习的机器部分,就是让机器根据数据科学家设定的路径进行处理,然后得到模型。这部分工作是比较适合机器去做的。
评估
一个模型好不好,评估条件很重要。评估往往和具体的场景有关,有时我们比较关注处理效率,有时我们更关注准确率,有时错误的判断对目标影响很大。比如垃圾邮件识别的场景,把一个正确邮件删除的影响要大于把错误的放过一个垃圾邮件的影响。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。