机器学习实战
上QQ阅读APP看书,第一时间看更新

1.1 何谓机器学习

除却一些无关紧要的情况,人们很难直接从原始数据本身获得所需信息。例如,对于垃圾邮件的检测,侦测一个单词是否存在并没有太大的作用,然而当某几个特定单词同时出现时,再辅以考察邮件长度及其他因素,人们就可以更准确地判定该邮件是否为垃圾邮件。简单地说,机器学习就是把无序的数据转换成有用的信息。

机器学习横跨计算机科学、工程技术和统计学等多个学科,需要多学科的专业知识。稍后你就能了解到,它也可以作为实际工具应用于从政治到地质学的多个领域,解决其中的很多问题。甚至可以这么说,机器学习对于任何需要解释并操作数据的领域都有所裨益。

机器学习用到了统计学知识。在多数人看来,统计学不过是企业用以炫耀产品功能的一种诡计而已。(Darell Huff曾写过一本《如何使用统计学说谎》(How to Lie With Statistics)的书,颇具讽刺意味的是,它也是有史以来卖得最好的统计学书。)那么我们这些人为什么还要利用统计学呢?拿工程实践来说,它要利用科学知识来解决具体问题,在该领域中,我们常会面对那种解法确凿不变的问题。假如要编写自动售货机的控制软件,那就最好能让它在任何时候都能正确运行,而不必让人们再考虑塞进的钱或按下的按钮。然而,在现实世界中,并不是每个问题都存在确定的解决方案。在很多时候,我们都无法透彻地理解问题,或者没有足够的计算资源为问题精确建立模型,例如我们无法给人类活动的动机建立模型。为了解决这些问题,我们就需要使用统计学知识。

在社会科学领域,正确率达60%以上的分析被认为是非常成功的。如果能准确地预测人类当下60%的行为,那就很棒了。这怎么可以呢?难道我们不应该一直都保持完美地预测吗?如果真的达不到,是否意味着我们做错了什么?

“能否实现个人的极乐?由此生发,我们为何不能准确地预测人们所参与事件的结果呢?”瞧!这些问题就十分经典。我们不可能对它们建立一种精确模型。如何能让众生以同样的方式获得幸福?很难,因为大家对幸福的理解都是迥异不同的。因此,即使人们能达到极乐境地这一假定是成立的,但如此复杂的幸福也使得我们很难对其建立正确的模型。除了人类行为,现实世界中存在着很多例子,我们无法为之建立精确的数学模型,而为了解决这类问题,我们就需要统计学工具。

1.1.1 传感器和海量数据

虽然我们已从互联网上获取了大量的人为数据,但最近却涌现了更多的非人为数据。传感器技术并不时髦,但如何将它们接入互联网确实是新的挑战。有预测表明,在本书出版后不久,20%的互联网非视频流量都将由物理传感器产生参见http://www.gartner.com/it/page.jsp?id=876512,2010年7月29日早晨4点36分检索到的数据。

地震预测就是一个很好的例子,传感器收集了海量的数据,如何从这些数据中抽取出有价值的信息是一个非常值得研究的课题。1989年,洛马·普列埃塔地震袭击了北加利福尼亚州,63人死亡,3757人受伤,成千上万人无家可归;然而,相同规模的地震2010年袭击了海地,死亡人数却超过23万。洛马·普列埃塔地震后不久,一份研究报告宣称低频磁场检测可以预测地震Fraser-Smith et al., “Low-frequency magnetic field measurements near the epicenter of the Ms 7.1 Loma Prieta earthquake, ”Geophysical Research Letters 17,no.9(August 1990),1465-68.,但后续的研究显示,最初的研究并没有考虑诸多环境因素,因而存在着明显的缺陷W.H.Campbell,“Natural magnetic disturbance fields,not precursors,preceding the Loma Prieta earthquake, ”Journal of Geophysical Research 114,A05307,doi:10.1029/2008JA013932(2009)., J. N. Thomas, J. J. Love, and M. J. S. Johnston, “On the reported magnetic precursor of the 1989 Loma Prieta earthquake, ”Physics of the Earth and Planetary Interiors 173,no.3-4(2009),207-15.。如果我们想要重做这个研究,以便更好地理解我们这个星球,寻找预测地震的方法,避免灾难性的后果,那么我们该如何入手才能更好地从事该研究呢?我们可以自己掏钱购买磁力计,然后再买一些地来安放它们,当然也可以寻求政府的帮助,让他们来处理这些事。但即便如此,我们也无法保证—— — — — —磁力计没有受到任何干扰,另外,我们又该如何获取磁力计的读数呢?这些都不是理想的解决方法,使用移动电话可以低成本的解决这个问题。

现今市面上销售的移动电话和智能手机均带有三轴磁力计,智能手机还有操作系统,可以运行我们编写的应用软件,十几行代码就可以让手机按照每秒上百次的频率读取磁力计的数据。此外,移动电话上已经安装了通信系统,如果可以说服人们安装运行磁力计读取软件,我们就可以记录下大量的磁力计数据,而附带的代价则是非常小的。除了磁力计,智能电话还封装了很多其他传感器,如偏航率陀螺仪、三轴加速计、温度传感器和GPS接收器,这些传感器都可以用于测量研究。

移动计算和传感器产生的海量数据意味着未来我们将面临着越来越多的数据,如何从海量数据中抽取到有价值的信息将是一个非常重要的课题。

1.1.2 机器学习非常重要

在过去的半个世纪里,发达国家的多数工作岗位都已从体力劳动转化为脑力劳动。过去的工作基本上都有明确的定义,类似于把物品从A处搬到B处,或者在这里打个洞,但是现在这类工作都在逐步消失。现今的情况具有很大的二义性,类似于“最大化利润”、“最小化风险”、“找到最好的市场策略”……诸如此类的任务要求都已成为常态。虽然可从互联网上获取到海量数据,但这并没有简化知识工人的工作难度。针对具体任务搞懂所有相关数据的意义所在,这正成为基本的技能要求。正如谷歌公司的首席经济学家Hal Varian所说的那样:

“我不断地告诉大家,未来十年最热门的职业是统计学家。很多人认为我是开玩笑,谁又能想到计算机工程师会是20世纪90年代最诱人的职业呢?如何解释数据、处理数据、从中抽取价值、展示和交流数据结果,在未来十年将是最重要的职业技能,甚至是大学,中学,小学的学生也必需具备的技能,因为我们每时每刻都在接触大量的免费信息,如何理解数据、从中抽取有价值的信息才是其中的关键。这里统计学家只是其中的一个关键环节,我们还需要合理的展示数据、交流和利用数据。我确实认为,能够从数据分析中领悟到有价值信息是非常重要的。职业经理人尤其需要能够合理使用和理解自己部门产生的数据。”

——McKinsey Quarterly,2009年1月

大量的经济活动都依赖于信息,我们不能在海量的数据中迷失,机器学习将有助于我们穿越数据雾霭,从中抽取出有用的信息。在开始学习这方面的知识之前,我们必须掌握一些基本的术语,以方便后续章节的讨论。