问题标签 [superlearner]

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.

0 投票
2 回答
125 浏览

r - R:如何在 SuperLearner 中指定我自己的 CV 折叠

在上面的代码中,我正在执行一个 5 倍的 CV 来训练一个 SuperLearner。但是,如果我想手动在数据中创建自己的折叠怎么办?我有兴趣尝试这个,因为我知道我的数据中有集群,并且我想对我创建的折叠执行 CV。

举个例子,下面是我的玩具数据的五折:split1, ..., split5。有没有办法使用这 5 个折叠来执行交叉验证,而不是让SuperLearner自己拆分数据?

0 投票
1 回答
293 浏览

r - 如何从 SuperLearner 模型中确定置换变量的重要性?

我的总体目标是确定在波士顿数据集上执行的 Superlearner 的变量重要性。但是,当我尝试使用 R 中的 VIP 包确定变量重要性时,我收到以下错误。我怀疑包含 SuperLeaner 对象的预测包装器是导致错误的原因,但我不确定。

我执行了以下操作:

0 投票
1 回答
62 浏览

r - R - 对每个学习者具有不同特征子集的超级学习者的建议?

我希望将每个使用不同特征和算法子集开发的学习者组合成一个超级学习者。我意识到这不是 SuperLearning 通常的工作方式,但请相信我有我的理由。

我一直在创建自定义SL.___函数并处理超参数之类的功能子集,但正如您将在下面看到的,当我尝试在CV.SuperLearner.

有什么建议么?有没有更简单的方法可以在包中做到这一点sl3

示例数据集

通过删除 ID 列和结果“y”创建仅包含特征/变量的数据框

创建 3 个学习器,每个学习器使用不同的算法/方法和不同的特征子集。第一个学习者使用 glm 和特征 a、b 和 c。第二个学习器使用 LASSO 回归和特征 b、d 和 e,第三个学习器使用具有所有默认超参数和特征 a、c、d 和 e 的随机森林。

毫不奇怪,未能在 CV.SuperLearner 命令中定义“X”参数会产生错误。

但是在CV.SuperLearner命令中定义 X 也会产生错误,因为现在 X 已经定义了两次。(为了大家的理智,我删除了大部分重复的警告和错误。)

reprex 包于 2020-11-09 创建(v0.3.0)

0 投票
1 回答
104 浏览

python - Python Mlens Ensemble:KeyError:“[Int64Index([... dtype='int64', length=105)] 均不在 [columns] 中”

以下是我收到此错误的代码的小版本: KeyError:“[Int64Index([...], dtype='int64')] 均不在 [columns] 中”

'...' 是一系列数字,似乎与我的 X 和 y 数据帧的索引相匹配。

我正在使用 Mlens 包在一个非常大的数据集上使用 SuperLearner 进行建模(因此可扩展性很重要)。我的目标是使用数据框结构而不是 Numpy 数组。这将解决下游问题。

到目前为止,我已经探索了这篇文章和其他相关文章,但解决方案似乎不适用于这里。

该数据集是此处以 .csv 格式找到的 Iris 数据集:<https://datahub.io/machine-learning/iris#data/

请注意,自定义随机森林功能效果很好。但是 mlens/SuperLearner 错误。

0 投票
1 回答
95 浏览

r - mlr3 优化的集合平均

我尝试使用超级学习器优化分类任务中两个逻辑回归的平均预测。

我感兴趣的衡量标准是classif.auc

mlr3帮助文件告诉我( ?mlr_learners_avg)

使用权重(按数据中出现的顺序)对预测进行平均,这些权重使用“nloptr”包中的非线性优化对 measure 中提供的度量进行优化( LearnerClassifAvg 的默认值为 classif.acc,LearnerRegrAvg 的默认值为 regr.mse)。学习的权重可以从 $model 获得。SuperLearner R 包中实现了使用非线性优化。如需更详细的分析,请参阅 LeDell (2015)。

关于此信息,我有两个问题:

  1. 当我查看源代码时,我认为LearnerClassifAvg$new()默认为"classif.ce",这是真的吗?我想我可以将其设置classif.aucparam_set$values <- list(measure="classif.auc",optimizer="nloptr",log_level="warn")

  2. 帮助文件指的是SuperLearner软件包和LeDell 2015。正如我正确理解的那样,上述论文中提出的“通过元学习最大化 AUC”解决方案在mlr3? 还是我错过了什么?这个解决方案可以应用mlr3吗?在mlr3书中我找到了关于调用外部优化函数的段落,这可能SuperLearner吗?

0 投票
1 回答
76 浏览

python - 在 Mlens Pipeline 中使用 StandardScaler 作为预处理器会生成分类警告

我正在尝试在 MLENs Superlearner 管道的交叉验证折叠中扩展我的数据。当我在管道中使用 StandardScaler 时(如下所示),我收到以下警告:

/miniconda3/envs/r_env/lib/python3.7/site-packages/mlens/parallel/_base_functions.py:226:MetricWarning:[pipeline-1.mlpclassifier.0.2] 无法评分 pipeline-1.mlpclassifier。详细信息:ValueError(“分类指标无法处理二进制和连续多输出目标的混合”)(名称,inst_name,exc),MetricWarning)

值得注意的是,当我省略 StandardScaler() 时,警告会消失,但数据不会被缩放。