【发布时间】:2020-12-19 16:21:27
【问题描述】:
我正在尝试使用 sklearn 训练模型,但是,我想将决策阈值更改为 训练 模型。我在 SO 中找到的大部分结果都是针对测试集的预测。
【问题讨论】:
-
模型训练没有没有个阈值。
标签: machine-learning scikit-learn classification
我正在尝试使用 sklearn 训练模型,但是,我想将决策阈值更改为 训练 模型。我在 SO 中找到的大部分结果都是针对测试集的预测。
【问题讨论】:
标签: machine-learning scikit-learn classification
在概率分类器训练(通过 scikit-learn 或任何其他框架)中不涉及阈值。
在推理时需要一个阈值,以便将概率预测转换为硬标签,而这反过来又是计算本质上的业务指标,如准确度、精度、召回率等所必需的。但这些指标在模型训练中没有作用,其中唯一重要的量(并且在模型拟合期间被最小化)是损失。并且损失的计算不涉及阈值。
换句话说,硬类预测(仅需要阈值)在模型训练中绝对没有任何作用,因此在训练过程中不涉及任何阈值。
我建议阅读以下我的答案,以澄清损失和准确性之间的关系(尽管标题,它们并非特定于 Keras,但它们原则上适用于任何二元分类问题):
引用交叉验证线程Reduce Classification Probability Threshold:
当您为新样本的每个类别输出一个概率时,您的练习的统计部分就结束了。选择一个阈值,将新观察分类为 1 与 0 的阈值不再是 统计数据 的一部分。它是 decision 组件的一部分。
【讨论】: