写在前面
在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。
如果大家还知道哪些常用的命令,也可以在评论中回复我。我可以添加进来,方便更多地人更方便的检索。也希望大家可以转载。
如果大家已经熟悉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的服务包) |