離婚後の日記

離婚した。

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

f:id:jahjha:20190420080053j:plain

上記表から読み取れるものは以下である。
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}")

 
Average precision of random forest:0.666
Average precision of SVC:0.663
f1_score of random forest :0.610 f1_score of SVC:0.656