Deep Learning 3.1 数据可视化之模型评估阶段

[TOC]

数据可视化

– 通过sklearn.metrics直接plot

from sklearn.metrics import plot_precision_recall_curve

from sklearn.metrics import plot_roc_curve

from sklearn.metrics import plot_confusion_matrix

1、三个参数,分别是classifier、X_test / X_train / X_val、y_test / y_train / y_val,把模型+数据集传入方法中,然后直接进行预测,并把预测出来的数据和本来就有的y_test进行运算。

数据可视化

– 通过sklearn.metrics进行计算,然后通过其他画图工具去画

首先计算所需要相关的包

from sklearn.metrics import accuracy_score

from sklearn.metrics import precision_score

from sklearn.metrics import recall_score

from sklearn.metrics import f1_score

from sklearn.metrics import roc_auc_score

from sklearn.metrics import confusion_matrix

【一】plot_roc_curve // 然后顺便计算出来auc(也就是线下边的面积)

1、通过roc_curve来计算tpr真正率和fpr假正率

2、通过auc来计算ROC面积

3、通过plt.plot()来画图

def plot_roc_curve_(y_true, y_pred):
    # Compute ROC curve and ROC area(auc)
    fpr, tpr, threshold = roc_curve(y_true, y_pred)  # 计算真正率和假正率
    roc_auc = auc(fpr, tpr)
    # plot
    plt.plot(fpr, tpr, label='ROC curve 「area = %0.2f)' % roc_auc) 
    plt.show()

plot_roc_curve_(y_true, y_pred)

【二】plot_precision_recall_curve // 然后顺便计算出来auc(也就是线下边的面积)

1、通过roc_curve来计算tpr真正率和fpr假正率

2、通过auc来计算ROC面积

def plot_precision_recall_curve_(y_true, y_pred):
    # compute precision and recall
    precision, recall, thresholds = precision_recall_curve(y_true, y_pred)
    # plot
    plt.plot(recall,precision)
    plt.show()
    
plot_precision_recall_curve_(y_true, y_pred)

【三】plot_confusion_matrix

1、通过confusion_matrix来计算混淆矩阵

2、通过matshow来画图

def plot_confusion_matrix_(y_true, y_pred):
    # compute confusion matrix
    con_mat = confusion_matrix(y_true=y_true, y_pred=y_pred)
    # plot confusion matrix
    fig, ax = plt.subplots()
    ax.matshow(con_mat, alpha = 0.3)
    for i in range(con_mat.shape[0]):
        for j in range(con_mat.shape[1]):
            ax.text(x=j, y=i, s=con_mat[i, j])
    plt.show()
Posted on Jan 28, 2020