- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试确定 roc_auc_score
用于验证集上的拟合模型。
我看到有关函数输入的一些相互矛盾的信息。
Documentation说:
"y_score 类似数组的形状 (n_samples,) 或 (n_samples, n_classes)
目标分数。在二元和多标签情况下,这些可以是概率估计或非阈值决策值(由某些分类器上的 decision_function 返回)。在多类情况下,这些必须是总和为 1 的概率估计。二元情况需要一个形状 (n_samples,),并且分数必须是具有更大标签的类的分数。多类和多标签情况需要一个形状 (n_samples, n_classes)。在多类情况下,类分数的顺序必须对应于标签的顺序(如果提供),或者对应于 y_true 中标签的数字或字典顺序。”
不确定这到底需要什么:1)针对测试集中实际 y 值的预测概率或 2)针对测试集中实际 y 值的类别预测
我一直在搜索,在二元分类的情况下(我的兴趣),有些人使用预测概率,而其他人使用实际预测(0 或 1)。换句话说:
适合型号:
model.fit(X_train, y_train)
使用:
y_preds = model.predict(X_test)
或者:
y_probas = model.predict_proba(X_test)
我发现:
roc_auc_score(y_test, y_preds)
和:
roc_auc_score(y_test, y_probas[:,1]) # probabilites for the 1 class
产生非常不同的结果。
最佳答案
model.predict(...)
将为您提供每个观察的预测标签。也就是说,它将返回一个充满 1 和 0 的数组。model.predict_proba(...)[:, 1]
会给你每个观察值等于 1 的概率。也就是说,它将返回一个包含 0 和 1 之间的数字的数组,包括 0 和 1。
ROC 曲线是通过取每个可能的 来计算的。概率 ,使用它作为阈值并计算结果的真阳性率和假阳性率。因此,如果您通过 model.predict(...)
至 metrics.roc_auc_score()
,您正在计算仅使用两个阈值(一或零)的 ROC 曲线的 AUC。 这是不正确的 ,因为这些不是模型的预测概率。
要获得模型的 AUC,您需要将预测概率传递给 roc_auc_score(...)
:
from sklearn.metrics import roc_auc_score
roc_auc_score(y_test, model.predict_proba(X_test)[:, 1])
关于python - Scikit Learn roc_auc_score 和 ROC Plot 的正确输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65398299/
我想计算我的分类器的 AUC、精确度和准确度。我在做监督学习: 这是我的工作代码。此代码适用于二进制类,但不适用于多类。请假设您有一个包含二进制类的数据框: sample_features_dataf
我正在对现有数据框执行 k-fold XV,我需要获得 AUC 分数。问题是 - 有时测试数据只包含 0,而不包含 1! 我尝试使用 this例如,但数字不同: import numpy as np
我正在使用 scikit-learn 中的 roc_auc_score 函数来评估我的模型性能。但是,无论我使用 predict() 还是 predict_proba(),我都会得到不同的值 p_pr
我正在尝试使用 sklearn.metrics.roc_auc_score 使用以下方法计算 ROC 曲线下的面积: roc_auc = sklearn.metrics.roc_auc_score(a
我很难理解 scikit-learn 中 roc_auc_score() 和 auc() 之间的区别(如果有的话)。 我想预测具有不平衡类的二进制输出(Y=1 约为 1.5%)。 分类器 model_
我正在训练一个 RandomForestClassifier (sklearn) 来预测信用卡欺诈。然后当我测试模型并检查 rocauc 分数时,当我使用 roc_auc_score 时会得到不同的值
我想评估我的机器学习模型。我使用 roc_auc_score() 计算了 ROC 曲线下的面积,并使用 sklearn 的 plot_roc_curve() 函数绘制了 ROC 曲线。在第二个函数中,
我正在尝试使用 sklearn 的 roc_auc_score() 函数计算多类问题的 AUC 分数。 我有形状为 [n_samples,n_classes] 的预测矩阵和形状为 [n_samples
我正在尝试确定 roc_auc_score用于验证集上的拟合模型。 我看到有关函数输入的一些相互矛盾的信息。 Documentation说: "y_score 类似数组的形状 (n_samples,)
刚接触 sklearn,请保持温柔。使用不同的 roc_auc 评分计算客户流失率,我得到 3 个不同的分数。分数 1 和 3 接近,分数与分数 2 之间存在显着差异。感谢您指导为什么会出现这种差异以
我对 cross_val_score 评分指标“roc_auc”和我可以直接导入和调用的 roc_auc_score 之间的区别感到困惑。 文档 ( http://scikit-learn.org/s
在某些情况下, tf.metrics.auc 产生的值与 sklearn.metrics.roc_auc_score 非常不同。 我无法确定这种情况的特殊性是什么,但我能够获得一个可重现的例子: 代码
我正在使用 逻辑回归 进行预测。我的预测是 0 和 1。在根据给定数据训练我的模型后,以及在训练重要特征时,即 X_important_train 请参见屏幕截图。我得到大约 70% 的分数,但是当我
我正在使用分层 10 折交叉验证来寻找模型,该模型从具有最高 auc 的 X(X 有 34 个标签)预测 y(二元结果)。我设置了 GridSearchCV: log_reg = LogisticRe
我是一名优秀的程序员,十分优秀!