Categories
日常应用

《Stardew Valley 星露谷物语》送礼关系网

呃,前段时间入了Stardew Valley(星露谷物语)的坑,然后发现送礼是门很讲究的事情。

然后手痒痒,职业习惯使然,就顺手分析了一下送礼策略。

原始数据:Stardew Valley的官方wiki送礼页面

然后我就是想看一下怎么简单的可以携带一堆礼物然后送给不同村民。

分析办法:把官网wiki的数据抓下来,然后看一下那些东西可以同时送给多个人,又比较容易获得,这样便于有计划的生产和携带。

结果:画了一张图...v开头的是村民,其他都是礼物。前面分析在r,画图的时候还是用了gephi...便于控制。

screen-shot-2016-11-06-at-6-52-54-pm

源代码:

gift = read.csv("stardew valley gift.csv/Sheet 1-Table 1.csv", stringsAsFactors = F)

names(gift)

expand.gift = apply(gift, 1, 
      function (x) {
        gift_list = unlist(strsplit(x[2],"\n "))
        data.frame(v = x[1], g = gift_list)
        }
      )
expand.gift = do.call(rbind, expand.gift)

expand.gift$v = gsub("\n","",expand.gift$v)
expand.gift$g = gsub("[[:space:]]","",expand.gift$g)
expand.gift$v = paste0("v.",expand.gift$v)
names(expand.gift) = c("source","target")
write.csv(expand.gift, file = "expand.gift.csv", row.names = F)
expand.gift = subset(expand.gift, ! g %in% c("Prismatic Shard","Rabbit's Foot"))

expand.gift.mul = merge(expand.gift, expand.gift,
                        by.x = "v",by.y = "v")
expand.gift.mul = subset(expand.gift.mul, g.x!= g.y)

library(igraph)
gift.n = graph_from_edgelist(as.matrix(expand.gift.mul[,2:3]), T)
gift.n = as.undirected(gift.n, mode = "mutual")
V(gift.n)$size <- 1
l <- layout_with_kk(gift.n)
plot(gift.n,layout=l, vertex.label.cex	 = 0.7)

write_graph(gift.n, file = "svgift.gml",format = "gml")

原始数据:

sheet-1-table-1.csv

矢量图形:

svgift.pdf

Categories
游来游去 经济、IT观察与思考

数据分析职业病

分析是种职业病,融贯在每一分血液里,每一分骨髓里...去参加个Qcon看看人家的创意网站,然后心里各种痒痒,拉着思喆哥、堰平兄饭局讨论实现的原理也就罢了,最近只要一出门就习惯性的开始思考某些稍微“违背常理”或者“略显聪明”的现象...

比如这次去西安,在去的航班上,就开始思考起来了“航空公司的数据挖掘”....
-------------------回忆的分割线-------------
有些事情纯属职业病。这次上海飞西安坐的是南航的航班,一路折腾到飞机上就已经疲惫不已了,直接睡过去。

后面的一切毫无波折,如果不是临下飞机十几分钟的一段对话,我估计会对这段航行毫无记忆。只是突然间空姐的一句问候,"您是***女士么(我的本名)",让我第一反应是我不是你们的金银卡啊,这也开始问候了?...然后笑意盈盈的递给我一张会员申请表。"您虽然还不是我们的会员,但是您是我们的潜在会员。所以请您加入我们南航明珠俱乐部"...

我第一反应是,"潜在会员"这个是怎么分析出来的?目测我大概有一年的时间没有飞过南航(在过去的半年时间我似乎都完全没有飞过),难道他们有个"沉睡用户苏醒监测"?要不就是,正巧这次我累计乘坐南航的次数达到了他们分析的阈值(比如10次)?要不就是,每次坐南航我都累积东航,让他们终于忍无可忍了...还是说,他们真有一个customer life value model,算出来我对他们的潜在价值了?

蛮有意思的是,我曾经有段时间周周飞南航,他们却从来对我爱理不理,所以我猜测他们的模型里面对于"reactivated"的顾客有个很高的权重。

到最后,南航猜的准吗?准,有可能是我确实在东航还有一些里程可以挥霍。不准,则是我现在飞行大都是私人旅行了,基本不可能象以前做咨询时候出差那般频率了,所以我的潜在价值肯定没有模型上估计出来的高。如果这个模型进一步分析"公务旅行"还是"私人旅行",怕是效果会更好吧。不知道能不能通过机票代理来区分这两类客源...所以,准,却有点晚了。

当然对于垄断国企来说,这个CRM并不是那么重要,反正利润会一直在那里,国内的常客计划也发展不起来。只是感慨一下,这样的分析要是想做好,绝对离不开自己对于这项服务的亲身体验。只有飞的多了,才知道常客计划的最大引力和最关键时点。而后的分析,才会水到渠成吧?

职业病发作完毕...

Categories
我的生活状态

