所有由李舰发布的文章

关于李舰

统计之都核心成员之一,曾任 Mango Solutions 中国区数据总监。专注于数据科学在行业里的应用。擅长R语言的工程开发与分析建模,是 Rweibo、Rwordseg、tmcn 等 R 包的作者。与肖凯合著了《数据科学中的R语言》,参与翻译了《R语言核心技术手册》、《机器学习与R语言》。

第四届中国R语言会议(上海会场)纪要

第四届中国R语言会议(上海会场)于2011年11月12日~13日在华东师范大学学术交流中心(逸夫楼)成功召开。会议由华东师范大学金融与统计学院主办、统计之都(cos.name)协办。在两天的会议时间里,胜友如云,高朋满座,大家就R语言在行业里的应用进行了深入的探讨。

会议概况

本次会议吸引了270多名各界人士注册报名,有近200位嘉宾来到现场。其中行业里的参会嘉宾人数第一次超过了在校学生的人数,比例为50.4%,为历届大会最高。根据注册报名信息,同意在参会者之间分享个人信息的206位嘉宾所在单位的汇总如下。

高校和研究所:

The University of Auckland、上海交通大学、上海大学、上海对外贸易学院、上海市发展改革研究院、上海生命科学研究院、上海生物信息中心、上海财经大学、东南大学、中国中医科学院、中国人民大学、中国农业大学、中国科学院、中国科学院上海生命科学院、中央财经大学、云南财经大学、华东师范大学、华东理工大学、华中农业大学、南京医科大学、南京理工大学、厦门大学、台湾辅仁大学、同济大学、四川大学、复旦大学、宁波市科技信息研究院、江西理工大学、浙江农林大学、浙江大学、浙江大学宁波理工学院、浙江师范大学、电子科技大学、福建医科大学、第二军医大学、芝加哥大学、西北工业大学

企业、事业单位:

AC尼尔森、JMP of SAS、MacroStat (Shanghai) Ltd.Co.、Mango Solutions、Merkle Inc.、Unilever、上海伯豪生物技术有限公司、上海华腾软件系统有限公司、上海大智慧股份有限公司、上海宝信软件股份有限公司、上海河广信息科技有限公司、上海烟草集团有限责任公司、上海聚胜万合广告有限公司、上海蓝滨石化设备有限责任公司、上海诺铭商务咨询有线公司、上海金蝶软件科技有限公司、上海高达、东南融通、中国平安、云南瑞升烟草技术(集团)有限公司、光大证券研究所、兴业证券、北京网达信联科技发展有限公司、北京高信达通信技术有限公司福州分公司、国泰君安期货有限公司、复旦大学附属肿瘤医院、奥浦诺管理咨询(上海)有限公司、宝景信息技术发展有限公司、富士施乐、山东泰丰、川渝中烟工业公司、德邦证券有限责任公司、支付宝、数库财务咨询(上海)有限公司、新华社中经社控股有限公司、汇添富基金、淘宝网、瑞易信息技术(上海)有限公司、电讯盈科信息技术有限公司、益普索、盛大网络、米其林中国投资有限公司、红星美凯龙集团、美斯达(上海)医药研发有限公司、艾瑞咨询、花旗软件、茂源投资管理有限公司、西安交通大学出版社、说宝堂信息科技有限公司、诺华、释锐教育软件、阿里巴巴

 

会议现场20111112

会议内容

本次会议讨论的主题涵盖了R语言在金融、制药、生物信息、数据挖掘、互联网、图形可视化等众多方面的最新进展,共进行了18场精彩的报告。会议的流程和主要内容摘录如下。

1、汪荣明院长致辞

华东师范大学金融与统计学院的汪荣明院长为本次大会致开幕辞。汪院长是教育部统计学教学指导委员会委员、中国现场统计学会生存分析分会副理事长、中国概率统计学会常务理事、中国概率统计学会精算专业委员会主任、《应用概率统计》杂志副主编、上海市统计学会副会长、华东师范大学第六届学术委员会委员。作为第四届R语言会议上海会场的东道主,汪院长对本次会议进行了关怀和展望。

2、谢邦昌——云计算在统计Data Mining研究之应用及前沿综述

