ROCカーブとAUCの計算については、以下を参照してください。
AUC を完全に理解し、マスターする - Zhihu (zhihu.com)
ROC はクラスの不均衡の影響を受けません。AUC インデックスの欠点は、モデルの並べ替え能力のみを反映し、モデルの適合度を反映できないことです。( AUC の欠陥 - Zhihu (zhihu.com) )
一、sklearn.metrics.roc_curve ( y_true , y_score , * , pos_label=None , sample_weight=None , drop_intermediate=True )
二項分類にのみ使用できます
y_true と y_score の形状は (n_samples,) です。fpr、tpr、およびしきい値を返します。形状は (n_samples,) です。
例:
>>> numpy を np としてインポート >>> sklearn インポートメトリクスから >>> y = np.array([1, 1, 2, 2]) >>> スコア = np.array([0.1, 0.4, 0.35, 0.8 ]) >>> fpr, tpr, 閾値 = metrics.roc_curve(y, スコア, pos_label=2) >>> fpr array([0. , 0. , 0.5, 0.5, 1. ]) >>> tpr array( [0. , 0.5, 0.5, 1. , 1. ]) >>> 閾値 配列([1.8 , 0.8 , 0.4 , 0.35, 0.1 ])
二、sklearn.metrics.precision_recall_curve ( y_true , probas_pred , * , pos_label=None , sample_weight=None )
sklearn.metrics.roc_curveに似ている
三、sklearn.metrics.auc ( x , y )
これは、曲線上の点を指定して、台形則を使用して曲線下面積 (AUC) を計算する一般的な関数です。
パラメータの説明:
例:
>>> numpy を np としてインポート >>> sklearn インポートメトリクスから >>> y = np.array([1, 1, 2, 2]) >>> pred = np.array([0.1, 0.4, 0.35, 0.8 ]) >>> fpr、tpr、しきい値 = metrics.roc_curve(y, pred, pos_label=2) >>> metrics.auc(fpr, tpr) 0.75
四、sklearn.metrics.roc_auc_score ( y_true , y_score , * , Average='macro' , Sample_weight=None , max_fpr=None , multi_class='raise' , label=None )
二項分類、マルチクラス単一ラベルおよびマルチラベル分類に使用できますが、一部のパラメータには値が制限されています
y_true と y_score の形状は (n_samples,) または (n_samples, n_classes) です。
平均パラメータ:マルチカテゴリでのみ有効です。の場合 None
、各クラスのスコアが返されます。それ以外の場合、これによって、データに対して実行される平均化のタイプが決定されます。「マクロ」は、各クラスの auc を計算し、平均を取ることです。「マイクロ」は、形状を次のように設定します。 (n_samples, n_classes) y_true と y_score の各要素を 0/1gt ラベルと対応する確率とみなし、グローバル auc (ラベル指標行列の各要素をラベルとみなしてグローバルにメトリクスを計算する) を計算します。
五、Pythonは二項分類と多分類のROC曲線チュートリアルを実現します
参考:
sklearn.metrics.roc_curve — scikit-learn 1.1.1 ドキュメント