2012的收获

前一篇偏流水账,就不浪费大家的时间了。

2012的收获大致有:
1. 更多的交流,结识更多新朋友。收益于第一份咨询工作,我学会了如何更好地沟通、让事情更平滑的move on。换位思考是最最宝贵的经验,business最重要的就是和人打交道。受益于新的在eBay的工作,我学会了如何更坚实的结合一个business idea和model,也体会到分析结果对于真实商业行为的影响。每次看到managers的summary sides都让我由衷感慨一下。受益于各种会议沙龙活动,结识了很多不同领域的朋友(就不一一列出了,埋藏感激于心底)。真的,Life is better when shared! 好享受这种互通有无的过程,真诚的沟通一直让人感动。人生何处不相逢,希望有更多的机会可以和这些好朋友们学习。

2. 知识的增长。skill层面,在诸多大牛的熏陶下下,耳濡目染的用R鼓捣起来文本分析,很有趣;从老板和同事那里学了很多SQL技巧;连续七天攻克了SAS。课程方面,跟下来了coursera的model thinking和复旦的elements of statistical learning。另参观了若干博物馆,文化知识稍稍增长。

3. 读书。 抄一下豆瓣的list,几本印象深刻的书:elements of statistical learning(cos论坛大牛推荐),rework(yihui推荐), presentation zen(impress.js推荐), 什么是数学+高观点下的初等数学(周涛推荐),浪潮之巅+数学之美(一位做sales的朋友推荐),the little sas book, 怪诞行为经济学(一位老友推荐),中国哲学史(大学存货),另附若干R书籍。小说方面有印象的就是三体了,三个不眠不休的整日搞定(辞职之后进藏之前),再就是暑假恶补了王家卫的电影(邻居推荐)。

没了...2012还算丰盛,希望2013节奏再快再舒适一点,和大家一起成长!

-------------------

去年的总结在这里:time-to-change/,硕士毕业时候的总结在这里: a-brief-summary-of-my-master-year/。今年的主题依旧是:chasing my dream。

Categories
网络新发现

Coursera上的R语言课程

今天登上Coursera一看,随便点开几门课居然都是用R来辅助的...R是什么时候悄悄的渗透到这么多大学和行业的哇?孤陋寡闻了呢。

入门的,如专门的数据分析计算,有一门Computing for Data Analysis,是时长为4节的R语言课程。讲的貌似比较基础:

This course is about learning the fundamental computing skills necessary for effective data analysis. You will learn to program in R and to use R for reading data, writing functions, making informative graphs, and applying modern statistical methods.

还有一门类似的,Data Analysis(居然是Johns Hopkins的生物统计研究生院一年级的课程):

This course will focus on how to plan, carry out, and communicate analyses of real data sets. While we will cover the basics of how to use R to implement these analyses, the course will not cover specific programming skills. Computing for Data Analysis will cover some statistical programming topics that will be useful for this class, but it is not a prerequisite for the course.

当然,基础的统计课程也是R的天下了:Statistics One

Statistics One also provides an introduction to the R programming language. All the examples and assignments will involve writing code in R and interpreting R output. R software is free! It is also an open source programming language. What this means is you can download R, take this course, and start programming in R after just a few lectures.

经济与计量、金融计算自然也不能免俗...Introduction to Computational Finance and Financial Econometrics

Learn mathematical and statistical tools and techniques used in quantitative and computational finance. Use the open source R statistical programming language to analyze financial data, estimate statistical models, and construct optimized portfolios.

自然还有类似的金融课程:Financial Engineering and Risk Management

With regards to programming, we have designed the course so that all required "programming" questions can be completed within Excel. However some questions may be easier to complete using Matlab, R, Python etc.

然后居然还看到社会网络分析也是用R来辅助的:Social Network Analysis,这里有我最喜欢的Gephi和R,咿呀呀,不奇怪的嘛,好歹我也是研究了SNA那么久了呢。

We will be using Gephi for visualization and analysis. The interactive demonstrations will be primarily in NetLogo, which you will be able to access through your web browser. If you would like to complete the programming assignments, which will be done in NetLogo and R, NetLogo is freely available here and R is freely available here.

显然这远远没有结束...生统方面,Mathematical Biostatistics Boot Camp自然也是用R的:

临床上也是...Data Management for Clinical Research

  • What resources will I need for this class?
    For this course, you will need: 1) an Internet connection; 2) software package capable of generating table-based CSV files (e.g. Microsoft Excel, Google Docs, Numbers); and 3) and an install of the open-source R programming platform.