谢教授是辅仁大学商学研究所博士班所长,统计资讯学系教授,中华资料采矿协会理事长。演讲中对CLOUD-R 云计算下的R前沿进行了探讨,同时展望了数据分析的未来。

3、Thomas W. Yee——An Overview of the VGAM Package

Thomas来自于R的故乡新西兰的Auckland大学。为我们介绍了他编写的VGAM包,用来拟合向量广义线性模型和加性模型。

4、李强——淘宝网购数据和建模

李强博士曾经在硅谷的惠普公司等多家公司担任研发,科研,产品工作。现在在淘宝网广告产品部门担任产品经理,主要负责定向广告营销,个性化广告推荐系统和基础的数据模型。这次演讲为我们介绍了淘宝网利用网购数据建模的方法,用来进行广告的精准投放,提高用户的满意度,提高营销的ROI。

5、卢凌坚——利用R来建立更准确的市场预测

卢凌坚1997年投身量化投资行业,曾任瑞士银行(UBS)亚太及澳大利亚首席量化分析师,并连续两年被美国机构投资者杂志评为亚太最佳量化分析师;后加入Ajia Partners任董事总经理及基金经理,负责市场量化策略和风险管理;2011年7月加盟茂源投资管理有限公司。本次报告是用R语言分析处理金融数据的一个实际的例子,属于茂源资本量化模型之选股模型的数据准备部分。

6、刘思喆——Data Mining With RWeka

刘思喆是北京神州数码思特奇信息技术股份有限公司的Chief Engineer。报告介绍了RWeka包的调用方式、以及这种调用方式的优缺点。并沿着数据挖掘的主线,对机器学习中分类算法(classifiers)的评估方法进行了简要介绍。

7、陈丽云——社会网络中的实验与R

陈丽云来自上海河广,介绍了在Fisher提出的实验设计三原则基础之上、社会性实验的设计思路、需要注意的实行要点和结果分析方法,并以USAIDS在高中生中推广基于社会网络的性教育教学方法为例、介绍了一个具体项目的设计思路和流程,展现出更直观的实验思想。

8、余苓——R在烟草及其加工制品研发中的应用

余苓来自于上海烟草集团,介绍了烟草行业中的多元数据的直观分析、多元数据的相关分析以及FactoMineR package的应用。

9、史军——R语言在新药开发中的应用

史军博士在定量药理和新药研发领域有着极其丰富的经验,作为本次大会的一位特邀嘉宾,以一个“老”临床药理工作者的身份介绍了制药行业的概况和新药研发中数据分析软件的选择。

10、钟春燕——R在肿瘤生存分析中的应用

钟春燕是福建医科大学公共卫生学院流行病与卫生统计学专业在读硕士,主要从事肿瘤分子流行病学研究。演讲主要介绍了肿瘤生存分析的基本概念和主要内容,以及半监督回归分割混合模型的背景,优点及分析过程。

11、邵凡——R的商用:案例分享和前景展望

邵凡是Mango Solutions上海代表处的首席代表。演讲展示了芒果咨询的两个案例:新药研发的软件系统Navigator和感官分析的R包。

12、赵明——不同标准化方法对基因集富集分析的影响

赵明是华中农业大学在读硕士,课题方向主要从事免疫系统生物学研究。主要包括基因通路和基因调控网络的构建和分析。本次演讲主要探讨Affymetrix芯片的不同标准化方法对GSEA分析的影响。

13、牟官迅——R与高频交易数据

本报告涉及经由多年积累后成就的数据平台的构建模式,以及通过R获取高频交易数据和对数据的统计展现。

14、陈堰平——R在数据挖掘的应用:以预测股票收益率为例

演讲介绍了预测股票收益率的分析框架和实用技术。内容包括时间序列数据的读取、人工神经网络方法、支持向量机方法、多元自适应样条回归、评价时间序列 模型的蒙特卡洛方法等。

15、邓一硕——R与投资组合分析

本报告主要介绍R在投资组合分析中的应用。内容分为三部分:第一部分,讲述基于均值-方差的投资组合分析及其在R中的实现;第二部分,讲述基于CVaR的投资组合分析及其在R中的实现;第三部分,讲述DEoptim包以及基于Omega、最大跌幅(Maximum Drawdwon)以及R-ratio的投资组合分析在R中的实现。

