我试图通过改变数据帧中单元格中的变量,在一个图上绘制多条ROC曲线
因此,在特定行中,如果总额高于某个阈值,则将其归类为发票。我想在不同的总阈值上绘制不同的曲线
这是迄今为止我所拥有的用于测量基本指标的代码,是一种绘制ROC曲线的尝试,但迄今为止我一直没有成功
import os
import pandas as pd
from sklearn import datasets, metrics, model_selection, svm
from sklearn.metrics import precision_recall_fscore_support as score
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
import scikitplot as skplt
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("test_results.csv", header = 0)
true_array = list(df["actual"].to_numpy())
predicted_array = list(df["predicted"].to_numpy())
accuracy = accuracy_score(true_array, predicted_array)
precision, recall, fscore, support = score(true_array, predicted_array, average = None, labels = ['invoice', 'non-invoice'])
print("Labels: \t invoice", "non-invoice")
print('Accuracy: \t {}'.format(accuracy))
print('Precision: \t {}'.format(precision))
print('Recall: \t {}'.format(recall))
print('Fscore: \t {}'.format(fscore))
skplt.metrics.plot_roc_curve(true_array, predicted_array)
plt.show()
我得到的错误是
fpr[i],tpr[i],u=roc_曲线(y_真,概率[:,i], 索引器:数组的索引太多
任何帮助都将不胜感激
以下文档提到skplt.metrics.plot_roc_curve为分类器返回的每个类获取基本真值(正确)目标值和预测概率。所以你应该改变第二个输入预测数组
https://scikit-plot.readthedocs.io/en/stable/metrics.html?highlight=roc#scikitplot.metrics.plot_roc
相关问题 更多 >
编程相关推荐