Python Scikit学习:roc_auc_分数
我正在使用scikit学习中的roc_auc_分数函数来评估我的模型性能。 但是,无论我使用predict()还是predict_proba(),我都会得到不同的值 你能给我一些建议吗Python Scikit学习:roc_auc_分数,python,machine-learning,scikit-learn,auc,Python,Machine Learning,Scikit Learn,Auc,我正在使用scikit学习中的roc_auc_分数函数来评估我的模型性能。 但是,无论我使用predict()还是predict_proba(),我都会得到不同的值 你能给我一些建议吗 提前感谢首先看看预测和预测概率之间的区别。前者预测特征集的类别,后者预测各种类别的概率 您正在看到y_test_predicted的二进制格式中隐含的舍入误差的影响。y_test_predicted由1和0组成,其中as p_pred由0和1之间的浮点值组成。roc_auc_评分程序改变阈值并生成真阳性率和假阳性
提前感谢首先看看预测和预测概率之间的区别。前者预测特征集的类别,后者预测各种类别的概率 您正在看到y_test_predicted的二进制格式中隐含的舍入误差的影响。y_test_predicted由1和0组成,其中as p_pred由0和1之间的浮点值组成。roc_auc_评分程序改变阈值并生成真阳性率和假阳性率,因此评分看起来非常不同 考虑以下情况:
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,
TPR=.75 FPR=.25.
y_检验_预测情况给出:
TPR=0.5, FPR=0,
TPR=.75 FPR=.25.
您可能会看到,如果这两个点不同,那么两条曲线下的面积也会非常不同
但要真正理解它,我建议看看ROC曲线本身来帮助理解这种差异
希望这有帮助 y检验预测的情况应该是:
TPR=.75 FPR=.33。
股息应该包括FPs,而不仅仅是TNs:FPR=FP/(FP+TN)。对不起,也许我只是误解了你。如果你的意思是我们比较y_检验和预测的y_检验,那么TN=2,FP=1。