y_true : binary
y_pred : binary; sensitive > resistance : 1, s<r : 0
y_pred_origin : 원시 예측값
from sklearn.metrics import (average_precision_score,
classification_report, mean_squared_error, r2_score, roc_auc_score)
dl_result = np.array(dl_result) # R, S # prediction
lb_results = np.argmax(dl_result,axis=1) # binary
#pb_results = np.max(dl_result,axis=1)
pb_results = dl_result[:,1] # S
report_dict = classification_report(Y_test, lb_results, output_dict=True) # binary 이어야 함
report_df = pd.DataFrame(report_dict).T
# 여기서 왜 lb_results로 안하고 pb_results로 하나 -> 원시 예측값 사용
ap_score = average_precision_score(Y_test, pb_results)
auroc_score = roc_auc_score(Y_test, pb_results)
왜 classification_report
을 사용할 땐 binary로 된 pred 값을 쓰는데
auc
와 ap
를 구할땐 원시 pred 값을 사용하는지 몰랐다
classification_report 함수는 일반적으로 이진 또는 다중 클래스 분류 문제에 사용되기 때문에, 예측값 y_pred로 확률이 주어진 경우에는 이를 이진 분류로 변환해주어야 합니다.
AUC는 모델의 원시 예측값을 직접 사용하는 것이 일반적입니다.