• Archive by category "活动聚会"
  • (Page 3)

Blog Archives

R语言会议2014:R语言与金融大数据应用

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/meeting-r-20140525/

r-meeting

前言

R语言会议已经开完一周了,下面就是总结和吐槽的时间了。

随着R语言会议的知名度提高,场面和阵仗开始越来越大,参会人员和演讲嘉宾都比去年多了1倍,2天的会议还有3个分会场,向商业化会议发展,这是必须要肯定的!各路人马分分要求分享知识是好事,但有些嘉宾并没有精心准备,有些在内容上与本次会议也不相关,演讲质量良莠不齐。连续遇到不负责任务的演讲嘉宾,就会感觉浪费时间,会议的牌子也容易砸掉!

目录

  1. 会议现场
  2. 我的演讲主题:R语言与金融大数据应用
  3. 吐槽时间
  4. 会场照片

1. 会议现场

第七届R语言会议于2014年5月24日和25日,在中国人民大学举行,官方网站 http://china-r.org/2014/beijing/。第六届打响了R会议的知名度,得到了各方的认可,第七届的阵仗就更加豪华起来。
不仅参会人员爆棚,还出现了一票难求的情况。演讲嘉宾,也从学术界扩大到了工业界,特别是IT领域。而且还请到了R语言的领军人物 RStudio公司首席科学家 Hadley Wickham,花名“男神”(网友起的)。

主办方“统计之都”提前2个月就在网站上宣传,还单独为R语言会议申请了域名,并制作了网站,现场还有一份长达51页的小册子。看得出同学们的用心!

上午开幕式,会议主席 冷静 同学的致辞,让我震惊于大学生的气场,镇压全场,太棒了!给10个赞!

第一日最精彩的内容,Hadley Wickham,余凯,周明,王汉生,靳志辉,绝对不能错过;胡浩和光大证券,讲讲互联网和金融结合的思路;其他的赞助商就吹吹水,也没啥有用的内容了。

2. 我的主题:R语言与金融大数据应用

我是第二日量化投资场,最后一个演讲的人。我讲的主题为“R语言与金融大数据应用”,PPT下载,同时可以参考我之前的博客文章:用RHive从历史数据中提取逆回购信息

演讲主题来自于我的创业项目,把大数据的处理技术应用于金融领域。主要内容包括,基于Hadoop存储证券的日内交易数据,通过RHive连接R语言与Hive,建立相关性算法模型,在历史数据中回测,构建投资决策组合,并生成可视化结果用于展示。

考虑到投资有风险,特别是在公开场合不宜介绍风险比较大的金融产品。所以,以“逆回购”为案例设计了整套金融大数据应用系统。对于金融玩家来说,“逆回购”确实没有太多的兴趣点,不过重点在于如何运用IT的技术与金融应用相结合。如何写出能赚钱策略,还是私下聊比较稳妥。

本次会议有一个让我很兴奋的事,遇到了创业的同行,微量网。我们似乎在做同样的一件事,相似的创业故事,相似的产品定位。都是同路人,他们的产品已经上线了,而我还在路上,继续努力!坚持!

3. 吐槽时间

上面2段文字,都是非常正面地对会议的肯定,接下来就是吐槽的时间了,不吐不快啊!

吐槽一:可能是我的预期比较高,但本次会议并没有我期望的那么好。

第一日除了上文中提到嘉宾发言内容绝对高质量,从下午开始各种的无营养的发言,就让人觉得差距啊,完全在浪费听众的时间,1000多人的时间呢!

吐槽二:如果表达力有问题,作为嘉宾发言,自爆短处,何苦呢!

第二日,上午在量化投资会场,我是第三个发言,前面的2位演讲者,真是不敢恭维。

第一位,XX网,语言表达能力也太差了,话都说不利索。每句话都是2个字2个字的碰,听着着急。开始还以为是过度紧张,发言30分钟,一直都是这种状态,还要怎么解释呢? 自爆短处,何苦呢!同时,PPT也看不出是精心准备的,听了15分钟我就坐不住了,能不能直接下一个啊!

