看不见的攻与防

我们生活在信息爆炸的时代,穷尽一个人的一生也无法浏览完万分之一的网络信息。那如果给你猜,你会觉得整个互联网的流量里,非人类的比例有多大?

是20%?

还是30%?

还是40%?

据统计,2013年机器人占互联网访问的比例就已经超过了60%(很遗憾我并没有查到更近时间的数据,但只会多不会少),也就是大部分的互联网流量并不是由人类产生的。这60%孜孜不倦昼夜不息乐此不疲的机器人,我们就称之为爬虫。

一个段子来解释数据挖掘

先来一个自编的段子镇楼:

话说这齐天大圣孙悟空大闹天宫,玉帝派二郎神杨戬去镇压,兵力占尽优势却屡次不胜。问题就在孙猴子有一招十分厉害的分身术,拔一把毫毛一吹一变,地上就冒出成千上万只一模一样的猴子,每次大费周章抓回的都是假猴子。二郎神无奈之下只好去找如来佛祖,求教鉴别真假美猴王的方法。

佛祖呵呵一笑,说这招分身术是从菩提老祖那里学来的,只是孙猴子的技艺还不到精纯,会露三个破绽:假猴子的右手无名指会隐隐发光;假猴子头顶的黄色毫毛会多于九九八十一根;假猴子左右眼珠子的大小也有点差别。

二郎神拿了这秘诀就志得意满出发了,谁知来到花果山之后傻眼了,满眼望去都没有露出这三个破绽的猴子,结果又只能胡乱抓了几只假猴子回天庭交差,然后一脸懊丧又去找如来佛祖吐槽。

佛祖眉头一皱,说这孙猴子又跑去和混元老祖学了这分身术的第二层,破绽被修复了,真假猴子差别已经十分微妙。不过有一方法可解此难题,让二郎神带着十万天庭画师下山,等孙猴子使出分身术这一招,就下令画师一人画一只猴子,有多精妙画多精妙。

这十万画像来到天庭,佛祖一一鉴别之后,又召集了十万天庭算师,经过七七四十九昼夜的演算,得出一机器,对着猴子咔擦一算,是真是假逃不掉。最终天庭凭着技术上的优势,成功活捉了齐天大圣。

我的点评:

数据的妙用,无论包装如何眼花缭乱,结论总逃不掉是一个分类:真猴子假猴子、男用户女用户、明天股票是涨是跌、给老司机推荐哪种类型的歌曲。哪怕到个性化的推荐,也是物以类聚人以群分。条件简单的,三五条规则就可以,就像佛祖第一次给二郎神支招,看准那三个破绽,假猴子没错!可如果你的场景没办法用简单的规则去评判呢?那么你就需要包含成千上万个特征的数据(天庭画师),需要用专家的知识给原始数据做标签(如来佛祖),需要把数据和标签混合训练出一个高性能的算法模型(天庭算师)。这就是数据挖掘。

使用ggplot2同时绘制多个密度图

数据码农最躲不过的就是做变量分析,一个个看黑白样本的分布图不过瘾,就想着把所有变量的分布都打印出来,一目了然。话说R最性感的图表库当属ggplot2,只是这厮不好伺候,展示这个图虽然只用三行代码,却着实费了一番工夫。话不多说,我知道你们要什么,上当莫!

从零到一,并不是大家理解的那样

去年末开始2shou就犯了懒症,长达半年的时间里没有真正读过哪怕一本书,趁着春节假期终于小补了下功课,选了一本老早就被翻烂了被写开了被传遍了的书,这就是彼得蒂尔的「从零到一:开启商业与未来的秘密」。书是好书,哪怕像电影观场前就被影评剧透了,但仍然有惊喜无限百味丛生杂感翻腾。在我看来,读书就是品味思想,书的价值在于作者独特的见解,智者永远是和庸众逆向而行的。2shou是愚者,但所理解的从零到一,也与那些被传遍的鸡汤文有些不同。

猴年一乐:深度学习八卦史

今天农历初九,虐狗的情人节刚过,相信2shou的朋友们虽然到岗了,但身心还是维持在慵懒的假期状态。没事,这次我们不谈严肃的技术话题,2shou给你们讲一段机器学习领域横跨三十年的科技圈八卦史。

前阵有个热门的新闻爆出来:谷歌的人工智能程序5:0完胜欧洲围棋冠军,堪称计算机攻陷了人类智慧硕果仅存的殿堂。其实这是一则老消息,发生时间在去年10月份,至于为什么这时才爆出来,据说是Facebook刚对外宣称要探索人工智能下围棋的领域,谷歌放个风让江湖上认清谁是真正的大佬。谷歌和Facebook的八卦容后再表,近两年人工智能领域发展飞速,全拜一种颠覆式思想的普及所赐:深度学习。而深度学习的普及,离不开一个人的功劳,这个号称黑暗中举着火炬的人,Yann Lecun,中文名燕乐存。

程序员你为什么这么忙?

