Categories
读书有感

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十)

一个东西写到10,总会多少有点成就感...只是不知道已经磨掉了多少人的耐心了呢?

此外这节公式密集,大家看着办吧...

-----------笔记开始------------

继续上一讲,先说说EM算法。

MM、EM和GMM

1. MM(混合模型)

(1) 定义:,其中,构成一个离散分布。同时有,且

(2) 隐变量

我们有数据,同时依据条件概率分布,有。记,则,其中

则有为x的边际分布。

(3) GMM(正态混合模型)

,我们有,且

(4) 对数似然函数和最大似然估计

对数似然函数写为。则我们要求的就是,其中

2. EM算法 (expectation maximum,期望最大方法)

(1) 迭代方法: 给定起始值,迭代出。那么问题就是,如何在已知的情况下,求

(2) E1步:求。函数形式已知,故可以求各种条件概率什么的。所以有:

E2步:计算,由于函数形式已知,我们可以计算并将移出来,所以换成线性形式。

(3) M步:求,这样就完成了迭代。需要证明的性质是:随着迭代,越来越大,且收敛。

(4) 定理:

证明:

其中,且,定义为两分布的KL距离。

所以,且。而由M步,,故有

在GMM的情况下,应用EM算法,则有:

(1) E1步:,可以直接计算。

(2) E2步:

(3) M步:注意有约束条件,所以使用拉格朗日乘子法:

,故有一阶条件:。从而,其中

还有一阶条件:,得到

最后,,有

对GMM而言,E步和M步在k=2的时候,求解过程可参见书上。

第七章:模型评估与选择

1. 概念: 我们有数据集,函数族和损失函数,这样得到最优的,然后求得

(有监督的学习)。之后就是对模型进行评估:的精度如何(使用测试集)?模型的选择就是的选择,使得测试误差比较小。

2. 方法:

(1) 数据充分:分成三块,1/2用来训练(train),1/4用来检验(validation),1/4用来测试(test)。其中validation

的概念是,在中,加入J函数来考虑函数族的复杂度,以避免过拟合。而validation就是来调正和选择这里的,再用train和validation重新训练模型。

最后,用test数据集,测试并且评估测试误差。

(2) 数据不充分:一种是cross-validation,分成k(比如5-10)份,极端的就是K=N,ave-win-out;另一种是bootstrap,后续章节详述。

Categories
读书有感

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(二)

继续一周一次的课堂笔记 昨天去晚了站着听讲,感觉好好啊,注意各种集中。想想整个教室里面就是我和老师是站着的,自豪感油然而生。

第二次课讲的东西依旧比较简单,是这本书第二章的前半部分。作为一个好久之前已经预习过的孩子,我表示万分的得意(最小二乘法难道不是三四年前就学过的?话说以后我再面人的时候,就让他推导最小二乘估计量,嘻嘻...考验一下基本功)。

------------原谅我的废话,笔记开始------------

简单预测方法:最小二乘法(以下沿用计量经济学的习惯,简称OLS)

OLS实在是太普遍了,我就不赘述细节了。OLS的思想就是,基于已有的样本信息,找出一条直线,让预测值与真实值之间的残差平方和最小,即最小。其中,为真实的样本观测值(已有样本),而是OLS的预测值。用图来讲的话,X为一维向量的时候,就是用一条直线来最好的拟合各个样本点。

这里就很明显了,首先OLS假设是一条直线。那么就是一个参数模型,即我们需要假设一个未知的参数,构成一个线性方程,然后再去估计的值。然后呢,直线会有很多条,所以我们要找到一个目标——比如这里,就是最小化残差平方和RSS。换言之,我们寻找的就是最优的向量使得RSS最小。

解这个最优化问题很简单,我就不重复了。最后解得的最优估计量为:

这里写成矩阵形式,比较简单。X为一维向量的时候,可以改写成形式,我个人不大喜欢,就不展开了。

简单预测方法:K近邻(k nearest neighbor)

K近邻的思想就更简单了。不就是想预测某个点x对应的y么?那么就把它的邻居都找来,平均一下好了。不是有句话叫做什么“一个人的收入就大概是他的圈子收入的平均值么?”

所以 ,这里表示点x的K近邻。至于这个近邻怎么定义嘛,嘻嘻,很简单啊,欧几里德距离就可以嘛~

评语:吴老师对于这两个算法的直观评价是,OLS呢就是勤奋的学生,预测前先做足功课,预测的时候只要知道X,噼里啪啦一下子y就估计出来了。然而knn则是一个临时抱佛脚的学生,预测的时候开始找自己的k近邻,然后把它们平均一下就好了。哈哈,大意如此,大家可以体会一下这种精神。我个人感觉呢,OLS属于以不变应万变的,而knn则是见机行事的。

统计决策理论(Statistical Decision Theory)

说了这么多,这个模型好不好到底怎么判读呢?凡事总得有个标准呢。这一系列的标准或者说准则,就是统计决策理论了。

