Jimmy那些事儿

R转战Python

从R转战Python:这些包你一定要知道!

统计学习

  • R包glm,knn,randomForest,e1071 —> Python模块scikit-learn

R中机器学习算法被进行分割,然后以各种包的形式存放,这意味着除非具有单个(或一组)能够执行一些公共算法的机器学习库,否则每个算法都会存在单独的包中。看着这些复杂、但又很清楚的算法时感觉会有点不错,但当日复一日的在算法之间来回切换时,恐怕就会觉得不适了,Python中的scikit-learn模块很好的处理了这个问题。具体的说,scikit-learn提供了一组常见的ML算法,所有算法都在同一个API下,这使得LogisticRegression和GradientBoostingMachines之间可以直接切换。


数据处理

  • R包reshape/reshape2,plyr/dplyr —> Python模块 pandas

Pandas继承了R中数据变换的较好部分,并且把它转变成一个Python包。该包包括了python中数据框的实现以及修改和重构数据框的方法。基本上它继承了reshape/reshape2和plyr/dplyr并且python化它。


字符串

  • stringr -> nothing

stringr 实在是个神器。它写得很棒,性能也很好(至少我这么认为),而且很方便安装(不要小看这一点,如果人们无法安装你的软件,那么开发就没有意义)。关于stringr 的自卖自夸就结束了。好消息是Python的字符串功能很强大,你甚至不需要一个单独的字符串库!它有超棒的内置正则表达式库,re,和内置的字母串元库,叫string。你太幸运了,Python自带了全部字符串相关的功能。


动态报告

  • R包Knitr —> Python模块 Jupyter

Knitr是一种使用R创建可重现和高度可视化分析的好方法。它已经成为Rtudio中一种稳定的功能。在Python世界中,最类似的包是Jupyter。Jupyter笔记本提供了一个用于Python编程(和其他语言)的交互式环境,专注于再现和可视化—它甚至有针对于R的插件。


数据库连接

  • R包SQLdf—> Python模块 pandasql

Sqldf是SQL用户在熟练操作数据的伟大的方式。当我第一次开始学R时,我自己用的就是这个包。当时,Yhat实际上创建了类似的Python包,称为pandasql。相同的概念:对你的数据框写入SQL查询命令,获取数据框!