5.3.2.4 不確実性を考慮する~ 5.3.2.5 適合率-再現率カーブとROCカーブ
(60m)06:00~07:00
5.3.2.4
decision_function(決定指向数 0を境に分類強度を図る)
predict_proba(1~0の間で分類強度を図る)
のthresholdを変更することで
precison(適合率),recall(再現率)の能力を変動できる。
predict_probaがある場合は割合で指定するのが簡単だ。
5.3.2.5 適合率-再現率カーブとROCカーブ
precision_recall_curve:適合率-再現率カーブ
from sklearn.metrics import precision_recall_curve
上記表から読み取れるものは以下である。
SVCは再現率が高いまま適合率0.5程度まで保持できる。
RFは再現率、適合率ともに極端な分類がうまくいっている。
average precision(平均適合率):カーブ以下を積分して導き出す。
平均適合率でみるとRFのほうが適正があることになる。
ただしF1スコアでみるとSVCが上である。
カーブなどを見て適正なモデル選択をするべき。
from sklearn.metrics import average_precision_score
ap_rf =average_precision_score(y_test,rf.predict_proba(X_test)[:,1])
ap_svc =average_precision_score(y_test,svc.decision_function(X_test))
from sklearn.metrics import f1_score
print(f"f1_score of random forest :{f1_score(y_test,rf.predict(X_test)):.3f}")
print(f"f1_score of SVC:{f1_score(y_test,svc.predict(X_test)):.3f}")