Python 和 R 数据分析/挖掘工具互查

854 查看

写在前面

在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。

如果大家还知道哪些常用的命令,也可以在评论中回复我。我可以添加进来,方便更多地人更方便的检索。也希望大家可以转载。

如果大家已经熟悉python和R的模块/包载入方式,那下面的表查找起来相对方便。python在下表中以模块.的方式引用,部分模块并非原生模块,请使用

安装;同理,为了方便索引,R中也以::表示了函数以及函数所在包的名字,如果不含::表示为R的默认包中就有,如含::,请使用

安装。

连接器与io

数据库

类别 Python R
MySQL mysql-connector-python(官方) RMySQL
Oracle cx_Oracle ROracle
Redis redis rredis
MongoDB pymongo RMongo, rmongodb
neo4j py2neo RNeo4j
Cassandra cassandra-driver RJDBC
ODBC pyodbc RODBC
JDBC 未知[Jython Only] RJDBC

IO类

类别 Python R
excel xlsxWriter, pandas.(from/to)_excel, openpyxl openxlsx::read.xlsx(2), xlsx::read.xlsx(2)
csv csv.writer read.csv(2), read.table
json json jsonlite
图片 PIL jpeg, png, tiff, bmp

统计类

描述性统计

类别 Python R
描述性统计汇总 scipy.stats.descirbe summary
均值 scipy.stats.gmean(几何平均数), scipy.stats.hmean(调和平均数), numpy.mean, numpy.nanmean, pandas.Series.mean mean
中位数 numpy.median, numpy.nanmediam, pandas.Series.median median
众数 scipy.stats.mode, pandas.Series.mode 未知
分位数 numpy.percentile, numpy.nanpercentile, pandas.Series.quantile quantile
经验累积函数(ECDF) statsmodels.tools.ECDF ecdf
标准差 scipy.stats.std, scipy.stats.nanstd, numpy.std, pandas.Series.std sd
方差 numpy.var, pandas.Series.var var
变异系数 scipy.stats.variation 未知
协方差 numpy.cov, pandas.Series.cov cov
(Pearson)相关系数 scipy.stats.pearsonr, numpy.corrcoef, pandas.Series.corr cor
峰度 scipy.stats.kurtosis, pandas.Series.kurt e1071::kurtosis
偏度 scipy.stats.skew, pandas.Series.skew e1071::skewness
直方图 numpy.histogram, numpy.histogram2d, numpy.histogramdd 未知

回归(包括统计和机器学习)

类别 Python R
普通最小二乘法回归(ols) statsmodels.ols, sklearn.linear_model.LinearRegression lm,
广义线性回归(gls) statsmodels.gls nlme::gls, MASS::gls
分位数回归(Quantile Regress) statsmodels.QuantReg quantreg::rq
岭回归 sklearn.linear_model.Ridge MASS::lm.ridge, ridge::linearRidge
LASSO sklearn.linear_model.Lasso lars::lars
最小角回归 sklearn.linear_modle.LassoLars lars::lars
稳健回归 statsmodels.RLM MASS::rlm

假设检验

类别 Python R
t检验 statsmodels.stats.ttest_ind, statsmodels.stats.ttost_ind, statsmodels.stats.ttost.paired; scipy.stats.ttest_1samp, scipy.stats.ttest_ind, scipy.stats.ttest_ind_from_stats, scipy.stats.ttest_rel t.test
ks检验(检验分布) scipy.stats.kstest, scipy.stats.kstest_2samp ks.test
wilcoxon(非参检验,差异检验) scipy.stats.wilcoxon, scipy.stats.mannwhitneyu wilcox.test
Shapiro-Wilk正态性检验 scipy.stats.shapiro shapiro.test
Pearson相关系数检验 scipy.stats.pearsonr cor.test

时间序列

类别 Python R
AR statsmodels.ar_model.AR ar
ARIMA statsmodels.arima_model.arima arima
VAR statsmodels.var_model.var 未知

生存分析

类别 Python R
PH回归 statsmodels.formula.api.phreg 未知

机器学习类

回归

参见统计类

分类器

LDA、QDA

类别 Python R
LDA sklearn.discriminant_analysis.LinearDiscriminantAnalysis MASS::lda
QDA sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis MASS::qda

SVM(支持向量机)

类别 Python R
支持向量分类器(SVC) sklearn.svm.SVC e1071::svm
非支持向量分类器(nonSVC) sklearn.svm.NuSVC 未知
线性支持向量分类器(Lenear SVC) sklearn.svm.LinearSVC 未知

基于临近

类别 Python R
k-临近分类器 sklearn.neighbors.KNeighborsClassifier 未知
半径临近分类器 sklearn.neighbors.RadiusNeighborsClassifier 未知
临近重心分类器(Nearest Centroid Classifier) sklearn.neighbors.NearestCentroid 未知

贝叶斯

类别 Python R
朴素贝叶斯 sklearn.naive_bayes.GaussianNB e1071::naiveBayes
多维贝叶斯(Multinomial Naive Bayes) sklearn.naive_bayes.MultinomialNB 未知
伯努利贝叶斯(Bernoulli Naive Bayes) sklearn.naive_bayes.BernoulliNB 未知

决策树

类别 Python R
决策树分类器 sklearn.tree.DecisionTreeClassifier tree::tree, party::ctree
决策树回归器 sklearn.tree.DecisionTreeRegressor tree::tree, party::tree
随机森林分类器 sklearn.ensemble.RandomForestClassifier randomForest::randomForest, party::cforest
随机森林回归器 sklearn.ensemble.RandomForestRegressor randomForest::randomForest, party::cforest

聚类

类别 Python R
kmeans scipy.cluster.kmeans.kmeans kmeans::kmeans
分层聚类 scipy.cluster.hierarchy.fcluster (stats::)hclust
包聚类(Bagged Cluster) 未知 e1071::bclust
DBSCAN sklearn.cluster.DBSCAN dbscan::dbsan
Birch sklearn.cluster.Birch 未知
K-Medoids聚类 pyclust.KMedoids(可靠性未知) cluster.pam

关联规则

类别 Python R
apriori算法 apriori(可靠性未知,不支持py3), PyFIM(可靠性未知,不可用pip安装) arules::apriori
FP-Growth算法 fp-growth(可靠性未知,不支持py3), PyFIM(可靠性未知,不可用pip安装) 未知

神经网络

类别 Python R
神经网络 neurolab.net, keras.* nnet::nnet, nueralnet::nueralnet
深度学习 keras.* 不可靠包居多以及未知

当然,theano模块值得一提,但本质theano包的设计并非在神经网络,所以不归于此类。

文本、NLP

基本操作

类别 Python R
tokenize nltk.tokenize(英), jieba.tokenize(中) tau::tokenize
stem nltk.stem RTextTools::wordStem, SnowballC::wordStem
stopwords stop_words.get_stop_words tm::stopwords, qdap::stopwords
中文分词 jieba.cut, smallseg, Yaha, finalseg, genius jiebaR
TFIDF gensim.models.TfidfModel 未知

主题模型

类别 Python R
LDA lda.LDA, gensim.models.ldamodel.LdaModel topicmodels::LDA
LSI gensim.models.lsiModel.LsiModel 未知
RP gensim.models.rpmodel.RpModel 未知
HDP gensim.models.hdpmodel.HdpModel 未知

值得留意的是python的新第三方模块,spaCy

与其他分析/可视化/挖掘/报表工具的交互

类别 Python R
weka python-weka-wrapper RWeka
Tableau tableausdk Rserve(实际是R的服务包)