Categories
事儿关经济

R并行做大数据时间序列分析与bootstrap

好久没写关于经济学的文章了...今天看到两个搞matching的人拿到诺奖,瞬间想起当年和一个学心理学出身的童鞋一起搞的考虑到心理学因素的matching game...可惜最后没有时间完善,就放在那里当雏形了。我们的idea应该还是蛮有新意的呢~matching需要设计机制,然后用博弈来解,哎,很好玩的...

很多人都知道我是不搞时间序列分析的,尤其不喜欢基于时间序列的因果推断(格兰杰因果检验几乎是被我打入黑名单的一个词)。但这次为什么专门写这么一篇blog post呢?其实,我不反对时间序列作预测嘛~而google这篇paper,目的在于预测,又是latex排版的(搞不好还有sweave或者knitr的功劳),读起来赏心悦目的多。

这篇paper题目是:

Large-Scale Parallel Statistical Forecasting Computations in R

地址见:http://research.google.com/pubs/pub37483.html

亮点自然是:大数据计算、map reduce、时间序列分析、bootstrap (所以说google是一家让人尊敬的公司,http://t.cn/zlbAYJY这里总结了他将学术成果悄无声息的服务于大众的案例)。虽说大半夜的,但看到这个东西,再也睡不着了,索性写完一吐为快。(那次沙龙还说到来着,看吧,google早把这些好玩的东西都搞定了,只是不公开拿出来给大家用罢了~)

1. 并行算法

并行算法这里,主要是map reduce。他们的任务主要有:

  • Facilitate parallelism of computations on up to thousands of machines without access to shared NFS filesystems(上千个节点的并行计算,无共享的NFS文件系统).
  • Make distribution of code and required resources as seamless as possible for analysts to minimize code modifications required to enable parallelism.(无缝衔接各环节,减少分析师写并行算法工作量)
  • No setup or pre-installation of R or specific libraries should be required on the machines in the cluster. A virtual machine for the workers should be created dynamically based on the global environment and available libraries of the caller(节点上无需事先安装R,虚拟机会自动按需构建).
  • Return results of parallel computations in list form directly back to the calling interactive session, as with lapply in R.(lapply函数直接返回并行结果)
  • Allow the parallel functions to be used recursively, so that MapReduce workers can in turn spawn additional MapReduces.(并行函数可以循环调用)

系统构架如下:

2013-12-09 16_48_39-37483.pdf - Adobe Reader

然后若干技术细节还包括,搞定R函数复制和计算的环境并行同步,搞定data.frame和list存储格式与在map函数中直接调用。搞定后,基本底层就搭建好了,剩下的就是调用R了。

2.时间序列预测

最典型的就是google trend的预测了...

2013-12-09 16_49_18-37483.pdf - Adobe Reader

这里他们直接用R包googleparallelism,然后希望用一些时序模型都尝试,做预测,然后取他们的均值(剔除上下总计20%)作为估计值以减少误差。示意图如下:

2013-12-09 16_49_35-37483.pdf - Adobe Reader
我只能说,果然是做机器学习的人啊,和random forest思路一致,弱的分类器结合起来,可能有意想不到的结果。同样的,每个模型都是多少有效的话,平均一下就更稳健啦,尤其是在大数据支撑下...

这样的平均之后已经无法直接推导方差和置信区间,所以他们采取了更依赖机器计算的bootstrap方法,直接强行算出来置信区间...喵的,我只能说谁让当年高斯那群天才整出来大数定律和中心极限定理呢?推不出来估量量方差不要紧嘛,直接重抽样模拟就好了...汗。

3.训练集

果然是做机器学习的人,接下来的思路就是直接一期期训练模拟呗。这个没啥说的了,见下图。

2013-12-09 16_49_51-37483.pdf - Adobe Reader

模拟出来的结果示意图:

2013-12-09 16_50_05-37483.pdf - Adobe Reader

至此,整个问题解决完毕。细节还请大家直接去看原文paper。我的几点感触吧:

  • 1. 机器学习之所以在业界这么受欢迎,主要是其确实能够解决问题。迅速、有效,这个是其他方法比不上的。
  • 2. 大数据、大规模计算,使得一些很简单的idea借助模拟和重抽样方法,大放异彩。
  • 3. 预测,有时候不比因果推断次要。
  • 4. 传统模型,需要适应大数据。
  • 5. 说到底,理论体系还是有待完善的。希望这类方法是下一个微积分,可以先用,然后慢慢补充完相应理论体系。这样,我们才知道什么时候,需要勒贝格测度来取代原有牛顿积分。

总之,虽然无奈,但是有用之物必有有用的道理。期待对理论研究的冲击和激发。

 

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
Wordpress 网站建设

病毒凶残 -_-||

今天终于把所有的sites都搬到新的服务器上去了...各种凶残的病毒残留痕迹,防不胜防...索性一切wordpress的插件什么的都是重新安装的,哎。

祈求一下,让我清净两天吧。最近事事儿已经够多的了,不要再来了。

 

Categories
Uncategorized 网站建设

落园小小的挪动

越是我懒得打理落园,越是有病毒木马什么的来骚扰,实在是不胜其烦...于是小小的挪窝了一下...

找了一个容量不怎么大但是还过得去的虚拟主机,然后三下五除二把落园搬过来了。这次不牵扯什么301永久重定向之类的,搬起来倒是也方便,轻车熟路的就挪好窝了。话说这也是这"鹊占鸠巢"两年多以后,第一次被迫无奈的乖乖挪出来(多谢yihui兄当年危难关头的仗义收留啊)...这个病毒实在是汹涌的紧,着实惹不起啊。看着Yihui兄连年又是跟code奋战又是跟客服打口水仗,也真是辛苦。最后他还是劝大家挪到其他地方,比如Github...可是我就一直没有心思彻底折腾,直到这次放假不动手不行了啊(p.s. 在家里用着十年前生产的古董台式机、只有xp自带的notepad作为文本编辑器的孩子,伤不起啊~无高亮无折叠也就罢了,居然还会自动取消断行!一堆代码就那么华丽丽的堆在一行!)。

看着大家都去玩新潮的github了,我也口水开始积攒,多么适合装装威风啊。yanping兄为了鼓励我挪过去,甚至都帮我改好了模板...可是我还是不想抛弃wordpress,哎~原因大致是比较感性的居多(就像一个流传很久的笑话:某宅男被女神问到什么笔记本好,于是他花了一晚上功夫在京东上看遍了各种本本,女神问的各种问题对答如流,最终给出了各种情况下的推荐。过几天见到女神,手里抱着个mac air,故大大惊讶之--这明明不符合当时的对话嘛,所以没有推荐啊。结果女神只是很简单的说了一句话--我还是觉得mac比较漂亮。据说还有很多男同志一直不服气被指责为只看表面的好色之徒--你们女人买车的时候不也是只看外观的么?靠~凭什么大爷我走在路上多瞄了两眼美女就成色狼了~)(p.s. 我觉得上文中那个注定孤独终老的宅男真是咎由自取啊,女神来问就应该乖乖的有钱出钱无钱卖肾什么的都好去买个mac主动送上去的嘛~笨死的都是)

好吧,其实我的理由也没有高尚到哪里去...

首先呢,看了一堆git架博客的教程,觉得那些"弄潮儿"的博客主题风格我真心不喜欢,看着顺眼的有,但绝对没到了看着搬回家也顺眼的程度,所以还是放在人家家里吧,自家不要。

然后呢,其实把现在的主题稍稍打磨一下也就能用了,但是还是不够完美啊...什么相关博文啊之类的,不是动态生成的怎么可以呢?好歹姐姐也接触了一年推荐算法,这种用户体验优化的觉悟还是有的...

再次呢,当初狠心下功夫学PHP和ajax的时候就是觉得这东西可以动态生成页面,真心好。以前的时候一直不知道网页中的表单提交之后是怎么处理的呢,比如最简单的用户注册什么的。git却又把理念倒回去了。虽说三十年河东三十年河西,有人说git这种形式更适合log类,比如blog,但是我每次在那些网站上留言还要用一个第三方的ajax插件的感觉就不爽,哼。我的blog是用来social的,social的啦啦!不是写在那里跟个what's new的软件更新通知似的。把facebook搞成全静态的还好玩吗,对吧?我还是不认同blog是更适合静态文件系统这一理念的...

最后呢...markdown真心没有写日志的感觉啊!一写md就是一种coding的滋味,不好受不好受,整天上班就是离不开代码,好好的写写blog还不让我舒服点?虽然我也自认代码洁癖有一些,但是还没到受得了markdown的地步(虽然有各种码农出身的小清新小文艺小13B,但还是逃不了码农的劣根本性啊...)。

最后抵触的情绪胜过了理智的那些诸如安全啦,无病毒无宕机,无付费无担心之类的理智理由,也胜过了装腔作势玩弄新潮专业武器的心理,乖乖的还是挪了一个php服务器而已。最后,嗯,其实人家真的变懒了...本来是打算趁机弄个VPS个人主机玩玩的,怎么在这个"云时代"也得有自己的一片云才显得专业嘛,就是那种有shell什么的完全等价于一台服务器而不是一个虚拟空间的。后来想了想不会还要我重新配置apache什么的吧?当年本地装个这些东西都折腾死我了,才不要在服务器上继续折腾自己呢。算了算了...再说还有amazon cloud可以玩呢,实在不行玩玩公司里的cloud也就够过过瘾了。又可见懒人一个。

说了这么多...今天还去yihui的地盘叫嚣什么他是关了太久了终于放出来透透气了(换个难听点的说法就是闷骚),其实我也没好到哪里去...明明就是换了个ip解析地址的小破事儿就能被我朗朗不断的写了这么长一堆...好吧,作为一个在家里百无聊赖终于忍不住抢了老妈的ipad的人,其实已经抱着ipad看了好几天书了,除了睡觉吃饭就是看书。等等。你不会以为我真好好学什么的吧,真学习的话我也不能抱着ipad看啊,怎么也得是几本实体书最次kindle什么的。其实我看的书是小说...恶补了刘建良这位也不知道入不入流的小说家过去两三年写的又臭又长的连载(以前大学的时候貌似经常翻舍友买回来的武侠奇幻杂志什么的),居然耗掉了我那么多个整天。好处也有,看完了爽过了就忘了,完全没记忆,也不会心惊胆颤什么的...好吧长假就是用小说什么的来打发时间的嘛。那个风起云涌的武侠时代还是很让人不时憧憬一下的。

相关文章

Categories
网络新发现

瞬间变3G版iPad

好吧,其实作为一个一直在用3G的人这篇post多少有些无聊...不过事实是,如果很不幸的你的手机没有作为wifi热点的功能,那么其实他也是能作为一个3g路由器帮ipad或者电脑上网的...只不过,我们不用wifi协议而是蓝牙罢了...

今天闲着无聊,就试了试用蓝牙连接ipad和我的手机,果然顺利的连上了。然后,没有什么额多余的设置,ipad就开始用手机的网络了...真是简单啊。同理,laptop也可以这么干。经过了若干年的发展,蓝牙貌似已经成为了标配,虽然用的人越来越少了(除了蓝牙耳机?)。我有点百无聊赖嗯...

最后,实测速度是Ok的,基本反映了3G网的速度,看个优酷视频还是可以的。看来瓶颈不在蓝牙这里嗯。

最后只是想说,如果碰巧ipad没有插sim卡或者不能插,又没有wifi信号覆盖,手机还是可以支援一下ipad的。同理,出国游玩的时候买一个sim卡就可以了,手机和ipad还是可以比较简单的共享的。当然,现在那些先进的可以直接设置个人热点的手机就不用这么折腾了,iphone和ipad也不用这么折腾了...不喜欢智能手机的孩子可以参照我的办法呃。anyway总是一个option吧。