吐槽三:不懂金融和R语言又无关,怎么就当嘉宾了?

第二位,个人投资者,说自己开发了一套量化交易程序。演讲过程30分里,有25分钟讲得尽是些C语言、CPU、性能等的内容,最后5分钟说了几句用聚类分析股票的数据。这就算是量化投资了吗,太不靠谱了吧!

先不说他的计算机水平好坏,这位个人投资者,完全是不懂金融,只能说在金融领域打打酱油。如果用简单地聚类方法就能赚到钱,那么互联网的人早就去金融市场抢钱了。我相信他的模型,自己都不敢投钱玩。

另外,他提到收集了3T的交易数据,在单机上面计算,程序要优化,CPU要优化。在大数据时代,3T数据量不算什么,用分布式数据处理技术,可以简单地解决他所遇到的问题。不懂金融和R语言又无关,这样也能发言?!听了15分钟我又坐不住了,能不能直接下一个啊!

吐槽四:主办方为了扩大规模,选择嘉宾太不周全,经验不足。

我记得“统计之都”网站,在2个月以前发布R语言会议时,演讲嘉宾需要提前发PPT确认,我是4月23日报名演讲的,5月7日完成的PPT提交。那么既然主办方要求提交 “演讲PPT”,为什么不进行筛选呢? 找懂行的人,读一下PPT内容,就知道嘉宾是否用心,演讲内容是否和本次会议相关。

特别是量化投资场,前言2位嘉宾的发言,已经定下了“被吐槽的基调”,我已然躺着也中枪的感觉。同时由于我的演讲主题是“逆回购”,而前面2位演讲人的铺垫又不给力,会造成不懂金融的人以为金融就是这样的;而懂金融的人就觉得有些水….

各种因素放在一起,有些无奈。只有等到下次再好好表现,才能洗清这次的失误!

4. 会场照片

参会人员大合照

DSC_8337

主席 冷静。

lengjing

Hadley Wickham,男神。

DSC03169

会场照片,摘自统计之都, http://cos.name/2014/06/7th-china-r-beijing-summary/

######################################################
看文字不过瘾,作者视频讲解,请访问网站:http://onbook.me/video
######################################################

转载请注明出处:
http://blog.fens.me/meeting-r-20140525/

打赏作者

ChinaHadoop大会 2103: R语言为Hadoop注入统计血脉

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/hadoop-china-rhadoop-2013/

rhadoop-chinahadoop

前言

今天有幸在2013年ChinaHadoop大会发言,为R语言推广做出一点点贡献,自己感觉非常的激动。自学习R语言以来,跨学科的思维模式,每天都在扩充自己的视野!“唯有跳出IT的圈子,才能体会IT正在改变着世界”。

以计算机技术和统计为工具,再结合行业知识,必将成为未来“数据掘金”的原动力!抓住时代的机会,是80后崛起的时候了!

目录

  1. 主题内容介绍
  2. 活动照片

1. 主题内容介绍

ChinaHadoop的大会主页:http://www.chinahadoop.com/

R语言为Hadoop注入统计血脉:PPT下载

  • 1). 主题:R语言为Hadoop注入统计血脉
  • 2). RHadoop基础程序
  • 3). 分步式协同过滤ItemCF算法介绍
  • 4). ItemCF算法:R本地程序实现
  • 5). ItemCF算法:RHadoop实现
  • 6). ItemCF算法:Java Hadoop MapReduce实现
  • 7). ItemCF算法:Mahout 实现
  • 8). 推荐结果,数据可视化

1). 主题:R语言为Hadoop注入统计血脉
主要内容:R语言为Hadoop注入统计血脉

2). RHadoop基础程序

主要内容:RHadoop实践系列之二:RHadoop安装与使用

源代码


