本内容为【科研私家菜】R语言机器学习与临床预测模型系列课程
你想要的R语言学习资料都在这里, 快来收藏关注【科研私家菜】
01. R语言机器学习包
mlr 包
mlr包提供了一个一般化、清洗易用涵盖分类、回归、生存分析、聚类等功能的可扩展机器学习工作框架。它也提供了一个对于160多个基础学习包的统一接口,包括了“元算法”和模型选择技术,并扩展了基本学习算法的功能,比如超参数调参、特征选择、集成结构等。同时并行化计算也是其天然支持的一项技能。(引用于mlr:Machine Learning in R)
https://zhuanlan.zhihu.com/p/25595297
caret 包
caret包蕴含了太多的数据分析和挖掘的功能,集成了上百种分类和回归算法。
https://zhuanlan.zhihu.com/p/30616837
mlr3verse 包
mlr3verse 是最新、最先进的 R 机器学习框架,它基于面向对象R6 语法和 data.table 底层数据流(速度超快),支持future 并行,支持搭建"图"流学习器,理念非常先进、功能非常强大。mlr3verse 整合了各种机器学习算法包,实现了统一、整洁的机器学习流程化操作,足以媲美 Python 的 scikit-learn 机器学习库.
mlr3verse 核心包包括:
mlr3: 机器学习
mlr3db: 操作后台数据库
mlr3filter: 特征选择
mlr3learners: 机器学习学习器
mlr3pipelines: 特征工程,搭建图流学习器
mlr3tuning: 超参数调参
mlr3viz: 可视化
paradox: 模型解释
tidymodels 包
tidymodels 是与 tidyverse 一脉相承的 "管道流" R 机器学习框架,提供了统一的统计学习、机器学习算法接口。
tidymodels 核心包包括:
parsnip: 定义模型
recipes: 数据预处理和特征工程
rsample: 重抽样
yardstick: 评估模型性能
dials: 定义调参空间
tune: 超参数调参
workflows: 构建建模工作流
02. 常用机器学习包
1. survival
简介:survival是目前用的最多的做生存分析的包,
Surv:用于创建生存数据对象,survfit:创建KM生存曲线或是Cox调整生存曲线,
survdiff:用于不同组的统计检验,
coxph:构建COX回归模型,
cox.zph:检验PH假设是否成立,
survreg:构建参数模型,包括Km和cox分析。
2. glmnet
简介:glmnet是做lasso分析的R包,包括二分类logistic回归模型,多分类logistic回归模型,Possion模型,Cox比例风险模型,svm模型,是目前用的最多的lasso分析的包,简单易用,通过选择1se lambda为最优参数,广泛应用在筛选基因的研究中。
3. randomForests
简介:randomForest 包提供了利用随机森林算法解决分类和回归问题的功能。使用起来比较简单,其中randomForest()函数用于构建随机森林模型,importance()函数用于计算模型变量的重要性,MDSplot()函数用于实现随机森林的可视化,rfImpute()函数可为存在缺失值的数据集进行插补(随机森林法),得到最优的样本拟合值,treesize()函数用于计算随机森林中每棵树的节点个数。
4. rms
简介:全称是recession modeling strategy,包如其名,Harrell教授给我们提供了大量的好用便捷的函数进行建模及模型的评价与检验!最有名的是该包最先提供了画列线图函数,这几乎是现在模型可视化必备!
5. e1071
简介:e1071是用于做支持向量机分析的R包,SVM旨在多维空间中找到一个超平面(hyperplane),该平面能够将全部对象分成最优的两类,其实也可以多类,但是效果不是很好。e1071名字比较特殊简单,但是功能绝对强大,包括优化的tune.svum,包括了多种核函数,简单方便。
6. 回归包 Logistic
简介:当通过一系列连续型或类别型预测变来预测二值型结果变量时,Logistic回归是一个非常有用的工具。Logistic 回归是二分类任务的首选方法。它输出一个 0 到 1 之间的离散二值结果。简单来说,它的结果不是 1 就是 0。
7. caret
简介:caret包全称是(Classificationand Regression Training),应用之一就是数据预处理,比如我们常用的拆分训练集和验证集。caret包应用之二:特征选择,比如我们的svm-rfe这种特征选择就是可以帮助我们在svm的基础上进行选择最重要的特征,弥补e1071包的不租,caret包还可以参与建模与参数优化和模型预测与检验,里面功能很强大。
8. kmeans聚类
简介:k(均值)聚类属于扁平聚类算法,即进行一层划分得到k个簇,与层次聚类算法开始不需要决定簇数不同,k均值聚类需要用户事先确定好簇个数,因为构建一颗聚类树是非常耗时的事情,所以k均值聚类算法的效率要优于层次聚类。可使用ggfortify包进行聚类结果的可视化展示。
9. nnet
简介:如果你做过多分类的变量的相关模型的分析,那么你一定用过nnet包,它可以帮助你设置哑变量。另外nnet还是一个人工神经网络的算法包,该算法提供了传统的前馈反向传播神经网络算法的实现。一个nnet函数就可以实现神经网络的构建,整个过程会一直重复直至拟合准则值与衰减项收敛。
10. rpart
简介:rpart是RecursivePartitioning and Regression Trees的简称,rpart可以用于决策树的构建,修剪,图形展示,plotcp函数可视化或者printcp函数选取合适cp值。R语言中关于决策树建模,最为常用的有两个包,一个是rpart包,另一个是party包,rpart还更友好,结果简单明了些。
11. mlr
简介:mlr包就是类似python的sklearn库。囊括盖分类、回归、生存分析、聚类等功能的可扩展机器学习工作框架。提供了一个对于160多个基础学习包的统一接口,包括了“元算法”和模型选择技术,并扩展了基本学习算法的功能,比如超参数调参、特征选择、集成结构等。同时并行化计算也是其天然支持的一项技能。虽然Caret包和CMA包融入了数据预处理和变量选择方法,但是MLR可以无缝同时用这些方法进行调节。
12. gbm
简介:gbm包是梯度提升回归树的实现。梯度提升回归树缩写是GBRT,全称是Gradient Boosting Regression Tree, 有时也叫做GBDT,是一个树形算法,数据无需归一化,其实用起来非常想glmet这个包,方法包括OOB,test,cv,一般选择cv就行,可以方便的选择选择最适的回归树个数。
13. nlme
简介:是R语言安装时默认的包,可以分析分层的线性混合模型和非线性模型。并且可以处理更复杂的线性和非线性模型,可以定义方差协方差结构,可以在广义线性模型中定义几种分布函数和连接函数。
14. ASReml-R
简介:这个R包是一个主要用来做遗传分析的R包,包括多年份平衡与不平衡试验数据分析,重复测量数据分析,平衡与不平衡试验设计数据分析,遗传参数评估等,替代了ASReml这个软件,这个软件本来原来也是替代SAS和SPSS的部分功能。
15. Mass
简介:其实是为了介绍一种降维算法——LDA线性判别分析,LDA可以通过Mass包来建模。LDA和PCA都是线性降维技术,通用的LDA与PCA相似,但是除了找到使数据方差最大的成分轴外,还对最大化多个类之间距离的轴感兴趣。此外,PCA属于“无监督”算法,降维时不关注数据的分类,目标是找到代表数据集最大化方差方向的一系列特征向量,也就是主成分,但是LDA属于“有监督”聚类,不仅关注类别关系,还可以通过线性判别式定义一系列表示最大化类别之间距离的正交轴。
16. kernlab
简介:这个R包是一个主要用来做SVM的R包,功能类似e1071,使用bsvm和libsvm库中的优化方法,得以实现svm算法。对于分类,有C-SVM分类算法和v-SVMz这2类分类算法,并且还包括C分类器的有界约束的版本。对于回归,提供了2种回归方法,ε-SVM、v-SVM回归算法。对于多类分类,有一对一方法和原生多类分类方法。
17. mboost
简介:mboost包提供基于提升(boosting)的机器学习算法和模型。可以用于用于广义线性、加性和非参数模型的可扩展的boosting框架。大概是3步完成,首先是最小乘方或者回归树作为基本学习器;
然后梯度下降算法(提升)用于优化通用的风险函数,最后对于潜在的高维数据拟合通用的线性、可加性和交互性模型。
18. xgboost
简介:XGBoost 是Extreme Gradient Boosting 的缩写,在竞赛平台Kaggle很流行。xgboost包使用efficient trees作为基学习器来实现tree-based boosting。XGBoost 算法是一种现在在数据科学竞赛的获胜方案很流行的算法,一般不管怎么样,都先用这个方法来一次看看效果,一般都不错。XGBoost仅适用于数值型向量,我们可以利用热编码转换。
19. vegan
vegan 包是由芬兰Oulu大学生物系Oksanen等几位数量生态学者编写的R包。Vegan包提供各种群落生态学分析工具,包括常用的PCA,DCA,RDA和CCA等方法,并且打包好了关于这些方法的计算和检验的代码,甚至还包括了大部分多元分析方法,操作简便,代码简单。
20. CatBoost
简介:CatBoost全称是CategoricalBoosting,该算法类似于XGBoost,LightGBM的Gradient Boosting算法,这个算法的创新之处主要是,首先对于离散特征值的处理,采用了ordered TS(target statistic)的方法。第二是提供了两种训练模式:Ordered和Plain。里面主要包括catboost.train、catboost.predict、calc_accuracy等函数。
21. h2o包
简介:通过连接外部服务器,支持R语言和GPU结合加速深度学习。现目前R语言应用在深度学习的相关包数量不多,h2o支持多线程分析,加快深度学习的运行速度。是人工神经网络ANN分析的利器。使用h2o.init()连接到h2o平台,然后就可以开始深度学习了
03. 参考资料:
R语言︱常用统计方法包+机器学习包(名称、简介) - 哔哩哔哩 (bilibili.com)
https://www.zhihu.com/question/403123109/answer/1304932701
关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型