写在前面
在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。
如果大家还知道哪些常用的命令,也可以在评论中回复我。我可以添加进来,方便更多地人更方便的检索。也希望大家可以转载。
如果大家已经熟悉python和R的模块/包载入方式,那下面的表查找起来相对方便。python在下表中以模块.
的方式引用,部分模块并非原生模块,请使用
pip install *
安装;同理,为了方便索引,R中也以::
表示了函数以及函数所在包的名字,如果不含::
表示为R的默认包中就有,如含::
,请使用
install.packages("*")
安装。
连接器与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还可参见PyFlux
.
生存分析
类别 | Python | R |
---|
PH回归 | statsmodels.formula.api.phreg | 未知 |
专门分析的模块:
Python: Lifelines
机器学习类
回归
参见统计类
分类器
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 |
Assemble方法
类别 | 子类别 | Python | R |
---|
Bagging | 随机森林分类器 | sklearn.ensemble.RandomForestClassifier | randomForest::randomForest, party::cforest |
Bagging | 随机森林回归器 | sklearn.ensemble.RandomForestRegressor | randomForest::randomForest, party::cforest |
Boosting | Gradient Boosting | xgboost 模块 | xgboost 包 |
Boosting | AdaBoost | sklearn.ensemble.AdaBoostClassifier | adabag 、fastAdaboost 、ada |
Stacking | 未知 | 未知 | 未知 |
聚类
类别 | 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
包的设计并非在神经网络,所以不归于此类。
概率图模型
python: PyMC3
文本、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的服务包) |