#hdfs
library(rhdfs)
hdfs.init()
hdfs.ls("/user/")
hdfs.cat("/user/hdfs/o_t_account/part-m-00000")

#rmr
library(rmr2)
small.ints <- 1:10
sapply(small.ints, function(x) x^2)

small.ints <- to.dfs(keyval(1,1:10))
from.dfs(small.ints)

output<-mapreduce(input = small.ints, map = function(k, v) cbind(v, v^2))
from.dfs(output)

#rmr-wordcount
input<-"/user/hdfs/o_t_account/"
wordcount = function(input, output = NULL, pattern = ","){
  
  wc.map = function(., lines) {
    keyval(unlist( strsplit( x = lines,split = pattern)),1)
  }
  
  wc.reduce =function(word, counts ) {
    keyval(word, sum(counts))
  }         
  
  mapreduce(input = input ,output = output, input.format = "text",
            map = wc.map, reduce = wc.reduce,combine = TRUE)
}
output<-wordcount(input)
from.dfs(output)

3). 分步式协同过滤ItemCF算法介绍
主要内容:RHadoop实践系列之三 R实现MapReduce的协同过滤算法

aglorithm_2

4). ItemCF算法:R本地程序实现

主要内容:RHadoop实践系列之三 R实现MapReduce的协同过滤算法

源代码:


library(plyr)

#读取数据集
train<-read.csv(file="small.csv",header=FALSE)
names(train)<-c("user","item","pref") 

#计算用户列表
usersUnique<-function(){
  users<-unique(train$user)
  users[order(users)]
}

#计算商品列表方法
itemsUnique<-function(){
  items<-unique(train$item)
  items[order(items)]
}

# 用户列表
users<-usersUnique() 
users

# 商品列表
items<-itemsUnique() 
items

#建立商品列表索引
index<-function(x) which(items %in% x)
data<-ddply(train,.(user,item,pref),summarize,idx=index(item)) 
data

#同现矩阵
cooccurrence<-function(data){
  n<-length(items)
  co<-matrix(rep(0,n*n),nrow=n)
  for(u in users){
    idx<-index(data$item[which(data$user==u)])
    m<-merge(idx,idx)
    for(i in 1:nrow(m)){
      co[m$x[i],m$y[i]]=co[m$x[i],m$y[i]]+1
    }
  }
  return(co)
}


#推荐算法
recommend<-function(udata=udata,co=coMatrix,num=0){
  n<-length(items)
  
  # all of pref
  pref<-rep(0,n)
  pref[udata$idx]<-udata$pref
  
  # 用户评分矩阵
  userx<-matrix(pref,nrow=n)
  
  # 同现矩阵*评分矩阵
  r<-co %*% userx
  
  # 推荐结果排序
  r[udata$idx]<-0
  idx<-order(r,decreasing=TRUE)
  topn<-data.frame(user=rep(udata$user[1],length(idx)),item=items[idx],val=r[idx])
  topn<-topn[which(topn$val>0),]
  
  # 推荐结果取前num个
  if(num>0){
    topn<-head(topn,num)
  }
  
  #返回结果
  return(topn)
}

co<-cooccurrence(data) 
co


#计算推荐结果
recommendation<-data.frame()
for(i in 1:length(users)){
  udata<-data[which(data$user==users[i]),]
  recommendation<-rbind(recommendation,recommend(udata,co,0)) 
} 

recommendation

5). ItemCF算法:RHadoop实现

主要内容:RHadoop实践系列之三 R实现MapReduce的协同过滤算法

源代码:


#加载rmr2包
library(rmr2)

#输入数据文件
train<-read.csv(file="small.csv",header=FALSE)
names(train)<-c("user","item","pref")

#把数据集存入HDFS
train.hdfs = to.dfs(keyval(train$user,train))
from.dfs(train.hdfs)

