Categories
读书有感

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

前两天微博上转出来的,复旦计算机学院的吴立德吴老师在开?统计学习精要(The Elements of Statistical Learning)?这门课,还在张江...大牛的课怎能错过,果断请假去蹭课...为了减轻心理压力,还拉了一帮同事一起去听,eBay浩浩荡荡的十几人杀过去好不壮观!总感觉我们的人有超过复旦本身学生的阵势,五六十人的教室坐的满满当当,壮观啊。

这本书正好前阵子一直在看,所以才会屁颠屁颠的跑过去听。确实是一本深入浅出讲data mining models的好书。作者网站上提供免费的电子版下载,爽!http://www-stat.stanford.edu/~tibs/ElemStatLearn/

从这周开始,如无意外我会每周更新课堂笔记。另一方面,也会加上自己的一些理解和实际工作中的感悟。此外,对于data mining感兴趣的,也可以去coursera听课~貌似这学期开的machine learning评价不错。我只在coursera上从众选了一门 「Model Thinking」,相对来说比较简单,但是相当的优雅!若有时间会再写写这门课的上课感受。笔记我会尽量用全部中文,但只是尽量...

------------课堂笔记开始--------

第一次上课,主要是导论,介绍这个领域的关注兴趣以及后续课程安排。对应本书的第一章。

1. 统计学习是?从数据中学习知识。简单地说,我们有一个想预测的结果(outcome),记为Y,可能是离散的也可能是连续的。同时,还有一些观察到的特征(feature),记为X,X既可能是一维的也可能是多维的。对于每一个观测个体,我们都会得到一个行向量,对应它的p个特征的观测值,以及一个观测到的结果值。如果总共有N个个体,那么我们对于每个个体都会得到这些值,则有为观测结果的列向量以及X (n*p)矩阵。这样的数据称之为训练数据集(training set)。这里更多是约定一些notation。

2. 统计学习分类?一般说来,我们有个观测到的结果Y,然后找到一个适合的模型根据X预测Y,这样的称之为有监督的学习(supervised learning)。而有些时候,Y是无法观测到的,那么只是通过X来学习,称之为无监督的学习(unsupervised learning)。这本书主要侧重有监督的学习。

3. 回归和分类器。这个主要和Y有关。如果Y为离散,比如红黄蓝不同颜色,则称之为分类器(学习模型);反之,若Y为连续,比如身高,则称之为回归(学习模型)。这里更多只是称谓上的区别。

4. 统计学习的任务?预测。通过什么来预测?学习模型(learning models)。按照什么来学习?需要一定的准则,比如最小均方误差MSE,适用于分类器的0-1准则等。基于这些准则、优化过的实现方法称之为算法。

5. 统计学习举例?

分类器:依据邮件发信人、内容、标题等判断是否为垃圾邮件;

回归:前列腺特异抗原(PSA)水平与癌症等因素的关系;

图形识别:手写字母的识别;

聚类:根据DNA序列判断样本的相似性,如亲子鉴定。

6. 课程安排顺序?

第二章,是对于有监督的学习模型的概览。

第三章和第四章将讨论线性回归模型和线性分类器。

第五章将讨论广义线性模型(GLM)。

第六章涉及kernel方法和局部回归。

第七章是模型评价与选择。

第八章是测侧重算法,比如最大似然估计,bootstrap等。本学期预计讲到这里。所以后面的我就暂时不列出了。

目测第二节开始将变得越来越难,前阵子自学第二章痛苦不已啊...一个LASSO就折磨了我好久。当时的读书笔记见:降维模型若干感悟

--------10.15补充---------

上周写的时候只是凭着记忆,笔记没在身边。今天重新翻了翻当时记下的课堂笔记,再补充一些吧。

第九章是可加模型,即

第十章是boosting模型

第十一章讨论神经网络

第十二章讨论支持向量机 (Support Vector Machine)

第十三章设计原型方法(Prototype)

第十四章从有监督的学习转到无监督的学习(即有X有Y->有X无Y)

第十五章讨论随机森林模型(Random Forest)

第十六章是集群学习

第十七章结构图模型

