机器学习
对于统计学习,机器学习算法层面,并不陌生,主要来看R与Python的实现机制
1 一般流程
数据处理,特征工程,机器学习模型构建,参数调优,模型选择,模型可视化,(模型测试,数据产品开发,模型线上化部署)
2.R中的机器学习实现样例
-
rattle,caret,mlr,e1071(Bayes,SVM),rpart,KlaR,kernlab,class,C50,neuralnet, ipred,randomForest,arules,cluster,fpc,mclust,MASS,kknn,RWeka,sampling,adabag, nnet,xgboost,lightgbm,etc.
-
R中主流的两套机器学习系统:rattle,caret,mlr,我们可能比较熟悉caret,Rattle底层也是调用caret只不过是有个GUI界面,适用于初学者(trainControl,expand.grid,train,predict),mlr是不同于caret的机器学习系统,mlr包对待各种学习算法和模型实现,有个基本的思路即:Create a Task,Make a learner,Train then.
-
reshape2,plyr,dpylr,tidyr,tidyverse,purrr,sqldf, etc.
-
ggplot2生态系统,lattice,rCharts,Rboken,recharts,ECharts2Shiny,CanvasXpress, etc.(htmlwidgets)
-
线上化部署:代码对接,R包开发,H2O,pumber包,r2pmml包,opencpu,etc.
3.Python中的机器学习实现样例
-
statsmodels,scikit-learn,Pylearn2,Shogun,PyBrain,imbalanced-learn,xgboost,lightgbm, etc.
-
常用的:statsmodel,sklearn
-
scipy,numpy,pandas,pandasql, etc.
-
matplotlib,bokeh,pyechart,seaborn,ggplot,plotly,etc.
-
线上化部署: 相对来说独立一些,可以做全套接口或系统。
4.差异与联系
- Python是一种通用的编程语言,R更偏向于统计分析
- R有更丰富的统计分析函数,机器学习模型,python长于机器学习
- R有更好的可视化包,Python正在进步
- Python与R的核心语法机都比较简单,语法上R更复杂一些
Python
import statsmodels as sm
result = sm.OLS(y,X).fit
R
result <- lm(y~x1+x2+x3,data = A)
R是函数到函数,Python是方法到方法
5.应用场景
- 算法研究R,生产实践Python