问题标签 [mlr3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 使用数据库中的数据(不同的表)定义 mlr3 任务?
这是一个新手问题。如何定义tsk
使用来自(sqlite)数据库的数据的(分类)?mlr3db示例似乎首先从内存中写入数据。就我而言,数据已经在数据库中。什么可能是一个更大的问题,目标数据和特征在不同的表中。
我尝试了什么:
然后我不知道如何指定target
参数。
也许一个解决方案是在数据库中创建一个连接特征和目标的视图?
r - 用 mlr3 处理类不平衡
最近有人建议我将机器学习框架更改为 mlr3。但我发现过渡比我一开始想的要困难一些。在我目前的项目中,我正在处理高度不平衡的数据,我想在训练我的模型之前对其进行平衡。我发现本教程解释了如何通过管道和图形学习器处理不平衡:
https://mlr3gallery.mlr-org.com/posts/2020-03-30-imbalanced-data/
恐怕这种方法也会通过新数据预测来执行类平衡。为什么我要这样做并减少我的测试样本?
所以出现了两个问题:
- 我是否正确不在测试数据中平衡类?
- 如果是这样,有没有办法在 mlr3 中做到这一点?
当然,我可以手动对训练数据进行子集化并自己处理不平衡,但这不再有趣了!:)
无论如何,感谢您的任何回答,
干杯!
r - 使用并行化对 mlr3 进行重采样时如何获得可重现的结果
最近我正在学习使用 mlr3 包进行并行化。作为 mlr3 书籍 ( https://mlr3book.mlr-org.com/technical.html ) 和教程 ( https://www.youtube.com/watch?v=T43hO2o_nZw&t=1s ) 的介绍,mlr3 使用未来的后端用于并行化。我使用以下代码运行了一个简单的测试:
AUC 每次都会改变,我知道这是因为我没有为并行化设置随机种子。但是我发现了很多关于未来包的教程,使用 future 获得可重现结果的方法是使用future.apply包中的 future_lapply 并设置 future.seed = TRUE。另一种方法是使用 %dorng% 或 registerDoRNG() 为 foreach 循环设置未来的后端。
我的问题是如何在不使用 future_lapply 或 foreach的情况下在 mlr3 中获得可重现的重采样结果?我想可能有一种简单的方法可以做到这一点。非常感谢!
r - 基于重要性的变量减少
我在过滤掉模型中最不重要的变量时遇到了困难。我收到了一组包含 4,000 多个变量的数据,我被要求减少进入模型的变量数量。
我确实尝试了两种方法,但我失败了两次。
我尝试的第一件事是在建模后手动检查变量的重要性,并在此基础上删除不重要的变量。
使用 simple 时一切正常Learner
:
问题是数据高度不平衡,因此我决定使用GraphLearner
withPipeOp
运算符对多数组进行欠采样,然后将其传递给AutoTuner
:
我确实跳过了一些我认为对这种情况不重要的代码,比如搜索空间、终结器、调谐器等。
正确知道的问题是,尽管重要的属性在不可用at
的情况下仍然可见。$importance()
所以我决定改变我的方法并尝试将过滤添加到Learner
. 这就是我失败得更多的地方。我已经开始研究这个 mlr3book 博客 - https://mlr3book.mlr-org.com/fs.html。我尝试importance = "impurity"
像在博客中一样添加到 Learner 中,但 id 确实产生了错误。
这基本上意味着这样的事情:
我也尝试过使用PipeOp
过滤来解决问题,但它也失败了。我相信没有importance = "impurity"
.
所以我的问题是,有没有办法实现我的目标?
此外,我将非常感谢您解释为什么在建模之前可以按重要性过滤?不应该基于模型结果吗?
r - 如何解释 mlr3 中嵌套重采样的聚合性能结果?
最近我正在学习 mlr3 包中的嵌套重采样。根据 mlr3 的书,嵌套重采样的目标是为学习者获得无偏的性能估计。我运行如下测试:
结果表明,从 3 个内部重采样中选择的 3 个超参数不能保证相同。它类似于这篇文章(它从内部重采样中获得 3 个不同的 cp):mlr3 resample autotuner - not show tune parameters?.
我的问题是:
- 我曾经认为聚合结果rr$aggregate是 3 个模型的平均值,但它不是,(0.7584991 + 0.7637077 + 0.7645588) / 3 = 0.7622552,而不是 0.7624477,我误解了聚合结果吗?
- 如何从内部重采样过程中解释具有不同最佳超参数的 3 个模型的聚合性能结果?它是什么不偏不倚的表现?
谢谢!
r - 如何在 mlr3 中使用并行化加速重采样过程?
我尝试在 mlr3 中使用并行化运行重采样过程。但我发现它总是比顺序计划慢。这是我的代码和结果:
我已经测试了很多次,plan() 中有不同数量的工作人员,并且在不同的笔记本电脑上运行,并行计划总是较慢。它也发生在超参数调整和嵌套重采样过程中。但是当我检查 Windows 中的任务管理器时,我可以看到会话正在后台运行。
我在 mlr3 中的并行化设置有问题吗?谢谢!
mlr3 - 关于 dalex 包的一点困惑
你好 mlr3 团队。
我对 mlr3 书中提供的 dalex 包有疑问。具体来说,这里
先感谢您
mlr3 - 金融时间序列的 mlr3 重采样扩展包
我找不到允许重新采样适用于金融市场/时间序列数据的方法的扩展包(例如,在“滚动窗口”或“增长窗口”上训练模型并在训练窗口之后立即对数据点进行测试。这本书一般都提到了额外的包,但我还没有找到。有人可以帮忙吗?
r - 如何获得mlr3中Logistic回归的系数?
我刚开始使用mlr3,对语法还是很不熟悉,有两个问题:
- 如何从 mlr3 中经过训练的 Logistic 回归中访问系数?
- 我正在处理一个极其不平衡的数据集,98% vs 2%,并且这个数据集中有超过 200 万行,我尝试使用 SMOTE 方法,但是它很慢,因为它可以在 python 中很快完成,所以是我的代码有什么错误吗?这是我的代码:
对于 SMOTE:
r - 使用 mlr3 结合弹性网络和逻辑回归的两级堆叠学习器(集成模型)
我试图解决医学中的一个常见问题:预测模型与其他来源的结合,例如,专家意见 [有时在医学中非常强调],在这篇文章中称为superdoc
预测器。
这可以通过将模型与逻辑回归(输入专家意见)堆叠起来来解决,如本文第 26 页所述:
Afshar P, Mohammadi A, Plataniotis KN, Oikonomou A, Benali H. 从手工制作到基于深度学习的癌症放射组学:挑战和机遇。IEEE 信号处理杂志 2019;36:132-60。在这里可用
我在这里尝试过,没有考虑过拟合(我没有应用低级学习者的非折叠预测):
示例数据
不考虑折叠预测的堆叠模型:
现在我想mlr3
根据这篇非常有用的帖子来考虑使用包系列的非折叠预测:调整堆叠学习器
由reprex 包于 2021-03-15 创建(v1.0.0)
我的问题(我对mlr3
包系列比较陌生)
- 包装系列是否
mlr3
非常适合我尝试构建的集成模型? - 如果是,我最终确定集成模型并预测
test.data