混淆矩阵中的 Scikit-learn 变化阈值
Posted
技术标签:
【中文标题】混淆矩阵中的 Scikit-learn 变化阈值【英文标题】:Scikit-learn Change Threshold in Confusion Matrix 【发布时间】:2020-07-16 22:25:23 【问题描述】:对于二元分类器,我需要具有不同阈值的多个混淆矩阵。
我到处查找,但找不到一个简单的实现。
谁能提供一种方法来设置 scikit-learn 的混淆矩阵阈值?
我了解 scikit-learn 的混淆矩阵使用 0.5 作为阈值。
model = LogisticRegression(random_state=0).fit(X_train, y_train)
y_pred = model.predict(X_test)
confusion_matrix(y_test, y_pred)
Output: array([[24705, 8],
[ 718, 0]])
谢谢!
【问题讨论】:
混淆矩阵的阈值是什么意思?请展示您期望的输入和输出示例。 @MathiasMüller 我已经添加了代码 sn-p,基本上我使用的是 scikitlearn 的混淆矩阵方法但是如何更改它的阈值? 【参考方案1】:我想通了,很简单:
threshold = 0.2
y_pred = (model.predict_proba(X_test)[:, 1] > threshold).astype('float')
confusion_matrix(y_test, y_pred)
希望这对正在寻找一种简单方法来更改阈值的其他人有所帮助!
【讨论】:
以上是关于混淆矩阵中的 Scikit-learn 变化阈值的主要内容,如果未能解决你的问题,请参考以下文章