第十八章高维问题(我最近一直念叨的curse of dimensionality...今年搞笑诺贝尔奖也多少与此有关,见 http://www.guokr.com/article/344117/,还有一篇相关的paper

ps. 吴老师对于随机森林等等模型的评论也挺有意思的,大致是,大家都没搞清随机森林为什么效果这么好...而且这一类模型都是computatoinal intensive的,即有一个非常简单的idea然后借助大量的计算来实现。此外,这类方法更多有“猜”的感觉,无法知道来龙去脉,在现实中显得不那么intuitive...(不像econometrics那般致力于causality呢)。

Categories
网络新发现

Machine learning for KIDS?

在慢慢火车旅途上,看看书还是不错的消遣。第二个kindle也挂了之后,只能借助ipad勉强看看书了。还好吧,至少还能集中注意力,不会手贱的不停刷微博什么的。

离开上海之前,两天奋战看完了备受推崇的「三体」三部曲,不禁对作者的想象力、天文、物理功底所深深折服。总有一段时间觉得自己的思维格外的开阔,喜欢这样智力上的挑战。而接下来打定主意在路上看的,第一本就是说「machine learning for hackers」,听说是R与数据挖掘教程之一,很多人多次提及过,思喆大哥貌似还评论过,却忘了大家是褒是贬。当然,这其中还有一层原因是,适合自己的才是最好的,就像我从来不能如同在经济学家面前声称自己学过经济学一样,在统计学phd面前号称自己学过统计学(cannot speak the statistics language well)。根基差太远。

然而看过了这本书之后,只想问一句,are you kidding?通篇都是各种回归就罢了,还常常一整页就一幅图(至少我看的版本中如此),每个例子都有配图(当然我不否认可视化对于帮助理解数据的意义,但亲啊,是不是有点多了啊?),这样稀哩哗啦的居然凑了300多页。我只想说,如果我的小册子也这么写,突破500页指日可待啊。

好吧,回到价值评价。这本书信息量真的不怎么大。我不是machine learning科班出身,没学过这东西的发展史,不知道这些模型的历史地位和演化过程,只是断断续续、这里一点、那里一片的接触了一些模型(当然回归模型除外,计量的招牌菜啊,虽然我一度觉得我计量学的也不咋地)。看完这本书,先是简单的线性回归,然后polynomial拟合,然后是logit回归等等,中间加上一些莫名其妙的检验指标,各种看着不爽。至少,以一种检验和model selection的形式出现好不好,显得多少严格一点嘛。

后面是支持向量机,然后居然还简单的涉及了sna。不过当我看到gephi的时候....好吧。这作者真心喜欢可视化啊。

说到机器学习,可能我没什么评头论足的资格。不过仗着最近看了一下「数学之美」(虽然只是06年的google黑板报版),还是觉得对这个领域的大致思路有所了解的。关于learning,个人认为除了各种回归等常规prediction之外就是bayesian规则下的模拟了。后者的话,个人倾向于"按需定制",模拟还是好好的从头开始写代码比较稳妥。搞不懂这本书的思路,不知道target group是哪群。

有的时候各个学科还真是殊途同归的。我所接触的很多学科的方法,无非的指向只有一个:如何从信息中提取信息,或者更简单的,如何降维。从这个角度看,经济学也没有落后太多嘛,只是出发点和原始信息集不一样。其实,平心而论,经济学的思维方式基本是数学分析(演绎法)+统计学(归纳法)的结合,虽然到个人层面上各有所侧重,但还是很大程度上相辅相成的,没法一条腿走路。所以,有志于挑战自己智力和创造力的同志们,可以偶尔学学经济学哦~嘻嘻。绝对是系统的对思维方式和分析能力的训练。

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的全屏编辑模式很好用啊,很简洁明了令人可以专注写作!)

Categories
事儿关经济

放不下的身段

今天在想一个问题,我们设计了那么多数据挖掘的算法,各种各样的、借鉴各个学科方法的,最终到底是想做什么?预测,从我的理解来说。那么这些算法都是想干什么呢?以我的角度,他们是在“准确信息未知”的情况下,通过一些其他的方法模拟一个可能的路径,然后给出相应的结果。这里,尤以“推荐算法”为甚。最简单的,“购买过此商品的顾客xx%还购买过”,就是一种基于群体行为来预测个体行为的思路,虽然不知道主导一个确定的个体选择的究竟是什么。这类思路下的算法还有一个好处,放诸四海而皆准,不用过度关心每个个体的特性,只知道一个群体的路径就好了。鲁迅先生说过,“世界上本没有路,走的人多了,便成了路”。

这里不禁引出来一个经典的问题:上帝到底掷不掷骰子呢?简单的说,就是一定有什么东西是最核心的、确定的在一件事物背后么?还是所有事情都是随机的?这个问题一下子就牵扯到科学的定义和渊源:uncertainty到底是当前情况下的未知还是必然的存在,牛顿晚年怕也是纠结于这个问题投奔神学。从两三年前彭实戈老师演讲中扔出这个问题的幻灯片开始,它就深深刻在我的脑海里了。很多时候,真的,面对这个问题,觉得人类真的很渺小……

