- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 scikit-learn 中的 roc_auc_score 函数来评估我的模型性能。但是,无论我使用 predict() 还是 predict_proba(),我都会得到不同的值
p_pred = forest.predict_proba(x_test)
y_test_predicted= forest.predict(x_test)
fpr, tpr, _ = roc_curve(y_test, p_pred[:, 1])
roc_auc = auc(fpr, tpr)
roc_auc_score(y_test,y_test_predicted) # = 0.68
roc_auc_score(y_test, p_pred[:, 1]) # = 0.93
请问有什么建议吗?
提前致谢
最佳答案
先看看predict和predict_proba的区别。前者预测特征集的类别,而后者预测各种类别的概率。
您将看到隐含在 y_test_predicted 的二进制格式中的舍入误差的影响。 y_test_predicted 由 1 和 0 组成,而 p_pred 由介于 0 和 1 之间的浮点值组成。roc_auc_score 例程改变阈值并生成真阳性率和假阳性率,因此分数看起来非常不同。
考虑以下情况:
y_test = [ 1, 0, 0, 1, 0, 1, 1]
p_pred = [.6,.4,.6,.9,.2,.7,.4]
y_test_predicted = [ 1, 0, 1, 1, 0, 1, 0]
请注意,ROC 曲线是通过考虑所有截止阈值生成的。现在考虑 0.65 的阈值...
p_pred 案例给出:
TPR=0.5, FPR=0,
y_test_predicted 案例给出:
TPR=.75 FPR=.25.
你大概可以看出,如果这两点不同,那么两条曲线下的面积也会有很大的不同。
但要真正理解它,我建议查看 ROC 曲线本身以帮助理解这种差异。
希望这对您有所帮助!
关于python - Scikit 学习 : roc_auc_score,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30623637/
我想计算我的分类器的 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
我是一名优秀的程序员,十分优秀!