Py学习  »  机器学习算法

CRAN 任务视图:机器学习与统计学习

灵活胖子的科研进步之路 • 2 周前 • 60 次点击  

CRAN 任务视图:机器学习与统计学习

首页截图
首页截图
项目
详情
维护者
Torsten Hothorn、Hannah Frick、Lucas Kook
联系方式
Torsten.Hothorn at R-project.org
版本
2025-06-24
网址
https://CRAN.R-project.org/view=MachineLearning
来源
https://github.com/cran-task-views/MachineLearning/
贡献方式
非常欢迎对本任务视图提出建议和改进,可通过 GitHub 上的 issues 或 pull requests,或发送电子邮件至维护者邮箱。详情参见《贡献指南》。
引用格式
Torsten Hothorn, Hannah Frick, Lucas Kook (2025). CRAN Task View: Machine Learning & Statistical Learning. Version 2025-06-24. URL https://CRAN.R-project.org/view=MachineLearning.
安装
本任务视图中的包可通过 ctv 包自动安装。例如,ctv::install.views("MachineLearning", coreOnly = TRUE) 可安装所有核心包,ctv::update.views("MachineLearning") 可安装所有尚未安装且为最新版本的包。更多详情参见 CRAN 任务视图计划。

多个附加包实现了计算机科学与统计学交叉领域的理念和方法——这一研究领域通常被称为机器学习。这些包大致可分为以下主题:

神经网络与深度学习

  • 单隐藏层神经网络在 nnet 包中实现(随基础 R 一同发布)。
  • RSNNS 包提供了与斯图加特神经网络模拟器(SNNS)的接口。
  • 实现深度学习神经网络的包包括:
    • deepnet(前馈神经网络、受限玻尔兹曼机、深度信念网络、堆叠自编码器)
    • h2o(前馈神经网络、深度自编码器)
  • tensorflow 包提供了与 TensorFlow 的接口。
  • torch 包实现了与 libtorch 库的接口。
  • mlr3torch 将 torch 集成到 mlr3 生态系统中。
  • evreg(已归档)中实现的 ENNreg 证据回归神经网络模型可量化预测不确定性。

递归分区

  • 遵循《CART 手册》理念的回归、分类和生存分析树结构模型在以下包中实现:
    • rpart(随基础 R 一同发布,推荐用于计算类 CART 树)
    • tree
  • Weka 提供了丰富的分区算法工具箱,RWeka 包提供了与该实现的接口,包括 C4.5 的 J4.8 变体和 M5。
  • Cubist 包拟合基于规则的模型(类似树),在终端叶中包含线性回归模型、基于实例的校正和 boosting。
  • C50 包可拟合 C5.0 分类树、基于规则的模型及其增强版本。
  • pre 包可为更广泛的响应变量类型拟合基于规则的模型。

两个具有无偏变量选择和统计停止准则的递归分区算法在以下包中实现:

  • party 和 partykit 中的 ctree() 基于非参数条件推断程序,用于测试响应与每个输入变量之间的独立性;mob() 可用于分区参数模型。

  • party 和 partykit 中还提供了用于可视化二叉树和响应节点分布的可扩展工具。

  • 混合效应模型(GLMMs)的分区可通过 glmertree 包执行;结构方程模型(SEMs)的分区可通过 semtree 包执行。

  • maptree 包提供了树可视化的图形工具。

  • RPMM 执行混合模型的分区。

  • partykit 中实现了用于表示树的计算基础设施以及统一的预测和可视化方法,该基础设施被 evtree 包用于实现全局最优树的进化学习。

  • 多个包中提供了生存树。

  • 用于识别异质性处理效应亚组的树在以下包中可用:

    • partykit、model4you、dipm、quint、SIDES、psica(可能还有更多)。