说到身段,今天听闻一位和我“弱连接(weakly linked)”的男士已然放下身段投身“鸭子”行业,稍稍惊讶之下我真的很好奇到底生活对他有多么的艰辛、让他可以这么勇敢的作出这么一个决定,毅然决然的放下所有身段。不知是不是社会更宽容了,女大学生卖艺又卖身已经稀松平常了,现在男的也不可阻挡滔滔洪流啊。生活果然残酷。可惜,“隔行如隔山”,我也只能在此妄自揣测,不知其中真由。

说到“隔行如隔山”,这种感觉,尤其在科学界为甚。Science,或者说 scientific research,在当今,实在是分工细的不能再细了,各个领域之间几乎没有多少可以互通的语言。以经济学为例,宏微观的巨大鸿沟就不说了,搞理论的和搞实证的相互看不起也不是不常见。很少有人,愿意放下身段、拿出时间,用心的去学习和体会另一个领域的人为什么从另一个角度来看待同样的问题,为什么对科学研究有着截然不同的评判标准。比如同样是数据分析,计量经济学对于“一致性”的极致追求,和数据挖掘算法对于预测精度的追求,这样不同价值观又是否有一些互补的空间?可惜,我认识的两个领域中的人,几乎没有人可以放下身段去另一个领域从头开始。

同样的感觉深深的刻在social network、我自己的研究方向。研究一个社会网络,谈何容易!研究对象是人,自然逃不开 sociology;而研究角度是经济,自然又需要很多经济学的积淀;最后,研究工具是网络分析,自然离不开图论、complex network theories等等。更具体的,某一个研究的实际问题往往离不开一个具体的环境,比如epidemics 等等学科的渗透。然而,各个学科之间,往往互不通气……哎,可怜我看paper的时候,各种期刊的paper一下子都扔过来,然后各种痛苦,感叹为啥没人把这些研究成果都串起来呢?follow这些东西好费时费力啊。

或许,有的时候,放下身段,确实太过于痛苦了吧!牺牲那么多短期利益,长期还是那么的不确定,呃……现代科学的进步真的是对人的要求越来越高了~

Categories
我的生活状态

充实的一周、R会议小报

刚刚结束的一周大概是最近最充实的一周了,几乎每天都在外面跑——去杭州就不用说了,周五更是一天之内横穿了上海两次+,各种高铁地铁磁悬浮、公(交)车私(家)车出租车……真的是为上海的经济发展和碳排放量增加做出了杰出贡献啊!同样的,肯定睡眠不足,终于知道每天都是最终脑子不转了躺在床上立马入睡的感觉,居然被看出来面色憔悴……嗯,我还是喜欢解释为一种挑战极限的充实感。前一周,我被养的太舒服了,果然,这周就必然的加倍还回去。

忙碌的最主要原因就是今天刚刚落下帷幕的第四届中国R语言会议(上海会场)。正如前几日发出来的[cref %e7%ac%ac%e5%9b%9b%e5%b1%8ar%e8%af%ad%e8%a8%80%e4%bc%9a%e8%ae%ae%e4%b8%8a%e6%b5%b7%e4%bc%9a%e5%9c%ba%e9%80%9a%e7%9f%a5%ef%bc%88%e9%99%84%e6%bc%94%e8%ae%b2%e5%88%97%e8%a1%a8%ef%bc%89 上海会场演讲列表],见到了很多朋友,老朋友新朋友,各种兴奋!很多人都是自从09年第二届R会议之后就没有见过了。想念已久啊!

终于也体会到办会议的辛苦,很多细节的事儿都需要考虑到,比如最后还是忘记了很多人要的邀请信……汗,如果谁需要的话给我留个言或者发个email,我们会发扫描件补上、或者快递原件的。这个真的是抱歉了。

学术界的话,谢邦昌老师、超级长的VGAM包的作者Thomas Yee、周涛教授,当然还有汤老师的一如既往的支持,都是让我们特别感动的。此外,赵明和钟春燕带来的在基因富集分析和肿瘤生存预测中的应用也让人印象深刻。

COS自己人就不用废话什么了,一群干将北京杀过来镇场子,金融的数据挖掘的,还有“熹云轩”强大的可视化(这个,云被涛代了,果然有“奸情”啊)。

业界的,自然淘宝和茂源资本的加入让我们格外开心,也要感谢土豆、茂源和芒果的赞助~要不我们不可能把这次会议办的这么红红火火气势昂然的。资深潜水员牟官迅和资深开发者邵凡的报告都让我们一下子站到了数据分析的最前沿。

其他的各种感动就不再一一列举了,我是抽空还打了个酱油折磨了大家耳膜20分钟,罪过啊。slides还是厚脸皮传上来先,很快搜集齐了大家的slides都会一并放在COS主站的。

slides_network_experiments_R