выполнив классификацию al go, сравнивая модели NB и RF с их способностями классифицировать данные, я также хотел бы оценить, например, применяя график ROCAU C. Но несколько попыток оказываются тщетными. Я, возможно, немного скучаю, но, к сожалению, я не могу заметить это небольшое изменение с большим влиянием ...; o / - кто-нибудь там, кто может помочь? Посмотрите код ниже. В общем, я думаю, что мой вопрос также сосредоточен на понимании того, как я могу визуализировать визуализации, сгенерированные как часть команды def. Пробовал 'вернуть цифру', 'plt.show' - ничего не визуализируется ...
# ROCAUC curve - Naive Bayes
from sklearn.metrics import roc_curve, auc, precision_score, accuracy_score, recall_score, f1_score
from scipy import interp
import matplotlib as plt
import seaborn as sns
import numpy as np
def ROCcurves(y_test, pred2):
n_classes = 2
fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
fpr[i], tpr[i], _ = roc_curve(y_test, pred2)
roc_auc[i] = auc(fpr[i], tpr[i])
fpr['micro'], tpr['micro'], _ = roc_curve(y_test.ravel(), pred2.ravel())
all_fpr = np.nunique(np.concatenate(fpr[i] for i in range(n_classes)))
mean_tpr = np.zeros_like(all_fpr)
for i in range(n_classes):
mean_tpr += interp(all_fpr, fpr[i], tpr[i])
mean_tpr /= n_classes
fpr["macro"] = all_fpr
tpr["macro"] = mean_tpr
# plot figure (micro and macro)
plt.figure()
plt.plot(fpr["micro"], tpr["micro"], label='micro-average-ROC-curve (area = {0:0.2f})'.format(roc_auc["micro"]),
linewidth=2)
plt.figure()
plt.plot(fpr["macro"], tpr["macro"], label='macro-average-ROC-curve (area = {0:0.2f})'.format(roc_auc["micro"]),
linewidth=2)
for i in range(n_classes):
plt.plot(fpr[i], tpr[i], label="ROC curve of class {0} (area = {1:0.2f})"
''.format(i, roc_auc[i]))
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0], [1.0])
plt.ylim([0.0], [1.05])
plt.xlabel("False positive rate")
plt.ylabel("True positive rate")
plt.title("ROC to multi-class")
plt.legend(loc='best')
plt.show()