随机森林

  • 用于回归和分类的随机森林算法参考实现在 randomForest 包中。
  • ipred 包提供回归、分类和生存分析的 bagging,以及通过集成学习组合多个模型的 bundling。
  • party 包中实现了一种基于条件推断树的随机森林变体,适用于任意尺度测量的响应变量。
  • randomForestSRC 统一处理 Breiman 随机森林,适用于生存、回归和分类问题。
  • quantregForest 允许通过随机森林方法将数值响应的分位数回归到探索性变量上。
  • 对于二元数据,varSelRF 和 Boruta 包专注于通过随机森林算法进行变量选择。
  • ranger 和 Rborist 包提供了与快速 C++ 随机森林实现的 R 接口。
  • RLT 包中实现了强化学习树,其特点是在树的后续节点中重要的变量上进行分裂。
  • wsrf 实现了一种替代变量加权方法,用于变量子空间选择,替代传统的随机变量抽样。
  • RGF 包是与 Python 实现的正则化贪婪森林程序的接口。
  • 用于参数模型的随机森林(包括用于估计预测分布的森林)在以下包中可用:
    • trtf(预测转换森林,可能在删失和截断情况下)
    • grf(广义随机森林的实现)

正则化和收缩方法

  • 具有参数估计约束的回归模型可通过 lars 包拟合。
  • grplasso 包提供组参数同时更新的 Lasso(组 Lasso);grpreg 包实现了多种其他组惩罚模型,如组 MCP 和组 SCAD。
  • glmpath 包中的函数可获取广义线性模型和 Cox 模型的 L1 正则化路径;glmnet 包可获取线性回归、逻辑回归和多项逻辑回归模型的完整 Lasso 或弹性网正则化路径(也在 elasticnet 中)。
  • easy.glmnet 是支持 glmnet 使用的辅助包。
  • penalized 包提供了 Lasso(L1)和岭(L2)惩罚回归模型(GLM 和 Cox 模型)的替代实现。
  • RXshrink 包可生成 TRACE 显示,在误差为 IID 正态时通过最大似然或最小 MSE 风险识别收缩程度。
  • ahaz 包提供 Lasso 惩罚下的半参数加性风险模型。
  • pamr 包中实现了收缩质心分类器和基因表达分析工具。
  • earth 包中提供了多元自适应回归样条的实现。
  • hda 和 sda 包中实现了各种形式的惩罚判别分析。
  • LiblineaR 包提供了与 LIBLINEAR 库的接口。
  • ncvreg 包使用坐标下降算法拟合 SCAD 和 MCP 回归惩罚下的线性和逻辑回归模型。
  • hdm 估计非高斯和异方差误差下的 Lasso,还包含高维设置中 Lasso 回归低维成分和估计处理效应的推断。
  • SIS 包在广义线性和 Cox 模型中实现可靠独立性筛选。
  • joinet 包提供相关结果的弹性网。
  • mpath 包通过共轭算子的复合优化拟合稳健惩罚广义线性模型和稳健支持向量机。
  • islasso 包基于诱导平滑思想实现 Lasso,允许获取所有模型参数的可靠 p 值。
  • abess 包提供基于快速多项式时间算法的线性、逻辑、Cox 和其他回归模型的最佳子集选择。

Boosting 和梯度下降

  • 多种形式的梯度提升在 gbm 包中实现(基于树的函数梯度下降 boosting)。
  • lightgbm 和 xgboost 包使用高效树作为基学习器,实现基于树的 boosting,适用于多种且可自定义的目标函数。
  • bst 包中的 boosting 实现优化 hinge 损失。
  • mboost 包提供广义线性、加性和非参数模型的可扩展 boosting 框架。
  • GMMBoost 包中实现了混合模型的基于似然的 boosting。
  • gamboostLSS 可使用 boosting 拟合 GAMLSS 模型。
  • adabag 包实现经典 AdaBoost 算法,并增加了变量重要性等功能。

支持向量机和核方法

  • e1071 包中的 svm() 函数提供了与 LIBSVM 库的接口;kernlab 包实现了灵活的核学习框架(包括 SVM、RVM 和其他核学习算法)。
  • klaR 包提供与 SVMlight 实现的接口(仅用于一对多分类)。
  • gKRLS 包具有广义核正则化最小二乘,适用于非高斯数据,以及随机效应、样条和非正则化固定效应。

