问题标签 [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.
mlr3 - mlr pipeops 中的调试/检查步骤
我想检查计算中的中间步骤,但我不知道该怎么做。
书中的例子:
现在,我想看看任务的转换后的数据矩阵(在mutate
和之后filter
)。这一定是在某个地方graph
,尤其是在我设置的时候keep_results=TRUE
。但我看不到在哪里。有人能帮我一下吗?
r - 如何在 mlr3 中重复 glmnet 的超参数调整(alpha 和/或 lambda)
我想重复 in 的超参数调整(和alpha
/或lambda
)以避免较小数据集的可变性glmnet
mlr3
在caret
中,我可以这样做"repeatedcv"
因为我真的很喜欢mlr3
家庭包,所以我想用它们来分析。但是,我不确定如何执行此步骤的正确方法mlr3
示例数据
由reprex 包(v1.0.0)于 2021-03-18 创建
caret
使用and接近(调整alpha
and lambda
)"cv"
"repeatedcv"
由reprex 包(v1.0.0)于 2021-03-18 创建
用交叉验证展示不同的系数,用重复的交叉验证展示相同的系数
由reprex 包(v1.0.0)于 2021-03-18 创建
第mlr3
一种方法使用cv.glmnet
(内部调整lambda
)
由reprex 包(v1.0.0)于 2021-03-18 创建
通过交叉验证展示不同的系数
由reprex 包(v1.0.0)于 2021-03-18 创建
更新 1:我取得的进展
根据下面的评论和这个评论,我可以使用rsmp
和
AutoTuner
这个答案建议不要调整cv.glmnet
但是glmnet
(当时在 ml3 中不可用)
第二种mlr3
方法使用glmnet
(重复调整alpha
和lambda
)
开放式问题
我如何证明我的第二种方法是有效的,并且我得到不同种子的相同或相似系数?IE。如何提取最终模型的系数AutoTuner
由reprex 包(v1.0.0)于 2021-03-18 创建
r - 在 mlr3filters 中过滤 - 我在哪里可以找到有关方法的详细信息?
我尝试查找有关此处提到的过滤方法的详细信息:
https://mlr3book.mlr-org.com/list-filters.html#list-filters
https://mlr3filters.mlr-org.com/
不幸的是,我找不到更详细的信息,例如如何information_gain
计算以及我可以设置什么参数。
我在哪里可以找到有关此的详细信息?
r - 使用 Akaike 信息准则 (AIC) 和贝叶斯信息准则 (BIC) 过滤 mlr3 中的 PCA 因子?
我想在 mlr3 中使用带有后续特征选择/过滤的 PCA。
我还没有在包/框架中找到用于这种“过滤”的 AIC 和 BIC。
这是因为它们在概念上不适合吗,例如 mlr3filters 中的所有方法在概念上都与这些信息标准不同,例如它们选择模型而不是特征?但是它们应该在 mlr_measures 下可用?
或者它们是否可以通过扩展包获得?
mlr3 - 有没有办法在导入数据时直接将角色分配给任务的列?
我喜欢将数据框作为“任务”导入。一些列是日期(数据类型为“yearmon”),我喜欢使用角色“name”或“order”来导入它们。
不幸的是,似乎我必须先导入整个矩阵,并且只能在导入后更改角色。但是这种导入是不可能的,因为“yearmon”格式不符合“特征”的条件。
我怎样才能解决这个问题?
r - mrl3 集成模型中的重复 cv
我有一个漂亮的mlr3
集成模型(组合glmnet
和glm
)用于二进制预测,请参阅此处的详细信息
如果我用不同的 set.seed 训练它,我会得到不同的系数。我认为这主要是由于在 glmnet 模型中输入的训练数据数量相当少,并且可以通过重复交叉验证来缓解。
问题:
mlr3
在我的集成模型中在哪里以及如何输入重复的交叉验证来缓解这些不同的结果?非常感谢任何帮助。
feature-selection - ml3filters 中的 AUC 过滤器
我尝试更多地了解 mlr3filters 的 AUC 过滤器。我使用分类任务 ( task
) 和以下代码:
从 mlr3measures::auc() 的文档中,我了解到我需要一个概率向量和一个具有(二进制)因子值的向量以及“真实”类。在我的任务中,我有二进制类(作为“目标”)和许多数字特征,但不在0 和 1 之间,所以我不能将它们解释为概率。那为什么要计算AUC呢?还是有额外的假设?我的问题是我无法从filter$help()
.
作为一个一般性问题: https://mlr3filters.mlr-org.com/reference/index.html中的函数引用与底层 R 函数之间是否有额外的“解释层” ?例如,我知道 FilterVariance$new() 会生成一个过滤器对象,该对象仅通过使用这些特征并应用 stats::var() 来计算单个特征的方差。但从书中,我也看到我可以指定截止值:
po("filter", mlr3filters::FilterVariance$new(), filter.frac = 0.5)
在哪里可以找到有关此 filter.frac 值的详细信息?filter$help()
我在 stats::var()中也找不到它
同样,我知道 FilterCorrelation$new() 生成一个过滤器对象,该对象采用单个特征和目标来计算特征等级。这可能是不言自明的,但我想知道在哪里可以找到有关此类问题的更多详细信息。
我尝试了在这里找到的答案(在 mlr3filters 中过滤 - 我在哪里可以找到有关这些方法的详细信息?),但我在filter$help()
提前感谢初学者$help()
r - 是否有允许指定最大距离的 knn 算法的约束版本?
我使用 R 中的 knn 算法。
该算法选择特征空间中的 k 个“最近”点,并根据这 k 个最近点计算预测/概率。
我的问题/问题是:我可以指定最大距离吗?对于某些点,“k 最近的邻居”可能太远了,使用它们没有意义。所以我需要一个扩展版本的算法,如果所有最近的点都“太远”,它会给我一个“NA”。我还希望能够将此阈值指定为超参数并稍后对其进行调整。
是否存在这样的变体?并且已经在 R 中实现了吗?
r - 使用 mlr3 进行基准测试
我无法理解 mlr3 基准测试的行为。我开发了 6 个模型,并使用嵌套 CV 为每个模型调整超参数(例如 rpart 学习器的 2 个超参数)。在我的台式机上,每个模型大约需要 10 分钟。然后我对 6 个模型进行基准测试,但两个小时后,基准测试过程还没有结束。我想了解为什么基准测试比单个模型需要更多的时间;这是正常预期的还是我在某个地方犯了错误?我还想了解以更有效的方式合理比较(基准测试)多个模型(5-10-20 模型)的最佳选择。对于其他 6 个模型,我花了 48 小时才完成,我尝试并行化它并没有带来性能提升(大概是因为我在 Windows 上工作,未来的 R 包不能理想地工作)。非常感谢!
r - 对多个 AutoTuning 实例进行基准测试
我一直在尝试使用 mlr3 为 xgboost 做一些超参数调整。我想比较三种不同的模型:
- xgboost 仅调整了 alpha 超参数
- xgboost 调整了 alpha 和 lambda 超参数
- xgboost 调整了 alpha、lambda 和 maxdepth 超参数。
在阅读了 mlr3 的书之后,我认为使用 AutoTuner 进行嵌套重采样和基准测试是最好的方法。这是我尝试过的:
请注意,我添加了泊松损失作为我正在使用的计数数据的度量。出于某种原因,在运行基准函数后,我所有模型的泊松损失每次折叠几乎相同,这让我认为没有进行任何调整。
我也找不到一种方法来访问用于在每次训练/测试迭代中获得最低损失的超参数。我是否完全滥用了基准功能?此外,这是我关于 SO 的第一个问题,因此任何格式建议都将不胜感激!