首先呢,大致我们需要对X,Y有个分布上的描述:用记作向量的联合分布,然后为其对应的密度函数。之后为了估计Y,我们会有很多很多模型,即各种,而这些组成的函数空间记为

然后我们定义一个损失函数,比如在均方误差意义下,,这样就有了一个选择的标准——使得损失函数的期望最小:。接下来就是,到底在空间里面,哪一个最符合这个标准呢?

首先自然是把联合分布变为条件分布。这个idea显而易见——我们总是知道X的(原谅我吧,全中文确实比较难写,偶尔穿插英文一下 ^_^)。所以conditional on X,我们就有了

去解最小化问题,最终我们得到的就是在每个点X上, 。通俗的讲就是,对于每个点预测,把和它X向量取值一样的样本点都找出来,然后取他们的平均值就可以了。很直观的不是么?这里也有点最大似然的想法呢——比如预测一个男孩的身高,最保险的就是把和它同龄的其他男孩的身高平均一下,不是么?

但是说来简单啊,很多时候都是未知的,根本无法计算嘛。所以只能近似:

  • 回忆一下knn,就是放松了两点:1) 取的是x的近邻,而不一定是x; 2)用样本平均数代替了期望
  • 而OLS呢,也是最后在这里,用样本平均代替了期望。

近似嘛,自然有好的近似和不好的近似。很显然的,当样本比较大、尤其是比较密集的时候,x的邻居应该都离x很近,所以这个误差可以减小;此外,当样本很大的时候,根据大数定律,平均数收敛于期望。所以,这两种算法应该说,都在大样本下会有更好的效果。

模型选择、训练误差与测试误差、过拟合

这里讲的比较简单。模型选择就是的选择,即选择哪一类函数空间,然后再其中找/估计最优的。很显然,如果只有若干个有限的样本,我们总能把各个样本用直线或者曲线依次连起来,这样的话就有无数个f可以作为此问题的解。显然这不是我们想要的——这样的称为“不设定问题”,即可能无解、可能多个解、还可能因为一点点X的变化导致整个解的解答变化。因此我们需要先设定一个解的类别。

训练误差:预测模型估计值与训练数据集之间的误差。RSS就是一个典型的训练误差组成的残差平方和。

测试误差:用训练集以外的测试数据集带来的误差,显然我们更关心的是测试误差——训练总能训练的很好,让损失函数期望最小,然而测试集则不一定这样。一般说来,测试误差>训练误差。

过拟合:选择一个很复杂的f,使得训练误差很小,而实际的测试误差不一定小。最极端的就是刚才说的,把训练集的点一个个依次连起来...训练误差肯定是0是不是?

我们关心的自然是怎么降低测试误差。显然这东西会跟训练误差有关,但是它还跟f的复杂度有关。最最棘手的就是,f的复杂度是一个难以衡量的问题。早期的研究有用自由度来衡量这个复杂度的,但是也不是那么的靠谱...后面的有人鼓捣出来PAC(使得近似正确的概率最大——吴老师原话),还有一个VC来衡量复杂度——但几乎实践中无法计算,没几个计算出来的。嗯,水很深哇。

Categories
事儿关经济 互联网产业观察

大数据的潮流?

一边是流浪的心,一边也是在思考一些现实中的问题。还是感谢昨天那位朋友耐心的跟我扯了一下午,说到了一个很有意思的话题,“我们为什么需要海量数据”?或者说, why and how does big data make a difference?

当时说的统计/计量分析的应用很简单,无非是做一些销量、价格弹性和资源投放的预测与优化罢了,典型的咨询业务。然后我就好奇的问了一句数据源,无非是nielsen或者iresearch的市场调查数据之类的,或者厂商自己的一些销量和价格数据。这些数据往往被aggregate到一定的程度,所以一般都是long panel(T>N),以城市为单位之类的。

这样的数据量,肯定没法跟互联网或者电商的individual records相比。百万或许都是小数目。当然咯,我们多少也会把这些原始数据做一个aggregate,比如以每人每日为单位(当然单位的选择取决于具体项目的关注点),但是大多数还是wide panel,N>>T。这两种panel data的(计量)模型显然就不一样了。一个会更多的沿袭time series的分析路子,什么auto-regression、unit root之类的;另外一个要沿袭的更多是cross-section的方法,关注大量个体的特性。

对计量的一个争议就是 ATE (average treatment effect),尤其是做data mining的那些人。明明individuals之间千差万别,计量怎么可以这么简单的取个平均呢?不过一个辩护就是,关注的问题太不同了!data mining很多时候关注的是针对每个个体选择适当的信息传递,而计量模型背后往往跟随的是一个统一的strategy or policy making。毕竟政策不可能太细化到每个人身上,针对这一点我现在越来越认同某个计量学家对于consistency的评价了:

(大意)我喜欢计量经济学,正是因为他对于政策制定的强力支撑。

