R 调谐器阈值如何调整预测阈值?
这是一个交叉柱。我没有运气在那里发布与R 调谐器阈值如何调整预测阈值?,r,mlr,R,Mlr,这是一个交叉柱。我没有运气在那里发布与mlr包相关的问题,所以我想我会在这里试试 我想使用tuneThreshold和学习者参数来调整以下分类任务的阈值 在调整学习者时,我首先尝试通过设置makeTuneControlRandom(…,tune.threshold=TRUE)来调整阈值: 这里的最佳阈值为0.51 然后,我尝试直接在预测对象上使用tuneThreshold来调整阈值: tuneThreshold(r$pred) $th [1] 0.5650756 $perf mmc
mlr
包相关的问题,所以我想我会在这里试试
我想使用tuneThreshold
和学习者参数来调整以下分类任务的阈值
在调整学习者时,我首先尝试通过设置makeTuneControlRandom(…,tune.threshold=TRUE)
来调整阈值:
这里的最佳阈值为0.51
然后,我尝试直接在预测对象上使用tuneThreshold
来调整阈值:
tuneThreshold(r$pred)
$th
[1] 0.5650756
$perf
mmce
0.05303195
这里的最佳阈值为0.565。我不明白为什么这里的最佳阈值与上面的不同,为什么它没有返回与上面找到的相同的阈值,即0.51?这似乎增加了另一层随机性,但我不知道在哪里或如何添加,因为当我再次调用tuneThreshold(r$pred)
时,阈值和性能分数不会改变。tuneThreshold
究竟是如何工作的?它与预测对象r$pred
有什么关系?- 你指向CrossValidated的链接已失效
- 始终对随机过程使用
,以使其可重复set.seed()
- 加载所有()的
功能是什么
- 值1是在CV场景中进行调优时找到的最佳阈值
- 值2是来自单个预测对象的调用(该对象存储的数据集与CV中的数据集不同)
在CV期间,您有一个非确定性采样,它会在每次运行中更改您的数据集-除非您设置种子。谢谢@pat-s。我知道值1从何而来,但我对值2特别感到困惑。外部CV产生3个模型,每个模型都有自己的预测和阈值,那么为什么将
tuneThreshold
应用于resampleprodiction
对象只返回一个阈值getPredictionProbabilities(r$pred)
同样也返回预测概率的单个向量-这些概率是如何计算的?它只是所有3个CV折叠的预测概率的集合吗?
tuneThreshold(r$pred)
$th
[1] 0.5650756
$perf
mmce
0.05303195