Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何平滑ROC曲线?_Python_Classification_Roc_Auc - Fatal编程技术网

Python 如何平滑ROC曲线?

Python 如何平滑ROC曲线?,python,classification,roc,auc,Python,Classification,Roc,Auc,我用下面的代码为不同的分类器绘制ROC曲线,但是在所有的图中(来自不同的分类器),图表都是三角形的,如下面的示例所示。我怎样才能有一个更平滑的绘图 def plot_roc_curve(fpr, tpr, classifier): plt.plot(fpr, tpr, color='orange', label='ROC') plt.plot([0, 1], [0, 1], color='darkblue', linestyle='--') plt.xlabel('Fal

我用下面的代码为不同的分类器绘制ROC曲线,但是在所有的图中(来自不同的分类器),图表都是三角形的,如下面的示例所示。我怎样才能有一个更平滑的绘图

def plot_roc_curve(fpr, tpr, classifier):
    plt.plot(fpr, tpr, color='orange', label='ROC')
    plt.plot([0, 1], [0, 1], color='darkblue', linestyle='--')
    plt.xlabel('False Positive Rate')
    plt.ylabel('True Positive Rate')
    plt.title(str(classifier) + 'Receiver Operating Characteristic (ROC) Curve ')
    plt.legend(loc="lower right")
    plt.show()

from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_test, y_predicted)
plot_roc_curve(fpr, tpr, key)
我得到的:

我想要什么:

数据集:


您正在使用阈值预测生成ROC曲线。应改为使用原始置信值,否则在曲线上只能得到1个中间点

下面是一些示例数据和您将获得的ROC曲线

y_test: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, ...
y_predicted: [1, 0.405, 0.601, 0.579, 0.03, 0.98, 0.06, 0.242, 0.379, 0.09, ...
y_predicted_thresholded: [1, 0, 1, 1, 0, 1, 0, 0, 0, 0, ...

您正在使用阈值预测生成ROC曲线。应改为使用原始置信值,否则在曲线上只能得到1个中间点

下面是一些示例数据和您将获得的ROC曲线

y_test: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, ...
y_predicted: [1, 0.405, 0.601, 0.579, 0.03, 0.98, 0.06, 0.242, 0.379, 0.09, ...
y_predicted_thresholded: [1, 0, 1, 1, 0, 1, 0, 0, 0, 0, ...

ROC曲线的形状取决于
y\u测试、y\u预测的内容,我们不知道这是从哪里来的。那么我如何像预期的图表那样标记点呢?对于您输入的数据,这就是曲线。同样,您没有显示
y\u测试,y\u预测的
包含的内容。我只能猜测样本数量非常少。哦,对不起,我已在编辑中添加了数据集。
y\u predicted
需要非阈值化,即,您应该向其提供原始置信值
0.0…1.0
。否则,ROC曲线(将不同置信阈值下的行为可视化)就毫无意义。ROC曲线的形状取决于
y\u测试、y\u预测的内容,我们不知道这是从哪里来的。那么,我如何像预期图那样标记点呢?对于您输入的数据,这就是曲线。同样,您没有显示
y\u测试,y\u预测的
包含的内容。我只能猜测样本数量非常少。哦,对不起,我已在编辑中添加了数据集。
y\u predicted
需要非阈值化,即,您应该向其提供原始置信值
0.0…1.0
。否则,ROC曲线(显示不同置信阈值下的行为)毫无意义。