Python 和 R 資料分析/挖掘工具互查

發表於2016-05-16

寫在前面

在此總結一些在資料分析/挖掘中可能用到的功能,方便大家索引或者從一種語言遷移到另一種。當然,這篇部落格還會隨時更新(不會另起一篇,為了方便大家索引),請大家如果有需要收藏到書籤中。

如果大家還知道哪些常用的命令,也可以在評論中回覆我。我可以新增進來,方便更多地人更方便的檢索。也希望大家可以轉載。

如果大家已經熟悉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的服務包)

相關文章