贝叶斯方法

  • 贝叶斯加法回归树(BART)中,最终模型定义为多个弱学习器的总和(类似于集成方法),在以下包中实现:
    • BayesTree、BART、bartMachine
  • tgp 包提供贝叶斯非平稳、半参数非线性回归和树状高斯过程设计,包括贝叶斯 CART 和树状线性模型。
  • BDgraph 包中实现了多元连续、离散和混合数据的无向图形模型贝叶斯结构学习;基于 spike-and-slab 先验的相应方法在 ssgraph 包中可用。
  • naivebayes 包中提供朴素贝叶斯分类器。

使用遗传算法的优化

  • rgenoud 包提供基于遗传算法的优化程序。
  • Rmalschains 包实现带局部搜索链的模因算法,这是一种特殊类型的进化算法,结合稳态遗传算法和局部搜索进行实值参数优化。

关联规则

  • arules 包提供高效处理稀疏二元数据的数据结构,以及与 Apriori 和 Eclat 实现的接口,用于挖掘频繁项集、最大频繁项集、闭合频繁项集和关联规则。
  • opusminer 包提供与 OPUS Miner 算法(C++ 实现)的接口,用于高效查找交易数据中的关键关联(以自足项集的形式),使用杠杆率或提升度。

模糊规则系统

  • frbs 包实现了多种从数据学习模糊规则系统的标准方法,适用于回归和分类。
  • RoughSets 包在单个包中全面实现了粗糙集理论(RST)和模糊粗糙集理论(FRST)。

模型选择和验证

  • e1071 包中的 tune() 函数用于超参数调优;ipred 包中的 errorest() 可用于错误率估计。
  • svmpath 包的功能可用于选择支持向量机的成本参数 C。
  • splitTools 包提供交叉验证和其他重采样方案的数据分割。
  • nestedcv 包为 glmnet 和 caret 模型提供嵌套交叉验证。
  • ROCR 包提供 ROC 分析和其他用于比较候选分类器的可视化技术。
  • hdi 和 stabs 包为一系列模型实现稳定性选择,hdi 还提供高维模型中的其他推断程序。

因果机器学习

  • DoubleML 包是双机器学习框架的面向对象实现,适用于多种因果模型。基于 mlr3 生态系统,因果效应的估计可基于大量机器学习方法。

其他程序

  • evclass 包中的证据分类器使用 Dempster-Shafer 质量函数量化测试模式类别的不确定性。
  • OneR 包提供一种分类算法,增强了对缺失值和数值数据的复杂处理,以及广泛的诊断功能。
  • mlr3inferr 允许使用基于重采样的推断方法构建泛化误差的置信区间。

元包

  • tidymodels 包提供构建预测模型的各种函数,包括参数调优和变量重要性度量。
  • 类似地,mlr3 包提供与各种统计和机器学习包的高级接口。
  • SuperLearner 包实现类似的工具箱。
  • h2o 包实现一个通用机器学习平台,具有许多流行算法的可扩展实现,如随机森林、GBM、GLM(带弹性网正则化)和深度学习(前馈多层网络)等。
  • mlpack 包提供与 mlpack C++ 库的接口。
  • CORElearn 实现相当广泛的一类机器学习算法,如最近邻、树、随机森林和几种特征选择方法。
  • 类似地,rminer 包接口其他包中实现的几种学习算法,并计算几种性能度量。
  • qeML 包为众多机器学习 R 包提供包装器,具有简单、方便和统一的接口,适用于初学者和高级操作(如 FOCI 和 ncvreg)。

可视化(最初由 Brandon Greenwell 贡献)

  • stats::termplot() 函数可用于绘制预测方法支持 type="terms" 的模型中的项。
  • effects 包为具有线性预测器的模型(如线性和广义线性模型)提供图形和表格效应显示。