16、周涛——信息挖掘:预测、排序和过滤

周教授是电子科技大学互联网科学中心主任。主要研究方向为复杂性科学、网络科学、信息物理、人类动力学和群集动力学。本次演讲介绍了信息挖掘中三个重要组成部分:排序、预测与推荐。

17、熊熹、魏太云、邱怡轩、高涛——R与现代统计图形及其实例

演讲内容包括绘图系统、设备、grid、lattice、ggplot、rgl以及动画等。

18、汤银才——R工作环境简介

汤教授是华东师范大学金融与统计学院教授,博士生导师,《应用概率统计编辑部》主任。演讲介绍了适合于R运行的编辑器(ediotors)、图形式用户界面(GUIs)和集成开发环境
(integrated development environment)。

19、李舰——中国R语言会议及相关活动介绍

本次会议主席李舰介绍了中国R语言会议的发展历史和会议的组织过程,并就国内外的R活动以及R在国内的发展展开了讨论。

资源下载

经演讲者的授权同意,已将所有同意公开的幻灯片加了超链接供大家下载学习(持续更新中,请遵循CC 3.0协议:署名-非商业性使用-相同方式共享)。

感想和建议

如果您对于中国R语言会议还有任何感想、意见或建议,欢迎您在本页面、统计之都人人网页面统计之都新浪微博留言,我们会尽力在今后对会议质量进行进一步的改善。

用R来给微博添把火

近两年来微博这东西越来越火了,已经逐渐成了最主流的网络舆论平台。对于最近的网络热点问题大家一定是深有体会,作为统计门人,肯定很多人技痒不已,希望能进一步地探究很多事情背后的秘密……

好在几个主流的微博平台都提供了API,各种语言的SDK应运而生,而真正的分析利器R的SDK一直没有,这里不卖关子了,直接发布一个R的SDK,参见:Rweibo中文主页

