二値分類の評価方法


  1. 混同行列の作成と解釈:

    • 混同行列は、予測結果と真のラベルを比較して、モデルの予測の正確さを評価するために使用されます。真陽性(True Positive)、真陰性(True Negative)、偽陽性(False Positive)、偽陰性(False Negative)の4つの要素から構成されます。
    • Pythonのscikit-learnライブラリを使用して混同行列を作成する例を以下に示します:
    from sklearn.metrics import confusion_matrix
    y_true = [0, 1, 0, 1, 1, 0]
    y_pred = [0, 1, 1, 1, 1, 0]
    cm = confusion_matrix(y_true, y_pred)
    print(cm)
  2. 評価指標の計算:

    • 二値分類モデルの性能を評価するために使用される主要な評価指標には、精度(Accuracy)、再現率(Recall)、適合率(Precision)、F1スコア(F1 Score)があります。
    • scikit-learnを使用してこれらの指標を計算する例を以下に示します:
    from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
    y_true = [0, 1, 0, 1, 1, 0]
    y_pred = [0, 1, 1, 1, 1, 0]
    accuracy = accuracy_score(y_true, y_pred)
    precision = precision_score(y_true, y_pred)
    recall = recall_score(y_true, y_pred)
    f1 = f1_score(y_true, y_pred)
    print("Accuracy:", accuracy)
    print("Precision:", precision)
    print("Recall:", recall)
    print("F1 Score:", f1)
  3. ROC曲線とPR曲線のプロット:

    • ROC曲線とPR曲線は、二値分類モデルの性能を可視化するために使用されます。ROC曲線は真陽性率(True Positive Rate)と偽陽性率(False Positive Rate)の関係を表し、PR曲線は適合率と再現率の関係を表します。
    • scikit-learnを使用してROC曲線とPR曲線をプロットする例を以下に示します:
    import matplotlib.pyplot as plt
    from sklearn.metrics import roc_curve, precision_recall_curve
    y_true = [0, 1, 0, 1, 1, 0]
    y_pred = [0.2, 0.8, 0.6, 0.9, 0.7, 0.3]
    fpr, tpr, _ = roc_curve(y_true, y_pred)
    precision, recall, _ = precision_recall_curve(y_true, y_pred)
    plt.plot(fpr, tpr, label="ROC Curve")
    plt.xlabel("False Positive Rate")
    plt.ylabel("True Positive Rate")
    plt.title("Receiver Operating Characteristic (ROC) Curve")
    plt.legend()
    plt.show()
    plt.plot(recall, precision, label="PR Curve")
    plt.xlabel("Recall")
    plt.ylabel("Precision")
    plt.title("Precision-Recall (PR) Curve")
    plt.legend()
    plt.show()