好吧,我已经不奇怪会看到更多的了。这两年业界对于R的需求井喷,绝对跟学校里面的教育脱不开干系。不过如果我只是一味列举而不是比较,那岂不是有违统计学风范?R跟C或者Java比显然没有意思...不是做一件事儿的嘛。SAS的结果只有一门,Passion Driven Statistics,我猜很大程度上是这东西不免费,不能让每个学生都有的用;Matlab就多很多了,主要是Matlab的计算确实强大,其他的跟它确实没法比啊(至今我写模拟还是喜欢在Matlab里面写矩阵运算...R里面涉及到无路可逃的循环真的是让人忍无可忍),目测有9门课程使用。注:Stata结果为0,哎,真的是打不过免费软件啊。

赘述完毕...

 

Categories
Uncategorized 事儿关经济

R会议小记

今年的R会又热热闹闹的开了两天,一切进行的还算顺利,没有大的波折。大家玩的很开心,各种旧友重逢相见恨晚按下不表。只说几点我的体会:

1. 数据挖掘越来越热,却越来越觉得泡沫。今年R会议创纪录的收到了接近500人报名,实际到场领取材料350人。会场一直有人需要站着听,这是以前没有的。R这两年越来越热,说明业界的需求上来了,用R的人越来越多毕业了,进入企业了。然而听了很多演讲,却没有感觉有让人“惊喜”。大家在重复的炒有限的东西。不见新意。

2. 工具越来越热,只能说明用的人越来越多,而不见得是用法越来越聪明。大数据热的一塌糊涂,大家关注的却只是怎么能实现计算,而少有从根本思想的角度提出创造性的方法的。这让人不免觉得疲惫。

3. 林大师兄说的有句话让我印象深刻——用复杂的方法解决复杂的问题那是做研究,用简单的方法解决复杂的问题是在业界。一路看来,被业界认可的方法,大都是simple and elegant的,只可惜翻来覆去就那些,看久了就审美疲劳了。

4. 大多数分析只能说是typical的完成任务,有灵性的分析不多。张翔的“短文本分类实践”在这个意义下,是可圈可点的有灵性的分析之一。在现有的算法上,如何聪明的排列组合优化改造,这不仅仅考验的是分析者对于模型的理解,更多是对于业务需求的洞见。再好的模型,也得多少按需定制一下,否则总让人觉得空洞无物。

5. 机器学习是小聪明而不是大智慧。我这么说坐等被骂,不过确实是思喆大哥的一句点评醍醐灌顶——机器学习的人从来不关心假设检验,尤其是对于分布的假设。反正计算机可以算,那么就去算好了。很多算法直觉上过得去,就可以了。我总感觉这东西,要么大家玩够了破灭一下,要么有人从头建造一些夯实的基础,真正繁荣。现在还是一个初生牛犊的混沌阶段吧。比较好的应用,除了google发起的那几类,大概也很难有本质上的突破了。

6. 业界是 short sighted,这个不用多说了。

7. 我对整个数据分析的行业未来持负面预测。有泡沫的感觉。可是,明明自己还在混这口饭吃...不过至少这口饭还能吃个十年二十年吧,不怕不怕。

8. 以前总觉得建模什么的最重要,最刺激,最有成就感。现在感觉,其实很多时候解决问题的能力大家都有,而发现问题却不是每个人都擅长。也劝最近打算从学校里面出来的朋友们,不要一上来就跟招人的企业说“我希望做统计建模”blablabla...其实有的时候那些fancy的模型提高的可能只是最后的5%,而为此牺牲的效率有可能有着更高的成本。至少我现在,有点越来越问题导向了。还有,其实很多时候,在学校里大家对于模型的理解还都是很肤浅的,纸上谈兵的。其实自己根本把握不住那些东西。最近好多次深深感觉,我以前觉得自己熟练把握的很多模型都不见得可以迅速的应用到实际的业务场景中去。在不断的跟同事、老板、partner讨论的过程中,才是真正的去深入的理解那些模型的过程。所以,一句聊以自勉的话:还是从简单的做起吧。

几乎没说几句好话,见谅。好玩的东西就是那么多,天天玩天天看不免觉得疲惫。不过平心而论(与我的工作单位无关),eBay对于数据的理解和应用整体水平绝对是行业前列的。能把一个数据分析的大问题break down到若干几乎独立的小问题,这就说明整体的框架已经成熟并足以支撑业务了。这样的情况下,作为个人可能接触的好玩的事情会越来越少,因为几乎相似背景的人都可以很快的胜任日常的工作(这也是我对大企业最佩服的一方面,分工确实细致,有利于提高整体效率),另一方面也是学习如何化整为零的好去处。每个人都有自己想要的人生,都会选择适合自己的地方。只是这一次很多人一致评价,觉得我来了eBay之后更快乐了——这怕是最好的褒奖了吧。

----对于未来R会议的期许-----

我们号称要做“学术会议里面最文艺的,文艺里面最学术的”,那么总要多多的有些有灵性的分析。R语言基础培训可以淡出R会议的舞台了。

此外,力争联系更多的大牛~要有学术会议范儿嘛 ^_^