本项目在R-Forge上开发(https://r-forge.r-project.org/projects/rweibo/),最新的信息发布在Rweibo中文主页上。目前的版本全部基于新浪微博,毕竟是现在最火的微博,其实几个微博的API平台大同小异,和twitter的也类似,都来自于同样的开源平台,略作改动也能支持腾讯微博等。本文就只拿新浪微博举例。

CRAN上有一个twitteR包,之前普通权限还可以用的时候有些接口可以和新浪的API通用,新浪废掉普通权限只留OAuth之后,我就放弃了twitteR,开始开发Rweibo(当前版本的twitteR已经可以支持OAuth,不过很多接口的细节和新浪微博还是不一样)。

在这里,我先介绍一下授权机制以及OAuth,这个搞定后整个微博的API就仅仅只是传一下参数调用GET和POST方法而已。最早的微博开放平台的授权方式是普通授权,通过HTTP的头信息来传递用户的信息,这种方式不是很安全,在非HTTPS的情况下密码可能会被窃听,对于开发者和使用者来说都是比较危险的。后来新浪就直接停用了这种方式,采用目前流行的OAuth。

OAuth看上去很玄乎,其实道理非常简单。拿微博开放平台来说,开发者希望能开发一个应用,让不同的用户使用,每个用户都有自己的微博帐号信息,他们不希望在使用的过程中被开发者知道,同时开发者的这个应用的帐号密码也不希望被别的用户知道,不然就会被同行拿去乱来。这样一来,就需要一种授权机制,能够使得开发者和用户都信得过,就好象在淘宝买东西一样,买家和卖家都基于一个可信的第三方平台。对于新浪微博来说,双方都信任新浪,只要能确认所处的网站是真的新浪微博,就不会有问题。先是开发者将自己的App Key和App Secret发送到一个请求地址,新浪微博验证无误后,返回请求的Token,其实相当于是加密过的开发者信息,将这个信息发送到授权地址,可以完成用户的授权。用户在授权的页面可以输入自己的微博帐号,这些信息只有新浪知道,然后会返回一个验证码,用户输入这个验证码之后进行再次确认。开发者将之前自己的Token信息以及用户的这个验证码一起发送到一个访问地址,经过确认后,新浪微博觉得双方都是可信的,而且彼此也都不知道对方的信息,就会返回一个访问的Token以及密码,这就好比是一把钥匙,开发者只要存着这把钥匙,下次如果再对该用户做某些操作时就不需要再征求他的同意了,除非用户主动废除这把钥匙。以上的过程就是OAuth授权的过程。

我最开始是利用JAVA版本的OAuth库,通过rJava实现,后来CRAN上的ROAuth成熟之后又改用ROAuth,在twitte上使用没问题,在新浪微博上调用POST时会有问题,而且对于中文的POST,新浪的开放平台需要编码两次,因此需要对这个包进行改写。当前版本的Rweibo已经不再依赖于ROAuth,直接使用RCurl实现整个授权过程,但是仍然借鉴了大部分的ROAuth包的内容,在这里对作者表示感谢。

安装Rweibo可以参见Rweibo中文主页,里面有详细的介绍。使用时首先需要有一个微博帐号,点击“应用”,选定“微博开放平台”,在弹出页面选择“我是开发者”,然后创建一个普通应用,填好基本信息之后在应用的详情中填上相应的内容,就可以成功创建一个新的应用,将会得到一个App Key和App Secret,在Rweibo中使用registerApp函数,输入这两个信息以及该应用的名称(自己随便起个英文名字即可,不一定要与新浪应用的名字相同),就可以在R中注册该应用的信息。

利用createOAuth函数可以创建一个OAuth对象,如果是第一次使用,将会自动进行授权。比方说我注册了一个应用叫做test,我需要授权给我的微博帐号lijiao001或者我的马甲Rweibo,那么将会在R的界面中完成一个授权的交互过程,如果我用lijianoo1的帐号来操作,那么授权成功后,就可以调用各类函数读取这个帐号的信息或者用该帐号来发微博。一个简单的操作过程如下所示:

registerApp("GDdmIQH6jh", "MCD8BKwGdgPHv", app_name = "test")  # 在R中注册新的应用
roauth <- createOAuth("test", "lijian001")  # 创建OAuth对象
timeline.Friends(roauth, list(count = 5))  # 获取好友及自己的前5条最新微博
timeline.CommentsList(roauth, list(id = 14762313082))  # 获取某条微博的评论列表
timeline.Comments(roauth, list(count = 5))  # 获取自己发送及收到的评论
timeline.Repost(roauth, list(id = 14761105585, count = 5))  # 获取某ID微博的转发情况
timeline.Mentions(roauth, list(count = 5))  # 获取@了当前用户的微博列表
timeline.User(roauth, list(screen_name = "rweibo", count = 5))  # 获取某用户的信息
access.update(roauth, list(status = "hello world"))  # 发一条微博
search.Content(roauth, list(q = "Rweibo"))  # 根据关键词搜索微博内容

目前版本的Rweibo实现了所有的timeline接口以及搜索、查询用户等接口,利用这些接口已经可以取到大部分能够用来分析的信息了。至于其他一些操作的接口,将会在后续的版本中实现。大家有什么建议也可以提给我,我将会在后续的版本中修改。

另外值得注意的是,我们申请的应用都是最低权限的,因为新浪目前对接口访问权限控制得比较严,只有成为合作开发者才能有很大的权限,而这些主要都是针对应用的需求而不是分析的需求。普通的权限一小时只能访问150次,其中发微博的操作只能在30次以内。对于一些操作,每次取出的信息条目也会有限制,20条到200条不等。没办法对某个关键词一次把所有的东西搜索出来或者将某条微博的转发信息一次抓取出来。但是这些难不倒我们,微博API是基于轮询的协议,两分钟左右取一次足矣,对于要分析的内容,我们完全可以设置一个任务,每隔两分钟取一下增量,时间一长就会得到我们想要的大量的数据了。

至于这些内容可以如何进行分析,就需要大家的聪明才智了。我最近想做的一件事情就是研究一下微博的转发规律。很多热点事件通常都会有几条转得极热的微博,如果能够得到转发的规律,就像传染病的规律一样,找到一些关键的节点,对于我们研究微博舆情是非常有用的。