R语言实现SMOTE可用包推荐:R4.0.2安装DMwR包报错不可用如何解决
DMwR包安装报错的解决方案
这个报错本质不是R环境配置的问题:DMwR已经被作者从CRAN主仓库正式归档,距离最后一次代码更新已经超过10年,R 4.0.2版本的默认CRAN源已经完全移除了该包的索引,直接执行install.packages("DMwR")必然触发包找不到的提示。
如果有特殊兼容需求必须使用这个归档版本的包,可按照以下步骤完成安装:
- 先安装DMwR依赖的基础前置包,直接从CRAN主源拉取即可:
install.packages(c("lattice","grid","R6","DBI","dichromat","colorspace","MASS","ROCR","xtable"))
- 安装用于拉取归档包的工具:
install.packages("remotes") - 从CRAN归档仓库拉取DMwR最后一个正式发布版本(0.4.1)完成安装,安装时关闭自动升级依赖的开关,避免出现版本兼容冲突:
remotes::install_url( "https://cran.r-project.org/src/contrib/Archive/DMwR/DMwR_0.4.1.tar.gz", upgrade = "never" )
踩坑提示:就算按照上述步骤装上了DMwR,因为它依赖的很多旧包的接口早已迭代变更,调用过程中大概率会出现难以排查的奇怪报错,没有非用它不可的特殊需求,完全没必要花时间折腾。
R环境下可实现SMOTE功能的可靠替代包
以下工具包均为当前CRAN主仓库持续维护、对R 4.0.2版本完美兼容的方案,可直接安装使用:
smotefamily- 是原DMwR中SMOTE功能最直接的平替,核心算法逻辑和原实现完全一致,迁移原有代码时几乎不需要调整参数
- 扩展了适配混合类型特征的SMOTE变种、带噪声样本过滤的采样逻辑,安装过程无额外的复杂依赖负担
- 直接执行
install.packages("smotefamily")即可安装,调用SMOTE()函数即可完成过采样
themis- 属于tidymodels生态下的不平衡学习专用包,持续高频更新维护
- 除基础SMOTE外,还集成了Borderline-SMOTE、ADASYN、SVMSMOTE等十几种主流过采样/欠采样方法,和R中主流的机器学习工作流(caret、mlr3、tidymodels)兼容性极佳
- 安装命令:
install.packages("themis")
UBL- 面向不平衡分类场景的全栈采样工具包,除过采样SMOTE外,还内置了针对回归、多分类不平衡任务的自定义采样规则
- 支持手动设定采样后的目标少数类占比,对极端不平衡比例的数据集适配性更好
- 安装命令:
install.packages("UBL")
内容的提问来源于stack exchange,提问作者Triparna Poddar
相关产品推荐
相关产品推荐

