原标题:R语言 | 一网打尽高质量统计分析与机器学习包
146+72本期刊《SCI期刊分析+选刊网站》免费领
解螺旋公众号·陪伴你科研的第2232天
常用统计方法包+机器学习包(名称、简介)
本文简要盘点一下关于统计分析与机器学习的R包,并通过简要介绍包的特点来帮助读者深入理解可视化包。
话不多说我们一起来看看吧!
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函数用于计算随机森林中每棵树的节点个数。
缺点:据我所知这是用R做随机森林最常用(可能是唯一)的R包,比用python容易上手,硬要说缺点的话就是图形美观度,但可以后期AI调整。
4. rms
简介:全称是recession modeling strategy,包如其名,Harrell教授给我们提供了大量的好用便捷的函数进行建模及模型的评价与检验!最有名的是该包最先提供了画列线图函数,这几乎是现在模型可视化必备!
缺点:有一些图形函数参数不够!
5. e1071
简介:e1071是用于做支持向量机分析的R包,SVM旨在多维空间中找到一个超平面(hyperplane),该平面能够将全部对象分成最优的两类,其实也可以多类,但是效果不是很好。e1071名字比较特殊简单,但是功能绝对强大,包括优化的tune.svum,包括了多种核函数,简单方便。
缺点:缺乏特征选择的功能。
6. 回归包 Logistic
简介:当通过一系列连续型或类别型预测变来预测二值型结果变量时,Logistic回归是一个非常有用的工具。Logistic 回归是二分类任务的首选方法。它输出一个 0 到 1 之间的离散二值结果。简单来说,它的结果不是 1 就是 0。
缺点:我们不能用 logistic 回归来解决非线性问题,因为它的决策面是线性的。
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还更友好,结果简单明了些。
缺点:优化速度,然后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回归算法。对于多类分类,有一对一方法和原生多类分类方法。
缺点:同样可以考虑把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等方法,并且打包好了关于这些方法的计算和检验的代码,甚至还包括了大部分多元分析方法,操作简便,代码简单。
缺点: 图片真的丑,速度也挺慢,可以出来结果后用ggplot2重新可视化结果。
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平台,然后就可以开始你的深度学习之旅了~
缺点:对于卷积神经网络建模方法仍然不能很好的使用。
责任编辑: