如何调整逻辑回归模型中的截止值?

问题描述 投票:0回答:1

为此问题设计的示例。 我正在利用

sklearn
包训练二元分类器。我有一个平衡的数据集,一半是正样本,一半是负样本。我分割了训练/测试数据(下面的示例代码)。我想对其进行训练,以便获得足够好的精度和召回值。我绝对希望误报率多于误报率。我知道我可以调整截止值,并且该截止值会影响模型的精度和准确度。在训练期间调整截止值直到获得所需的精确召回值是一个好的策略吗?

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=16)

logreg = LogisticRegression()

logreg.fit(X_train, y_train)

y_pred = logreg.predict(X_test)
python scikit-learn
1个回答
0
投票

不是在训练期间,而是在训练之后。那么你的模型会输出一个介于 0 和 1 之间的值,以表明它是负样本(更接近 0)还是正样本(更接近 1)。在那里,您可以使用从模型中获得的一组值来查看精度/召回率如何变化,并将它们转换为您考虑的每个阈值的二元决策。

最直接的方法是使用 ROC(接收操作员特征)https://scikit-learn.org/stable/modules/ generated/sklearn.metrics.roc_curve.html

它获取您的 y_pred(真实标签),并返回一系列可能阈值的误报率和误报率,然后您可以绘制该图以选择哪个 FP/FN 比率更适合您,该比率对应于特定阈值选择。

© www.soinside.com 2019 - 2024. All rights reserved.