从程序员的角度说统计学习方法概论

应该说这是在看完《统计学习方法》这本书后有的想法,也算是读书笔记。《统计学习方法》是李航写的,重点偏向于基于统计的监督学习,个人觉得这本书好的地方是在叙述完理论之后,通常会有一个比较形象的小例子,在纸上演算一下具体的过程。这就让本来很抽象的数学公式变得相当直观,而且对于用代码实现也会有比较大的帮助。


对于程序员来说,特别是很少见数学公式的来说,要读一本这样满是公式的书其实是比较有挑战的。我试着从程序员能理解的角度去阐述这些概念。严格意义上来说我只是写了一年多程序的不合格程序员,所以很多时候还是得上公式,因为公式在很多时候是最精简的,就像很多优美的代码一样,他是无可替代的。

简单的例子

假如有下面这个问题:

一小面店在过去半年的盈利分别为:10, 12, 9, 13, 11, 12.3 单位为千。然后问题是预测下个月的收入是多少?

我估计绝大部分做过机器学习的人都会跟你说,这是最简单的一元线性回归就能解决的。然后不求甚解的家伙可能会给你一段代码,毕竟在Python 里做机器学习scikit-learn 就像是个大宝箱,基本上所有人都能用。

from sklearn import linear_model

clf = linear_model.LinearRegression()
X = [[1], [2], [3], [4], [5], [6]]
Y = [10.0, 12.0, 9.0, 13.0, 11.0, 12.3]
clf.fit(X, Y)
print clf.predict(7)

然后看到预测的结果是: 12.46666667
好像还不是很离谱的样子。为什么为第一时间选择这样的方法,这个过程到底涉及到哪些知识。所有基于统计的方法,甚至是大部分机器学习方法都是基于一个框架。下面我 们用这个例子来拆解它。

统计学习三要素

统计学习,甚至我觉得所有机器学习都是建立在历史数据之上,学习的目标是让计算机能预测。要抄书的话,你会看到这里面有很多分类,比如监督学习,非监督,半监督,强化学习之类的东西。其实我想真正可以好好理解下的是统计学习三要素:模型(model)、策略(strategy)、算法(algorithm)。理解这个过程,基本能了解机器学习的大部分真相。

model

模型是对现实世界的抽象,这些抽象为了能够比较简单都有一些假设作为前提。对上面那个例子来说模型就是:每月的收入是时间的线性函数。这样一来所有的一元线性函数都有可能,这些所有可能的一元线性函数的集合被称作模型的假设空间(hypothesis space). 统计学习就是要根据历史数据,从模型的假设空间中找到一个确定,也就是上面那段代码干的事情。

还有另外一种类型的假设空间,不是函数组成,是条件概率集合,比如说贝叶斯分类器的假设空间。具体什么是贝叶斯分类器,如果你不懂,后面的文章会有介绍。

strategy

strategy 可以说是学习的标准,有了这个才会有后面的算法。还是上面那个例子,模型的假设空间是所有一元线性函数,但是如何从这无数的函数中选择一个最好的呢?问题如果用数学的方式来说就是求一元线性函数的两个参数,一个是x的系数,一个是常数项。然后就有人提出了几种方法。我知道的就有两种:

  1. 最小二乘法
  1. 极大似然估计

看着这些名词很吓人的样子,其实他们的直观逻辑都是及其简单的,虽然背后确实有复杂的假设,和数学证明。

最小二乘法的思路是:找到一个函数使得其在样本上预测值和真实值之间的误差平方和最小。

极大似然的想法也是相当的直观,我们都在不知不觉的使用这种思想:举个例子, 假如你是女生,你读书时候,后面坐着两个男生A,B.每天男生A,都在后面动你头发。突然有天B动了下你的头发,我想你转过头肯定还是会骂A. 极大似然估计还是大名顶顶的高斯提出的。数学点儿的描述就是样本出现的概率最大化。

最终的目标是要预测,所以策略在做的事情就是让风险最小,然后将问题转化成可求解的函数极值的问题。极大似然思想就是一种经验风险最小的例子:上面那女生骂A正确的概率肯定要比骂B正确的概率大。

上面两种strategy 的最终结果是把一个模型求解的过程转化为函数极值。如果这个函数极值有解析解,那后面的算法基本就没有必要了。通常是这个函数的极值比较复杂,很难求解或者根本就不存在解析解,那后面的算法就要派上用处了。

algorithm

这个算法和计算机里那个排序之类的还是有些区别,这个主要是说的数值计算。常见的梯度下降,牛顿法,EM ...... 他们通常都是通过迭代拟合来实现对一个函数求极值。EM 算法的原理也是求函数下界函数的极值来逼近真实函数的极值,我见过的都是在求极值。

上面讲了这么多机器学习,机器在这个过程中干什么呢?我们都没见机器出场。其实机器的核心任务就是实现algorithm 的工具,因为算法通常需要很多迭代和尝试,靠人来做肯定是不行的,但是机器很在行这个。所以到这里我想应该理解写程序和机器学习到底是个什么关系。如果你不是为了创建一个新的算法,只是想解决一个数据上的问题,其实你能写程序就够了,前提是能看懂数学上的逻辑。如果看不懂,就像写程序的时候不知道产品需求一样,后果如何写 程序的都知道。

总结

当然机器学习比我说的要复杂的多,这里面也还会有其他问题。比如数据预处理、特征工程、模型评估、选择,而且这个过程中有很多细节的问题。但是从上面的描述你应该能看到写程序和数学是如何结合的,机器学习到底是个什么东西,至少在传统的基于统计的方法上是这样,其实我想深度学习也是在求函数极值。大部分的数据科学家,都是在利用少部分人发明出来的东西,来解决他们自己的问题,在这个过程中我认为真正重要的还是想象力,和动手能力,当然你得看得懂数学公式,至少能理解其中的逻辑,还是那句话写程序之前好好理解需求这是每个程序员圈子里广泛传播的经验,做机器学习你可能还要看懂公式,这就像是需求的一部分。

你可以在我的博客查看原文 或者搜索微信公众号:正午不早了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容