去年中2shou经历了一次跳槽,重新回到了一线执行者的角色;新的岗位每天都要应对四面八方的需求,不时有火烧眉毛手忙脚乱的时候,往往在聊天工具、邮件、终端、IDE和报表多个窗口之间切换一个来回,就忘了刚开始是想做什么来着,恨不得立马给自己来上一榔头。尽管每天例行加班到十点后,仍然有一些需求忘了、慢了、缺了、坏了,有天晚上回到住处,疲惫到了极点,连打开电脑的力气都没有,一念间闪过一句古话,叫做抱薪救火,我这TMD就是抱着一捆柴往火坑里跳,越努力越快完蛋;当务之急是要从死磕的轮回里跳出来,确立一个指引工作的方法论。那一夜苦思只留下七字真言,我把这七个字写在办公室和住处的案头,瞅着对着摸着,结果后面两月工作顺了,领导赞了,产品服了,该拿的奖项也拿了,2shou也得以腾出时间写公众号,紧盯技术领域的新发展,闲暇时尽情享乐,简直痛快到不得了。你问哪七字真言?

目标比结果重要!目标比结果重要!目标比结果重要!

重要的事情说三遍。近期和不少技术人聊天,2shou发现这也是大家普遍存在的一个问题:因为忙无暇关注技术前沿;因为忙无暇写技术博客;因为忙无暇反思总结;因为忙无暇享受生活……我忍不住要呐喊出来,弟兄们,程序员可是一份用脑子的职业啊!2shou开始意识到把这七字真言,以及其衍生的四个小点分享出来是一个多么迫切的事情,迫切到比打鸡血更为重要,它将有助于推动程序员们去思考一个命题:怎样争取好的业绩,又不被累死?一点浅见,就当是一个小炮仗,希望在你的脑中炸开花来。

推荐系统从零到一

可以说是全拜谷歌吹起了「大数据」这阵春风,近几年业界对于数据挖掘人才的需求持续高涨,而推荐系统一直是数据挖掘岗位的必修课。一联系到数据挖掘,总会给人高深莫测的错觉,以为推荐系统也是数学神童的专属领域。万万没想到,自己并不是数据挖掘科班出身,也谈不上数学功底有多好(本科考高数也就在生死边缘),竟然也操刀了三个业务场景不同、用户规模千差万别、甚至连地域和文化也跨度很大的推荐系统,而且评价指标和用户反馈还颇为正面。可见推荐系统没有那么曲高和寡(至少不需要去进修个数学博士,笑),我相信如果一个出色的程序员理解了推荐系统的方法论,那么他就能在短时间内做出一个有实效的能提升平台活跃的推荐系统。

非典型的千万用户后台之路

三年前,原本我只是个不学无术的数据小码农,空有一腔热情;而当时公司也处在艰难的转型期,旧产品不见起色,新产品前途未卜。想见着也不可能用这么小的数据玩出花来,而新产品的数据也不是一时半会能成规模。还是本着最大限度学习的心思,鼓足勇气和老板提换岗,要去扛后台开发的大旗,最大程度参与到产品的一线去。一个小决定,换来的是整整半年的不眠之夜,眼见着第1个用户到第500万个用户,眼见着1台到4台再到10台服务器,眼见着后台业务由单一的播放到能播放能上传再到有完整的社交交互。从刚开始三天两头崩溃出事故,到最终一点不怕市场的同事搞拉新的活动,什么状况都能做到心中有数、遇事不慌。回头一想吓一大跳:自己并不是后台工程师科班出身,从来对语言和框架的争论无感无力,网络编程的基础知识更是差强人意,但是凭着小米步枪,凭着奇技淫巧,凭着持续思考和不断尝试,居然也能搭建起一个支撑千万级别用户的后台框架。总结那半年,留下了5条事关生死的建议,在这里泣血奉上。

就这样,再见2015

这是我人生的第一篇年度总结。以往也不是未曾萌发过这种念想,只是临到年终,总觉得有些心愿不曾了却,有些计划无疾而终,于是给自己找找借口:再多两个月,做完清单上的事情再写吧!然后就没有然后了。这两天找一个同事谈话,他有句话很是入心:糟糕就在那里,你不愿暴露它,不会改变任何的事情,它依旧糟糕。是的,我不写这篇年终总结,你们就看不到我这一年发生了什么,但是仍然不会改变这一年里的得与失。既然一年已到尽时,各位朋友且容我感性一把,写写这一年心路的变化,下面的文字,是务虚、是扯淡、是不着边际的梦中呓语。

Python绘制精美图表之双柱形图

图表是比干巴巴的表格更直观的表达,简洁、有力。工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数、活跃用户数、点击某个按钮的人数,并且通过邮件或者网页展示出来。当我们想关注比数值本身更多的信息(像数值的变化、对比或异常),图表就非常有用了。把数值转化为图片要依赖第三方库的帮忙,在Python之中最好的图表库叫matplotlib。(一直觉得,Python最大的优势就是丰富的第三方库,让你能轻易实现各种需求)

matplotlib,顾名思义就是提供了一整套和matlab相似的API,它的文档相当完备,示例页面提供了上百个图表的入门代码,可以说只有你想不到的,没有它做不到的。