#はじめに
大した話ではないのだがメモ。理由の掘り下げはしていない。
#環境
- sklearn 0.22.2.post1
#scikit-learnでのrocaucの計算方法
以下のように実行する。tには正解値、yには予測値を与える
from sklearn import metrics
t = [0,1,0]
y = [1,0,0]
rocauc = metrics.roc_auc_score(t, y)
print(rocauc)
#メモ
正解値に3値以上が含まれるとエラーとなる。
from sklearn import metrics
t = [0,1,3]
y = [1,0,0]
rocauc = metrics.roc_auc_score(t, y)
print(rocauc)
multi_classの指定をすればでないらしい。
エラー内容
ValueError: multi_class must be in ('ovo', 'ovr')
正解値に1値しかない場合エラーとなる。
from sklearn import metrics
t = [0,0,0]
y = [1,0,0]
rocauc = metrics.roc_auc_score(t, y)
print(rocauc)
エラー内容
ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.
予測値は必ずしも0~1の確率でなくてもよく、スコアでも構わない
どういう計算になるかは、また機会があれば。。