Пытаетесь визуализировать визуализацию в PyCharm - кто-нибудь может помочь? - PullRequest
0 голосов
/ 27 апреля 2020

выполнив классификацию 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()
...