弗里德曼部分依赖图(PDPs)是预测函数的低维图形呈现,在几个包中实现:

  • gbm、randomForest 和 randomForestSRC 提供自己的 PDPs 显示函数,但仅限于用这些包拟合的模型(randomForest 中的 partialPlot 函数更有限,因为它一次只允许一个预测器)。
  • pdp、plotmo 和 ICEbox 更通用,允许为各种机器学习模型(如随机森林、支持向量机等)创建 PDPs;pdp 和 plotmo 支持多变量显示(plotmo 限于两个预测器,而 pdp 使用格子图形显示涉及三个预测器的 PDPs)。
  • 默认情况下,plotmo 将背景变量固定在其中位数(或因子的第一水平),这比重建 PDPs 更快,但包含的信息更少。
  • ICEbox 专注于构建个体条件期望(ICE)曲线,这是对弗里德曼 PDPs 的改进。
  • pdp 包中的 partial() 函数也可构建 ICE 曲线以及中心化 ICE 曲线。

XAI(可解释人工智能)

上一节“可视化”中的大多数包和函数都属于可解释人工智能(XAI)领域。

  • DALEX 和 iml 元包提供不同的模型解释方法,包括部分依赖、累积局部效应和置换重要性。
  • ALEPlot(已归档)中也直接提供累积局部效应图。

SHAP(来自 SHapley 可加解释)是解释机器学习模型最常用的技术之一。它以公平的方式将预测分解为预测器的可加贡献。

  • 对于基于树的模型,存在非常快的 TreeSHAP 算法,直接随 h2o、xgboost 和 lightgbm 提供。

  • 其他包中提供与模型无关的 SHAP 实现:

    • fastshap 主要使用蒙特卡洛采样来近似 SHAP 值
    • shapr 和 kernelshap 提供 KernelSHAP 的实现
  • shapviz 包可绘制这些包中任何一个的 SHAP 值。

  • shapper 包提供与 Python“shap”包的端口。

  • lime 和 iBreakDown 中实现了预测的替代分解。

性能评估

mlr3measures、yardstick、MLmetrics 和 SLmetrics 提供大量机器学习任务的分类、回归和聚类度量:

  • mlr3measures 是 mlr3verse 框架的一部分
  • yardstick 基于 tidyverse 构建,用于 tidymodels 框架
  • MLmetrics 和 SLmetrics 分别是基于基础 R 和 C++ 构建的独立包。

CRAN 包

类别
包名
核心
abess、e1071、gbm、kernlab、mboost、nnet、randomForest、rpart
常规
adabag、ahaz、arules、BART、bartMachine、BayesTree、BDgraph、Boruta、bst、C50、caret、CORElearn、Cubist、DALEX、deepnet、dipm、DoubleML、earth、easy.glmnet、effects、elasticnet、evclass、evtree、fastshap、FOCI、frbs、gamboostLSS、gKRLS、glmertree、glmnet、glmpath、GMMBoost、grf、grplasso、grpreg、h2o、hda、hdi、hdm、iBreakDown、ICEbox、iml、ipred、islasso、joinet、kernelshap、klaR、lars、LiblineaR、lightgbm、lime、maptree、MLmetrics、mlpack、mlr3、mlr3inferr、mlr3measures、mlr3torch、model4you、mpath、naivebayes、ncvreg、nestedcv、OneR、opusminer、pamr、party、partykit、pdp、penalized、plotmo、pre、psica、qeML、quantregForest、quint、randomForestSRC、ranger、Rborist、rgenoud、RGF、RLT、Rmalschains、rminer、ROCR、RoughSets、RPMM、RSNNS、RWeka、RXshrink、sda、semtree、shapper、shapr、shapviz、SIDES、SIS、SLmetrics、splitTools、ssgraph、stabs、SuperLearner、svmpath、tensorflow、tgp、tidymodels、torch、tree、trtf、varSelRF、wsrf、xgboost、yardstick
已归档
ALEPlot、evreg

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184127
 
60 次点击