况且,还有quantile regression可以做一个完整的系数分布估计呢!加之各种bayesian方法的引入……计量变得越来越宽容和好玩了。

最近思喆大哥发了一句感慨

要会技术(统计、机器学习、可视化、最优化),要懂市场(营销,产品,客户行为,渠道),要懂沟通(同事协同,上级汇报,对外呈现),工具要熟练(SQL、Excel、SAS、ppt),公司战略还要懂点,没准还要带团队,要懂管理……。OMG,我在说什么,不是MBA,是数据挖掘专家

可见现在一个资深的数据分析专家活得多么艰辛(题外话,我等consultant活得也格外艰辛啊,这些加上无穷无尽的出差 -_-|| ),而我后面跟的一句是“市场发展不成熟,分工不明确,相关领域人才太少的恶果”。没办法,只做模型和分析远远不够啊,太少人可以看懂并完美应用了,所以搞分析的不得不自己卷起袖子上阵,即当爹又当妈……

那么说到底,为什么现在big data这么火?为什么 quantitative analysts 对数据源这么 obsessing 呢?我的理解是,

1. 大数据可以很容易的aggregate到适当的level,从而灵活适应不同分析目的需求。而已经整理好的数据则无法逆向变通(既实话又废话)。
2. 大数据使得很多大样本的性质可以直接应用,需要依赖的模型假设大大放松,从而模型的选择可以更多的贴近分析目标而不是过多考虑数据本身的性质。
3. 大数据可以进行data mining(又废话了),从而不仅仅服务于单一的policy making,还可以实现定点、极端个性化的信息投递。说白了,就是既可以分析群体特性,又可以兼顾个人特质,像大海一样宽广的胸怀包容着不同分析的目的。
4. 大数据往往是第一手数据,格式整齐(要不搜集成本过高也没法搜集)、数据真实、定义明确,很容易进行data cleaning(一个反例:跟统计年鉴打过交道的童鞋们应该知道那东西有多么混乱,统计口径什么的千差万别,数据来源也未必可信)。这样的数据只要简单的编程处理就可以了,把研究人员从搜集数据的辛苦低层次劳动中解脱出来。
5. 大数据往往包含着传统数据源所无法提供的信息,比如GPS数据可以直接用于跟踪个体的行动路线。这意味着统计分析的结果可能可以被更加灵活的应用(idea -> result -> implementation)。关于这一点,Frank曾经发给我一个很好的summary,说的是大数据为发展(经济学)带来的新机遇:http://www.weforum.org/reports/big-data-big-impact-new-possibilities-international-development
6. 最后一点比较自私的,social network的数据往往都是大数据(得有links嘛),所以既然我的研究兴趣在那里,自然会更多的关注大数据。

那么,大数据的对于分析人员挑战在哪里呢?
1. 从噪音中找到有用的信息: 正如前面所说,大数据包含了太多个体的信息,所以有时候很难找到一个简单的总体指标。如何从噪音中挖掘有用的信息,对于统计分析专家的思路清晰要求度非常之高(Frank兄曾经对此做过一些简单的批判,业界的一些报告有时候无奈的直接把数据aggregate了,丢失了部分有用信息)。而我总觉得,对数据背景一定要有所了解才可以,不能是简单的大海捞针,还是要有直觉指引方向的。(只针对业界数据,制药行业之类的实验数据我没接触过,没有感觉~)
2. 大数据对于建模者的学术训练背景要求更高: econometrics, data mining等等统计分析方法,及其结合,往往意味着分析者需要有着良好的数据直觉。而这一切,往往离不开一个solid的学术训练背景。最简单的,如果不会C或者python之类的编程,不会R之类的统计软件,那对于大数据往往就在data cleaning阶段就束手无策了。而传统的数据集,我知道很多人就是excel手动做数据清理,然后扔到stata之类的软件中调用相关的命令(或者可以称之为函数)就可以了。大数据分析的门槛在提高。
3. 数据敏感性和隐私: 大数据往往来源于个体,这也就意味着data access往往被控制的很严,不可能向所有研究者开放。那么,研究者往往只能接触一个领域、一个公司的数据,而无法是非常全面的行业数据(比如,通信数据你要么有移动的,要么有联通的,不太可能移动联通的同时都给你)。这也多少造成了分析只能从一边入手(依赖双方数据的,比如game theory的实证分析,可能会有些困难)。

暂时先想到这些,或许日后还会补充吧,欢迎各种批判(我只是小小的井底观天而已,加上各种眼高手低、站着说话不腰疼)。其实有的时候,想想自己明明是 more into theories than empiric,但是也就被各种“拉上贼船”下不来了。至少我还是坚信,更难积累的是analytical sense而不是skills,后者更依赖时间而前者多少对天赋还是有些要求的吧。虽然也说,很多时候还轮不到拼天赋……

(p.s. 发现新版WP的全屏编辑模式很好用啊,很简洁明了令人可以专注写作!)