标签归档:python

Python的七种武器

君子生非异也,善假于物也。

“物”能够延展英雄的能力。它是吕布的赤兔马,杨过的玄铁重剑,CS中的沙漠之鹰,曹操传中的凤凰羽衣。“物”也可用以治愈英雄,例如张无忌的黑玉断续膏,李逍遥的天香续命露,还有深夜里TVB的一碗面。

赤兔

对于不同的位面,有着不同的宝物定义。对古时文人来讲,笔墨纸砚,是当时具有生产力输出的四大工具。对程序员来讲,当代的“文房四宝”不外乎是:笔记本,大屏幕,机械键盘,人体工学椅,Google,Github这几种。特别是机械键盘和人体工学椅,它们是极为重要的“人机接口”。前者可以用来延展英雄的输出能力,后者可以用来治愈英雄的腰椎。

机械键盘

在数据领域也有类似的情况。一个数据项目,最重要的是定义问题,其次是拿到好的数据,再次是找到合适的方法,最不重要的可能就是选择一个工具了。但是看起来最形而下的工具,却是最具体而真实的“人数接口”。用一种顺手的工具来玩数据,我们会觉得比较舒服,输出效率更高。

市面上的分析工具大致分为两大类,菜单式的工具和命令行式的工具。前者适合于初学入门,类似于跟团旅游,提供了固定的路线。分析套路比较固定化,点几下鼠标就可以搞定也很省事。后者适合于老手玩家,类似于自由行,需要自己规划数据工作流,适用于自定义的灵活分析。大多数用户害怕命令行,然而使用命令行才能掌握真正的力量。命令行是Jedi的原力。

在命令行工具类别中,最耀眼的是R和Python这对双星。他们有非常多的相似之处,第一个相似之处是“快”。这种快不是纯计算速度快,而是从想法到结果的快。因为不论是探索数据还是建模,都需要各种尝试各种试错各种踩坑,如果要花2小时写代码,跑1分钟,不如花1分钟写程序,跑1小时。因为人的时间总是更为宝贵。第二个相似之处是扩展丰富。即有大量现成的函数模块。从想法到结果的快速实现,不能等待重新造轮子,另一方面,试错也要做很多复杂的自定义任务,将各种模块进行组合,调用各种外部交互接口,这两种开源工具都非常擅长。

二者的差异点在于Python是一种通用型编程工具,R专注于数据领域;R有更为丰富的专业统计函数,Python则长于机器学习;R有更好的可视化包,Python正在快速追赶;Python和R的核心语法非常简洁,一些R包的语法则兼收并蓄,错综复杂。当你有时间的时候,双修是最好的选择。因为这两种工具类似于筷子和勺子的区别,在不同场景下使用某种工具更为有效。

R语言这个工具与其生态系统,在统计之都上已经介绍得非常多了。下文简单介绍一下python的七个最为重要的数据分析模块,或者称之为七种武器。 继续阅读Python的七种武器

COS访谈第十八期:陈天奇

【COS编辑部按】 受访者:陈天奇      采访者:何通   编辑:王小宁

简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习。他曾获得KDD CUP 2012 Track 1第一名,并开发了SVDFeature,XGBoost,cxxnet等著名机器学习工具,是Distributed (Deep) Machine Learning Common的发起人之一。

3126784581353126432

何:你的本科在上海交大的ACM班就读,是怎么开始做机器学习研究的呢?

陈:我们当时的培养计划里面有一项,就是希望我们尽早地接触学术研究。于是我们在大二暑假就要开始进实验室了,在大三的暑假去微软亚研(MSRA)实习,于是我大二暑假去的是俞勇老师的实验室,当时戴文渊学长也在交大做迁移学习这一块的研究,所以我就跟着他了,也就是这个时候开始接触的机器学习。不过后面其实换了很多方向,因为戴文渊其实带了我半个学期就毕业了。后来我到微软实习做的是和广告相关的东西。之后实验室的一位老师建议我的毕设做深度学习。当时是2010年吧,深度学习还没有完全火起来的时候,整体的趋势是大家都在做无监督学习。当时实验室正好有一块比较老的显卡,我就开始写一些CUDA的程序。从毕设一直到研究生一年级我一直都在做无监督深度学习,也尝试过ImageNet,但是没有得到很好的结果。后来正好有KDD Cup这个机会,之后我们就逐渐往推荐系统的方向做了,因为2011和2012年的题目以推荐系统为主。

继续阅读COS访谈第十八期:陈天奇