机器学习实战 第一版

  • 第一部分 机器学习基础

1. 机器学习概览

什么是机器学习

机器学习是一门能够让编程计算机从数据中学习的计算机科学(和艺术)

  • 笼统定义:
    机器学习研究如何让计算机不需要明确的程序也能具备学习能力。 ———— Arthur Samuel, 1959
  • 偏工程化的定义:
    一个计算机程序在完成任务 T 之后,获得经验 E,其表现效果为 P,如果任务 T 的性能表现,也就是用以衡量的 P,随着 E 的增加而增加,可以称其为学习 ———— Tom Mitchell, 1997

比如垃圾过滤器就是一个机器学习程序,它通过垃圾邮件(比如用户手动标记的垃圾邮件)以及常规邮件的示例,来学习标记垃圾邮件。系统用来学习的这些示例,我们称之为训练集,每一个训练示例称为训练实例训练样本吗,本例中,任务 T 就是给新邮件标记垃圾邮件,经验 E 则是训练数据,衡量性能表现的指标 P 则需要我们定义,例如,我们可以使用被正确分类的邮件的比率来衡量。这个特殊的性能衡量标准称为精度,经常用于衡量分类任务。

为什么要使用机器学习

如果用传统编程技术实现垃圾邮件过滤器,怎么做?

  • 看看垃圾邮件通常长什么样。可能会注意到某些经常出现的单词或用语、发件人名称、邮件正文等信息……
  • 为你发现的每个模式编写检测算法。如果检测到一定数量的这类模式,你的程序会将其标记为垃圾邮件
  • 测试这个程序,不断重复前两步,直到它足够好

这并不简单,你的程序很可能编程一长串的复杂规则,很难维护

而基于机器学习技术的垃圾邮件过滤器通过示例学习,自动检测异常模式,自动学习可用于预测的因素,易于维护,还可能更准确


机器学习的另一个闪光点,是针对那些使用传统方法太过复杂————甚至根本不存在已知算法的问题。比如语音识别。最好的方法是写一个能够自己学习的算法,然后针对每个字给他提供许多录音示例

最后,机器学习还可以帮助人类学习。有时候可能会揭示出人类未曾意识到的关联性或是新趋势,从而帮助我们更好地理解问题

应用机器学习技术来挖掘海量数据,可以帮助我们发现那些此前并非立见端倪的模式。这个过程称为数据挖掘

  • 对于那些现有解决方案需要大量手动调整或者是规则列表超长的问题:通过一个机器学习的算法就可以简化代码,并且提升执行表现。
  • 对于那些传统技术手段根本无法解决的复杂问题:通过最好的机器学习技术可以找到一个解决方案。
  • 对于环境波动:机器学习系统可以适应新的数据
  • 从复杂问题和海量数据中获得洞见。

机器学习系统的种类


  目录