『一张温馨图片,献给金秋九月.』

时隔大半年,回头看着这停滞不前的博客,心里忐忑不安,久久不平。上半年一直在为毕业忙碌,毕业之后进入工作状态,业余时间也就少了很多了。以前在学校的时候,很自由,能够腾出来写博客的实践是一大把,毕竟时间都是自己安排,能够充分地利用。如今进入公司,就不能这么随性了。所以,对于现在这个状态的自己,还是要好好计划好,工作肯定是不能耽误的,当然自己的博客也不能荒废了。

Read More »

前阵子,幸运的中了一篇BIBM regular paper,对于不打算继续攻读PhD的自己,整个硕士也算是没有遗憾了。这两天,隔壁实验室的导师又开始催着交论文初稿了,恍恍惚惚地才意识到,一年又到头了。这一年,去过很多城市,走过很多地方,也收获了许多曾经。零零碎碎的事情比较多,为了勉励下自己,还是决定写点东西。有时候感觉,一个人静静地坐在椅子上回想着过去的点点滴滴,会心地一笑,淡然地释怀那些不开心的往事,也算是一种觉悟、一种享受吧。

Read More »

在前几篇博文里,【模拟新浪微博登录:从原理分析到实现】一文介绍了如何登陆微博,【新浪微博数据爬取Part 1:用户个人信息】【新浪微博数据爬取Part 2:好友关系与用户微博】两篇文章介绍了如何爬取微博用户个人资料、关注者列表、粉丝列表以及发表的微博。那么,在这篇文章里,将介绍如何把前几篇的内容融合到一起,整合成一个完整的新浪爬虫框架。OK,让我们来见证一个爬虫的诞生吧^_^。

Read More »

上一篇博文新浪微博数据爬取Part 1:用户个人信息介绍了如何爬取用户个人资料,使用了BeautifulSoup以及正则表达式,最后得到了与用户有关的14个字段。在这篇文章里,将继续介绍如何爬取微博数据,爬取的内容包括用户的粉丝、用户的关注者、用户个人发表的微博三部分信息。博主知道,没有完整的项目源码支持,对于初学者来说,确实是一件不容易的事。所以,笔者打算先将每个部分的代码单独抽取出来,等到下一篇附上源码的同时,介绍如何运行整个爬虫项目。

Read More »

从上一篇博文到现在,已有一月有余,期间发生了许多事情,庆幸地是博主终于想开了,有的时候,那些无法改变的人或事,就让TA 去吧,不必多多挂怀,趁着还有时间,做些自己喜欢的事情。此前在模拟新浪微博登录:从原理分析到实现这篇博文中讲解了如何登陆新浪微博,虽然模拟登录看似比较复杂,但将其过程理解透彻之后,你会觉得它其实也比较简单。实现了登录,接下来就是新浪数据的爬取。本文是数据爬取的第一部分,以Python实现新浪用户个人信息的爬取,其余篇章将在后续博文中陆续给出。

Read More »

上一篇文章小试牛刀:使用Python模拟登录知乎介绍了如何模拟知乎登录,虽然用到了验证码信息,但请求的参数都是原封不动的传递,刚开始接触的时候,觉得难度适中,回头再看的时候,反而感觉挺容易的。在这篇文章,将继续介绍模拟登录。与之前不一样的是,这次选择的对象是新浪微博,难度稍微提升了点,好在以往的许多码友们都留有许多经验贴,经过几番斟酌,微博的模拟登录算是实现了。这两天还在研究如何高性能地爬取微博数据,业余之际乘着还有点记忆,索性将先前的小实验加工成文,算是一份小结吧。下面来看看整个实验过程。

Read More »

最近突然对爬虫兴趣倍增,主要是自己想从网上爬点数据来玩玩。前阵子从某房屋出售网爬取了长沙地区的房价以及2016年的成交额,只有几千条数据,量较少,没劲o(╯□╰)o,因此将目标成功地转移到了社交网上,难度显然大了点。爬取社交网站比较鲜明的特点就是需要登录,否则很多东西都无法获取。做了几个小Demo之后发现,人人网的登录还比较简单,验证码的都不用就可以成功登录;知乎虽然携带验证码,但难度算是适中;微博的登录难度稍微大点,因为不仅有验证码,还在传递参数的时候对用户名进行了base64加密。在这篇博文里,主要是以知乎为例,模拟知乎登录,至于数据爬取部分咱们就暂且不谈吧。

Read More »

出于学习的目的,笔者决定将逻辑回归总结一次。本文主要介绍逻辑回归的推导,囊括Sigmoid函数、极大似然估计、损失函数以、梯度下降以及正则化。文章内容纯属总结性知识,并不是对LR进行大篇长论。如有理解不到位的地方,还请读者指出。

Read More »

关于Adaboost,在先前的一篇文章里,也介绍过它的步骤与实现,但理论上的推导未曾涉及。虽然Adaboost算法思想通俗易懂,但权值更新公式的由来,想必并非人人皆知。本文着重于从理论层面进一步阐述Adaboost,最终推导出迭代时的样本权值更新公式。

Read More »

实习结束一个星期有余了,也来说道说道吧。此次去奇虎360实习,不仅认识了许多牛人,同时也算是见识到了工业界与学术界的不同,更是游览了北京的不少景点,可以说是不虚此行吧。整个实习历时115天,于我而言,这是人生的第一次,或许也会是最后一次。我不敢奢求什么,只希望通过这篇随性而写的不长不短的Summary,给此次实习画上一个圆满的句号,或许以后回头看到这篇文章的时候,还可以勉强回忆下实习中的点点滴滴。

Read More »

在计算学习理论里面,有一个比较重要的概念,那就是VC维(Vapnic-Chervonenkis Dimension)。它解释了机器学习算法为什么可以去学习,数据又为什么可以被学习。在机器学习领域,VC维可以说是一个非常基础的定量化概念,可用来刻画分类系统的性能,也因此给诸多机器学习方法的可学习性提供了坚实的理论基础。网上有许多讲解VC维的博文,自己在学习VC维的时候也搜到很多,数量多的同时质量难免也良莠不齐。所以在这里,强烈推荐一下pluskid写的关于VC theory 的系列文章,总结的确实非常深入。

Read More »

在机器学习领域,概率分布对于数据的认识有着非常重要的作用。不管是有效数据还是噪声数据,如果知道了数据的分布,那么在数据建模过程中会得到很大的启示。本文总结了几种常见的概率分布,比如离散型随机变量的分布代表伯努利分布以及连续型随机变量的分布代表高斯分布。对于每种分布,不仅给出它的概率密度函数,还会对其期望和方差等几个主要的统计量进行分析。目前文章的内容还比较简洁,后续再不断进行完善。

Read More »

传统的正排索引指的是doc->word的映射,然而在实际工作中,仅仅只有正排索引是远远不够的,比如我想知道某个word出现在那些doc当中,就需要遍历所有的doc,这在实时性要求比较严的系统中是不能接受的。因此,就出现了倒排索引(inverted index ),详细内容参见Wikipedia-Inverted index。本文主要讲解的是如何使用Scala编写Spark程序来实现倒排索引。

Read More »

最近看到一篇关于Spark架构的博文,作者是 Alexey Grishchenko。看过Alexey博文的同学应该都知道,他对Spark理解地非常深入,读完他的 “spark-architecture” 这篇博文,有种醍醐灌顶的感觉,从JVM内存分配到Spark集群的资源管理,步步深入,感触颇多。因此,在周末的业余时间里,将此文的核心内容译成中文,并在这里与大家分享。如在翻译过程中有文字上的表达纰漏,还请大家指出。

Read More »