#STEP 1, 建立物品的同现矩阵
# 1) 按用户分组,得到所有物品出现的组合列表。
train.mr<-mapreduce(
  train.hdfs, 
  map = function(k, v) {
    keyval(k,v$item)
  }
  ,reduce=function(k,v){
    m<-merge(v,v)
    keyval(m$x,m$y)
  }
)
from.dfs(train.mr)

# 2) 对物品组合列表进行计数,建立物品的同现矩阵
step2.mr<-mapreduce(
  train.mr,
  map = function(k, v) {
    d<-data.frame(k,v)
    d2<-ddply(d,.(k,v),count)
    
    key<-d2$k
    val<-d2
    keyval(key,val)
  }
)
from.dfs(step2.mr)

# 2. 建立用户对物品的评分矩阵
train2.mr<-mapreduce(
  train.hdfs, 
  map = function(k, v) {
    df<-v
    key<-df$item
    val<-data.frame(item=df$item,user=df$user,pref=df$pref)
    keyval(key,val)
  }
)
from.dfs(train2.mr)

#3. 合并同现矩阵 和 评分矩阵
eq.hdfs<-equijoin(
  left.input=step2.mr, 
  right.input=train2.mr,
  map.left=function(k,v){
    keyval(k,v)
  },
  map.right=function(k,v){
    keyval(k,v)
  },
  outer = c("left")
)
from.dfs(eq.hdfs)


#4. 计算推荐结果列表
cal.mr<-mapreduce(
  input=eq.hdfs,
  map=function(k,v){
    val<-v
    na<-is.na(v$user.r)
    if(length(which(na))>0) val<-v[-which(is.na(v$user.r)),]
    keyval(val$k.l,val)
  }
  ,reduce=function(k,v){
    val<-ddply(v,.(k.l,v.l,user.r),summarize,v=freq.l*pref.r)
    keyval(val$k.l,val)
  }
)
from.dfs(cal.mr)


#5. 按输入格式得到推荐评分列表
result.mr<-mapreduce(
  input=cal.mr,
  map=function(k,v){
    keyval(v$user.r,v)
  }
  ,reduce=function(k,v){
    val<-ddply(v,.(user.r,v.l),summarize,v=sum(v))
    val2<-val[order(val$v,decreasing=TRUE),]
    names(val2)<-c("user","item","pref")
    keyval(val2$user,val2)
  }
)
from.dfs(result.mr)

6). ItemCF算法:Java Hadoop MapReduce实现

主要内容:用Hadoop构建电影推荐系统

源代码:https://github.com/bsspirit/maven_hadoop_template/releases/tag/recommend

7). ItemCF算法:Mahout 实现

主要内容:Mahout分步式程序开发 基于物品的协同过滤ItemCF

源代码: https://github.com/bsspirit/maven_mahout_template/tree/mahout-0.8

8). 推荐结果,数据可视化

数据集:small.csv


1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.0
3,104,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0

结果集: result.csv


1,104,33.5
1,106,18
1,105,15.5
1,107,5
2,106,20.5
2,105,15.5
2,107,4
3,103,24.5
3,102,18.5
3,106,16.5
4,102,37
4,105,26
4,107,9.5
5,107,11.5

R语言Socail Graph可视化


library(igraph)

train<-read.csv(file="small.csv",header=FALSE)

drawGraph<-function(data){
  names(data)<-c("from","to","f") 
  g <- graph.data.frame(data, directed=TRUE)
  V(g)$label <- V(g)$name
  V(g)$size <- 25
  V(g)$color <- c(rep("green",5),rep("red",7))
  V(g)$shape <- c(rep("rectangle",5),rep("circle",7))
  E(g)$color <- grey(0.5)
  E(g)$weight<-data$f
  E(g)$width<-scale(E(g)$weight,scale=TRUE)+2
  g2 <- simplify(g)
  plot(g2,edge.label=E(g)$weight,edge.width=E(g)$width,layout=layout.circle)
}

#small
drawGraph(train)

src_graph


#recommandation
recommendation<-read.csv(file="result.csv",header=FALSE)
drawGraph(recommendation)

