显示下一条  |  关闭

生活也是大事业

阿波的学习、工作和生活

 
 
 
 
 
 
 
 

用R模拟登录新浪微博并抓取微博数据(2012.01.15)

2012-1-15 2:01:49 阅读396 评论2 152012/01 Jan15

好惭愧,几夜过去,weibo.cn又可以不用验证码了。。。2012-01-20

好惭愧,一夜之间,登录weibo.cn需要验证码了,而且电脑上显示的验证码还有问题,我勒个去。weibo.com倒是通过修改设置取消了验证码。所以有空我去学习一下所谓的前端技术吧。2012-01-17

之前还在上海工作的时候,业余写过R脚本来抓取新浪微博数据并分析关注关系,后来这些分析被套用到人人网上,而对新浪微博的探索就没有继续进行。主要的原因其实在于新浪微博的版本升级太快了,前端代码不断变化,登录方式也越来越复杂,所以就没花心思去学习这些东西。最近是 @邓一硕 问我能不能抓取微博数据来做分析,我没找着现成的工具,于是就浅尝辄止地学习了一下。

首先尝试了直接登录新浪微博以获取数据,当前的版本是1.3.18,具体是这个样子:

## 输入账号密码

name="*************";pwd="******"

memory.limit(4000)

library(RCurl)

library(digest)

## 账号的预处理

name=gsub('@','%40',name)

name=base64(name)[1]

myH=c(

"Host"="login.sina.com.cn",

"User-Agent"="Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",

作者  | 2012-1-15 2:01:49 | 阅读(396) |评论(2) | 阅读全文>>

又到了年终总结的时候。这一年可以用两个字概括——忐忑。

过完年后,老爹的病情又开始加重,在医院之间辗转颠沛,最后还是没能熬过这个冬天。而在外打工的日子里,我的每一天都过得很忐忑,拿起手机看到是老妈打来的电话就提心吊胆,偏偏最后一个电话打来的时候我又在跟数仓的同学讨论问题没有能够接到。其实我是很胆小的人,我很害怕,但是又习惯了装成很酷很无所谓的样子,结果每一天都是胆战心惊。最后半个月,老爹很坚强,他从来都是积极乐观的人,我想他一定会保佑我,一定会叫我乖一点稳重一点不要再急忙急促。

可是老爹走后不久,球一球却又生病了,三天两头地来杭州看医生,感冒的时候也严重得好几天没能下床。我心里面当然是紧张的,但还是要以身作则地跟球一球说要安心养病要好好休息。中午带饭回家,路上走得很快,心里也是忐忑的。上班写代码,心里还是忐忑的,总是忍不住打个电话问问好不好,却又担心吵到她休息。身体健康真的很重要,工作虽然意义重大,但是总不能以牺牲健康为代价。希望球一球能够像我一样乖一点,合理安排作息,快快好起来。

最后说说我自己,今年的长进是历年来最小的。首先是体重完全没能hold住,反而差点有所上涨。期间尝试过跑步锻炼,却又不出意外地半途而废。年底的时候答应球一球控制饮食,希望能够见到效果。然后是工作方面,年初的时候离开第一家单位(只做了半年),回到杭州,在阿里金融做一些数据分析和建模的工作。看起来似乎有很多机会,但是我找来找去没发现自己到底能够做点啥。似乎可以做金融风险管理?但是我的知识储备貌似完全无法满足需求并且目前做的事情也相差很远。那么往互联网方向发展?然而

作者  | 2011-12-27 23:04:32 | 阅读(32) |评论(0) | 阅读全文>>

我也用R做马赛克照片,基于新浪微博的粉丝头像哦

2011-9-17 21:56:55 阅读132 评论0 172011/09 Sept17

之前 @刘思喆 同学用R实现了马赛克拼图,很帅又很简洁。于是我也尝试了一下,不过遇到两个问题:ReadImages包不会用,以及没有图片资源。昨天心血来潮跟晓梅讲了上次shanghaiR关于可视化的一些介绍,发现EBImage这个包挺好用的,于是晚上就试着做了一下。图片资源来自新浪微博的粉丝头像。之前貌似有个微博应用是做这个的,但是做得有点不够到位(貌似主要的瓶颈在于粉丝数量不够而微博头像的尺寸又比较大)。

首先是读取粉丝头像数据。悲催的是我刚才一不小心点了新版微博试用,结果之前的很多url都不能直接用了。现在查看粉丝列表的url是“http://weibo.com/1643729062/fans?&tag=&page=1”,这个页面上天然地有50*50的头像,为数据读取带来很大的便利。

拿到全部粉丝的头像之后,都改成Grayscale的模式。这里直接抄了贝吉塔的shell("convert -type Grayscale *.png thumbnail%03d.png")。

然后准备了自己的一个比较简单的证件照,修成30*40的大小,同样处理成Grayscale的模式。就是这样:

接着就是一些数据处理的脚本:

library(EBImage)

作者  | 2011-9-17 21:56:55 | 阅读(132) |评论(0) | 阅读全文>>

Q2的一些小结,人人网好友社群的分析

2011-6-29 1:20:51 阅读181 评论1 292011/06 June29

啧啧啧,这么快就又到季度末了,要准备季度考核,真是不习惯呐。先来博客上小结一下。

最近在忙的项目叫做“墨菲斯”(Morpheus),就是黑客帝国里面那个很酷的壮汉。这是我起的名字,据说这是希腊神话里面的梦神。Morpheus has the ability to take any human form and appear in dreams。翻译成中文的话,这大概是一个解梦计划。之前看到其他部门的项目都有很帅的名字,像什么“大运河”“大航海”“云梯”什么的,而我们分析部门的项目一般都叫做“叉叉叉叉叉叉叉模型”或者“叉叉叉叉叉叉叉分析”,特别难记并且没有气势,所以我决定我们这次的项目也要有一个响亮好记一点的名字。墨菲斯还有一句著名的台词:Neo, sooner or later you're going to realize, just as I did, that there's a difference between knowing the path and walking the path. 从这一点上看,我觉得这个项目的名字确实起到了一定的激励作用。

业余的话,基本没做什么事情。回杭州之后,工作平台就完全转移到SAS上,而SAS这个庞然大物似乎并不擅长做那些业余而有趣的玩意儿。所以我仍然是延续之前的工作,用R做了社会网络分析的一些尝试。之所以选择SNA这个领域,当然与现如今的网络环境有关,但更重要的是它能够用一些简单直观的逻辑计算出看起来还蛮有趣的结论。唯一的困难还是在于,我仍然不知道这些分析能够产生什么实用价值。去上海参加Shanghai

作者  | 2011-6-29 1:20:51 | 阅读(181) |评论(1) | 阅读全文>>

校内网的好友群果然有天然的区隔

2011-4-23 10:26:55 阅读182 评论2 232011/04 Apr23

注:本文稍微具体一点的分析过程,已经发在统计之都了,在这里在这里在这里

跟我预期的结果差不多,例如初中同学、高中同学、大学同学、98网友,等等等等。

这个区隔比新浪微博的要清晰多了。

而且,目前来看,校内网获取数据会比较容易,这次仍然是用RCurl跑的数,参考上一篇对微博的操作。

以下是画图结果,后面顺手摘了我觉得比较清楚的几个子群。当然啦子群越小会显得越清楚。

顺便看看哪些人是沟通桥梁,就是那几个比较大的点。

其中有三个同学可以直观地解释:既是高中同学,又来到同一所大学。

有了这些数据我还可以来给自己做一下推荐。模仿校内网自己的推荐逻辑,来给自己做一下推荐吧。

TOP100。不过怀疑有些是重名,例如王超刘佳王佳这些。

打完收工。最近都会比较忙,工作压力很大,估计就更没时间玩这些业余的玩意啦~~~

注:以上仍然只是个体网的分析。不知道啥时候能够看到整体网。

作者  | 2011-4-23 10:26:55 | 阅读(182) |评论(2) | 阅读全文>>

微博分析的初步尝试(仍然是用R)

2010-12-21 0:42:13 阅读503 评论2 212010/12 Dec21

长三角三日游归来,累死我也么哥。作为休息与调整,我来整理一下最近在微博分析方面做的一些尝试。

新浪微博如火如荼,基于微博的各种应用也层出不穷。有一种共识似乎是:微博数据蕴含着丰富的信息,加以适当的挖掘,能够实现众多商业应用。恰好社会网络分析也是我之前有所了解并持续学习的一个领域,因此我做了微博数据分析方面的一些尝试。这些尝试是比较初步的,属于探索性的阶段,当然不能跟微博分析家这样比较成熟的应用相提并论。并且我的分析基本上都出于想当然的直觉感受,没有具体的理论支撑,这方面需要试着找点书籍来阅读一下,貌似有蛮多可以参考的。

一、用R登录并发布微博

之所以仍然选择用R来做这个登录和发布的工作,是考虑到分析过程的连续性,毕竟能够在同一个平台下面完成所有的工作,还是很令人身心愉悦的。这里借助了一款命令行浏览器cURL,这个浏览器在R中可以用RCurl实现,简单的介绍建议参考medo的《R不务正业之RCurl》。由于我对HTTP这些东西都属于初级未入门水平,没能实现直接的登录,只好利用了cookie实现间接登录。但是最终结果还是蛮稳定的。编写这个登录和发布微博的函数,目的之一是为后续的数据采集做准备,但同时也能够实现同步更新不同平台信息的功能,例如写一条语句就能够把人人状态、新浪微博、飞信签名等等同步更新,还是很有趣的。只是人人状态和

作者  | 2010-12-21 0:42:13 | 阅读(503) |评论(2) | 阅读全文>>

信用评分的简单小结(ROC,IV,WOE)

2010-12-11 19:43:33 阅读199 评论0 112010/12 Dec11

由于专业的关系,我学习信用评分的时候往往最关注模型那一块,前段时间一直有很多困惑,这周认真地看了一篇文章,终于有一点点明白了,所以来简单地小结一下(这事儿不能说得太细),小结完了我得学习cURL去了。

最常见的用于信用评分的模型就是logistic回归,这是一种处理二分类因变量的广义线性模型。这种模型的理论基础比较扎实,但是对于不同的问题当然也存在一些特殊的处理方式,我最大的困惑就在于建模时对分类自变量的处理方法。

由于制作评分卡的某些需要,通常会在建立评分模型时将自变量做离散化处理(等宽切割,等高切割,或者利用决策树来切割),但是模型本身没办法很好地直接接受分类自变量的输入,因此需要对自变量进行再次的处理。比较常规的做法有两种:做dummy变量,做基于目标的变量编码。

dummy变量是比较顺其自然的操作,例如某个自变量m有3种取值分别为m1,m2,m3,那么可以构造两个dummy变量M1,M2:当m取m1时,M1取1而M2取0;当m取m2时,M1取0而M2取1;当m取m3时,M1取0且M2取0。这样,M1和M2的取值就确定了m的取值。之所以不构造M3变量,是基于信息冗余和多重共线性之类的考虑。但是,构造dummy变量也存在一些缺点,例如无法对自变量的每一个取值计算其信用得分,并且回归模型筛选变量时可能出现某个自变量被部分地舍弃的情况。

另一种处理分类变量的方法是基于目标对其进行编码,在信用评分中比较常见的就是用WOE编码。WOE叫做证据权重(Weight of Evidence),表示的其实是自变量取某个值的时候对违约比例的一种影响。

作者  | 2010-12-11 19:43:33 | 阅读(199) |评论(0) | 阅读全文>>

在机场遇見前男友——By 范玮琪 2010.3.30

2010-12-10 9:03:40 阅读118 评论2 102010/12 Dec10

這不是歌名、是前幾天發生在身上的事。上午11點、桃園中正機場、正在等待同事劃位要去杭州、突然有人拍我的肩膀、定神一看、居然是曾經相戀六年的、唯一的、前男友。

這種感覺很奇妙。眼前的他已經是那麼多年沒見的朋友、雖然偶爾傳簡訊、通電話、他甚至來看我的演唱會、但是這麼近距離的面對面是分手後的第一次。我們聊了兩句、他剛從美國回來要去香港出差、臉上掛著兩個大大的黑眼圈、皮膚還是跟小時後一樣的好、還是擁有整齊潔白的牙齒、寬闊的肩膀和美麗的單眼皮。說話聲音還是那麼迷人。

他說:Congratulations! I’m so happy for you! You’re finally getting married.

“你眼睛會笑、彎成一條橋、終點卻是我、永遠到不了。”這是我在2000年為他寫的歌。十年後的今天、再看見他、眼睛仍然是笑成一條過不去的橋、又熟悉又陌生、但此刻我的心情卻是溫暖平靜的。沒變。一切都沒變。他就像是當初我喜歡他的樣子、今天就像是我們一起相處的六年當中平常的某一天、一切的感覺都好自然、好平靜。他淡淡的像以前一樣用手撥弄他的頭髮、淡淡的說他可能因為工作的關係要搬去LA、左手無名指上的婚戒也閃著淡淡的光芒。

輕輕的我們互相說再見請多保重

深深的我給他一個擁抱

遠遠的我看著他離去的背影越來越小

重重的我把他放下來、放進我心裡的保險箱、關起來、鎖好。

奇妙的是、到不了這首歌、後來竟然帶我去了好多美好的地方、認識了好多美好的人、讓我愛上創作、讓我找到愛唱歌的自己、讓我為了走進並擁抱自己夢想的世界而努力著。

作者  | 2010-12-10 9:03:40 | 阅读(118) |评论(2) | 阅读全文>>

推荐系统的初体验(关联规则,协同过滤)

2010-12-9 1:16:09 阅读448 评论0 92010/12 Dec9

最近接触了一个推荐系统的建设项目,于是我顺便回顾了一下之前零星学到的推荐知识,把一些困惑很久的问题弄明白了,所以来总结一下。

一般意义下的推荐系统是指个性化推荐,类似简单的排行榜推荐或者关联规则推荐被认为是不够个性化的。不过我困惑的问题也正在于这里,所以我来描述一下关联规则和协同过滤这两个典型的推荐方法。

关联规则是数据挖掘中的典型问题之一,又被称为购物篮分析,这是因为传统的关联规则案例大多发生在超市中,例如所谓的啤酒与尿布传说。事实上,“购物篮”这个词也揭示了关联规则挖掘的一个重要特点:以交易记录为研究对象,每一个购物篮(transaction)就是一条记录。关联规则希望挖掘的规则就是:哪些商品会经常在同一个购物篮中出现,其中有没有因果关系。为了描述这种“经常性”及“因果关系”,分析者定义了几个指标,基于这些指标来筛选关联规则,从而得到那些不平凡的规律。主要的指标包括:支持度support,置信度confidence,提升度lift。对于一个二项规则例如“A→B”,支持度是指A与B同时出现的概率,即P(A B);置信度是B关于A的条件概率,即P(B | A);提升度是B的概率的提升,即P(B | A) / P(B)。比较常见的例子是:

这些指标都很容易理解,他们在一定程度上保证了挖掘出来的规则的实用性。

尽管用来做关联规则的Apriori算法被誉为数据挖掘十大算法之一,我仍然曾经因为觉得关联规则如此简单明白而忽视其实践意义。尤其是在我知道协同过滤之后。

协同过滤也是很典型的推荐技术,他构造一个用户与项目之间的关联打分矩阵,像是这样

作者  | 2010-12-9 1:16:09 | 阅读(448) |评论(0) | 阅读全文>>

logistic回归的一些直观理解(1.连接函数 logit probit)

2010-11-30 2:08:39 阅读839 评论2 302010/11 Nov30

前面写了一些读书笔记是关于用logit回归做二分类问题后的效果评价,基本上已经可以告一段落。然后打算回过头来整理一下logit回归本身的一些思路。很惭愧,我不是统计学出身,当年概率论差点考挂,数理统计也是一门选修课(唯一印象深刻的是老师的口音),所以大概很难从理论上进行严格的阐述,主要还是写一点直观的理解。

限制一下问题的范围吧,基本上用到logistic回归的,很多是二分类问题,也就是因变量是0-1类型的情况。我们想要研究的是因变量与自变量之间的关系,跟线性回归是完全类似的问题。但是由于因变量形式比较特殊,所以造成了处理方式的不同,也就引出了我的第一个困惑:为什么要引进广义回归方法呢?

首先,假设我们从线性回归的思路出发,遇到的第一个问题就是,我们问题的因变量是什么?这个因变量是一个分类的变量,看一下散点图就能知道因变量与自变量之间不是那种直线的关系,这就导致我们没办法写出传统的那种比较容易理解的线性回归公式 y = a + b*x 。我们想到的一个解决办法是,将这个因变量抽象成它的期望值(这应该是广义线性回归的核心内容之一)。在0-1变量的情形下,这个期望值就等于因变量取1的概率,一般就写成P了。这个P貌似是可以涵盖了0-1因变量的信息,同时也能够用来比较直观地理解我们的问题:当自变量发生变化时,我们的目标变量取1的概率是怎样变化的。

然后,我们继续试图用线性回归的思路,把问题写成 P = a + b*x ,也就是说,我们假设因变量取1的概率跟自变量是线性关系。这个假设挺自然也挺合理的,但是却导致了另外三个问题:参数估计,因变量P的

作者  | 2010-11-30 2:08:39 | 阅读(839) |评论(2) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

浙江省 杭州市 天蝎座

 发消息  写留言

 
江浙沪,数学系,天蝎座O型,懒洋洋,傻乎乎
 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注