维护者 | Torsten Hothorn |
联系方式 | Torsten.Hothorn at R-project.org |
版本 | 2023-07-20 |
URL | https://CRAN.R-project.org/view=MachineLearning |
源代码 | https://github.com/cran-task-views/MachineLearning/ |
贡献 | 欢迎对本任务视图提出建议和改进,可以通过 GitHub 上的问题或拉取请求,或通过电子邮件发送给维护者地址。有关更多详细信息,请参阅 贡献指南. |
引用 | Torsten Hothorn (2023). CRAN 任务视图:机器学习与统计学习。版本 2023-07-20。URL https://CRAN.R-project.org/view=MachineLearning. |
安装 | 可以使用 ctv 包自动安装本任务视图中的包。例如,ctv::install.views("MachineLearning", coreOnly = TRUE) 安装所有核心包,或 ctv::update.views("MachineLearning") 安装所有尚未安装和更新的包。有关更多详细信息,请参阅 CRAN 任务视图计划. |
一些附加包实现了计算机科学和统计学之间边界领域中发展出的想法和方法——这个研究领域通常被称为机器学习。这些包可以大致分为以下主题
递归划分: 基于树结构的模型,用于回归、分类和生存分析,遵循 CART 书籍中的思想,在 rpart(随基础 R 一起提供)和 tree 中实现。推荐使用 rpart 包来计算类似 CART 的树。在 Weka 中提供了丰富的划分算法工具箱,RWeka 包提供了对该实现的接口,包括 C4.5 的 J4.8 变体和 M5。 Cubist 包拟合基于规则的模型(类似于树),在终端叶节点中使用线性回归模型,并进行基于实例的校正和提升。 C50 包可以拟合 C5.0 分类树、基于规则的模型以及这些模型的提升版本。 pre 可以为更广泛的响应变量类型拟合基于规则的模型。
在 party 和 partykit 包中实现了两种具有无偏变量选择和统计停止准则的递归划分算法。ctree()
函数基于非参数条件推断程序,用于测试响应和每个输入变量之间的独立性,而 mob()
可以用于划分参数模型。在 party 和 partykit 包中也提供了可扩展的工具,用于可视化二叉树和响应的节点分布。可以使用 glmertree 包对混合效应模型 (GLMM) 进行划分;可以使用 semtree 包对结构方程模型 (SEM) 进行划分。 maptree 包提供了用于可视化树的图形工具。
RPMM 执行混合模型的划分。
partykit 包实现了用于表示树的计算基础设施以及统一的预测和可视化方法。该基础设施被 evtree 包用于实现全局最优树的进化学习。生存树在各种包中可用。
针对异质性治疗效果的亚组识别树在 partykit、model4you、dipm、quint、pkg("SIDES")
、pkg("psica")
和 pkg("MrSGUIDE")
(以及可能更多)包中可用。
svm()
提供了与 LIBSVM 库的接口,包 kernlab 实现了一个灵活的框架,用于核学习(包括 SVM、RVM 和其他核学习算法)。包 klaR 提供了与 SVMlight 实现的接口(仅适用于一对多分类)。tune()
,函数 errorest()
(ipred) 可用于误差率估计。支持向量机的成本参数 C 可以利用包 svmpath 的功能进行选择。用于交叉验证和其他重采样方案的数据分割在 splitTools 包中提供。包 nestedcv 为 glmnet 和 caret 模型提供嵌套交叉验证。用于 ROC 分析和其他可视化技术的函数,用于比较候选分类器,可从包 ROCR 获取。包 hdi 和 stabs 为一系列模型实现了稳定性选择,hdi 还提供高维模型中的其他推断程序。stats::termplot()
函数包可用于绘制模型中的项,其预测方法支持 type="terms"
。 effects 包为具有线性预测器(例如,线性模型和广义线性模型)的模型提供图形和表格效果显示。 Friedman 的部分依赖图 (PDP) 是预测函数的低维图形渲染,在一些包中实现。 gbm、randomForest 和 randomForestSRC 提供了他们自己的用于显示 PDP 的函数,但仅限于使用这些包拟合的模型(来自 randomForest 的函数 partialPlot
更加有限,因为它一次只允许一个预测变量)。包 pdp、plotmo 和 ICEbox 更加通用,允许为各种机器学习模型(例如,随机森林、支持向量机等)创建 PDP;pdp 和 plotmo 都支持多变量显示(plotmo 仅限于两个预测变量,而 pdp 使用格子图形来显示涉及三个预测变量的 PDP)。默认情况下,plotmo 将背景变量固定在其中位数(或因子中的第一个级别),这比构建 PDP 更快,但包含的信息更少。 ICEbox 专注于构建单个条件期望 (ICE) 曲线,这是对 Friedman 的 PDP 的改进。 ICE 曲线以及居中 ICE 曲线也可以使用来自 pdp 包的 partial()
函数构建。XAI:上一节“可视化”中的大多数包和函数都属于可解释人工智能 (XAI) 领域。元包 DALEX 和 iml 提供了不同的方法来解释任何模型,包括部分依赖、累积局部效应和置换重要性。累积局部效应图也可以直接在 ALEPlot 中获得。SHAP(来自 *SH*apley *A*dditive ex*P*lanations)是解释 ML 模型最常用的技术之一。它以公平的方式将预测分解为预测变量的累加贡献。对于基于树的模型,存在非常快的 TreeSHAP 算法。它直接与 h2o、xgboost 和 lightgbm 一起提供。SHAP 的模型无关实现可在其他包中获得:fastshap 主要使用蒙特卡罗采样来近似 SHAP 值,而 shapr 和 kernelshap 提供了 KernelSHAP 的实现。这些包中的任何一个的 SHAP 值都可以由包 shapviz 绘制。对 Python 的“shap”包的移植在 shapper 中提供。预测的替代分解在 lime 和 iBreakDown 中实现。
核心 | abess,e1071,gbm,kernlab,mboost,nnet,randomForest,rpart. |
常规 | adabag, ahaz, ALEPlot, arules, BART, bartMachine, BayesTree, BDgraph, Boruta, bst, C50, caret, CORElearn, Cubist, DALEX, deepnet, dipm, DoubleML, earth, effects, elasticnet, evclass, evreg, evtree, fastshap, frbs, gamboostLSS, glmertree, glmnet, glmpath, GMMBoost, grf, grplasso, grpreg, h2o, hda, hdi, hdm, iBreakDown, ICEbox, iml, ipred, islasso, joinet, kernelshap, klaR, lars, LiblineaR, lightgbm, lime, maptree, mlpack, mlr3, model4you, mpath, naivebayes, ncvreg, nestedcv, OneR, opusminer, pamr, party, partykit, pdp, penalized, picasso, plotmo, pre, qeML, quantregForest, quint, randomForestSRC, ranger, Rborist, rgenoud, RGF, RLT, Rmalschains, rminer, ROCR, RoughSets, RPMM, RSNNS, RWeka, RXshrink, sda, semtree, shapper, shapr, shapviz, SIS, splitTools, ssgraph, stabs, SuperLearner, svmpath, tensorflow, tgp, tidymodels, torch, tree, trtf, varSelRF, wsrf, xgboost. |
已归档 | penalizedLDA,RcppDL. |