recommand_graph

2. 活动照片

chinahadoop-1

chinahadoop-2

chinaHadoop2013

转载请注明出处:
http://blog.fens.me/hadoop-china-rhadoop-2013/

打赏作者

COS沙龙第九期:RHadoop分享会来袭 圆满成功

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/cos-beijing-meeting-20130623/

cos-rhadoop

RHadoop分享会来袭!嘉宾现场指导操作、安装。

Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一去不复返了。

沙龙嘉宾:张丹

PPT下载:RHadoop实践

沙龙照片:

photo-cos1-small

rhadoop-cos4

沙龙视频:

视频属性:

  • 讲师:张丹
  • 发布日期:2013-06-22
  • 片长:94分钟
  • 难度:中级

购买视频  5分钟试看

沙龙时间:

6月23日 (周日) 15:00-17:00

沙龙地点(具体地点短信或邮件通知):
中国人民大学

沙龙流程:
1. 自我介绍(30分钟):每位来宾1-3分钟自我介绍:个人背景、对本期主题的心得感悟、以及任何想要与大家分享内容(自我介绍是大家相互认识的第一步,请提前准备)
2. 嘉宾分享(60-90分钟):嘉宾围绕沙龙主题分享经验,解答互动,引导讨论
3. 晚宴畅聊 (不限时,自愿参加):沙龙参与者深度交流、结识各界好友

本次沙龙提醒:
1、建议预先阅读张丹嘉宾的《RHadoop实践系列》,可以先尝试下搭环境,如果有问题,可现场咨询嘉宾。

沙龙费用:
沙龙:免费。
晚餐:AA制,预计人均50元

沙龙人数:
25人

沙龙报名:
1. 请点击本页上方“报名”,填写并提交报名表格
2. 报名截止时间:6月21日 17:00
3. 我们会根据报名者职业相关程度和行业相关经验确定来宾名单。并通过短信进行确认。
4. 报名请准时参加,因会按报名人数预留座位及订餐;
如有事,请于活动开始前至少5小时提前说明

问题咨询:
salon@cos.name

######################################################
看文字不过瘾,作者视频讲解,请访问网站:http://onbook.me/video
######################################################

转载请注明出处:
http://blog.fens.me/cos-beijing-meeting-20130623/

打赏作者

Dataguru北京线下聚会圆满成功

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/dataguru-beijing-meeting-20130616/

title

嘉宾PPT分享下载:

感谢活动团队:

  • 发起人、组织者:张丹
  • 报名统计:于双海,何青
  • 场地赞助:何青
  • 通         知:张丹 
  • 主   持  人:李阳
  • 维持秩序 :于双海,何青
  • 摄   影  师:张丹,于双海

01

 

参加活动的同学:

姓名 公司 dataguruID 参加课程
张丹
bsspirit R, R展现,SAS,Hadoop, NoSQL,Oracle,Openstack, Kettle
李阳 中科辅龙 casliyang hadoop1
于双海  博彦科技 sunev_yu hadoop1
何青 微课网 heqingcool hadoop1
张宣彬 Oracle linou hadoop1
刘盛 金融机构 leonarding oracle系列
王非  当当网
阮宏博  浙江和仁科技有限公司 976073363@qq.com
李雪峰  浙江和仁科技有限公司
丁波  zejia 独角兽老头 R1
董红磊 董红磊
梁胜和  oracle海量架构、性能优化、SAS、R
邓奕 板凳总 Hadoop、NoSQL
马光东  亚信联创 27112 oracle深入课程

 

02

活动现场视频:

自我介绍

Nginx fastdfs图片系统–王非

大数据解决方案之基于用户位置分析的应用 – 张宣彬

Oracle 索引优化思路–案例分享 — 刘盛

数据分析平台规划–课程贯穿 — 张丹

转载请注明出处:
http://blog.fens.me/dataguru-beijing-meeting-20130616/

打赏作者