정밀도, ROI, 그리고 AUC
투자 수익률(ROI)은 정밀도에 수익 대비 비용의 비율을 곱한 형태로 분해할 수 있어요. 앞서 설명했듯이, ROC 곡선의 AUC가 높더라도 모델의 정밀도는 낮을 수 있어요. 정밀도가 낮으면 ROI도 낮아집니다. 이번 연습 문제에서는 고정된 r(노출 수 대비 클릭 1건의 수익)과 cost(노출 수 대비 비용)를 가정하고, 정밀도와 ROC 곡선의 AUC 값을 함께 사용해 MLP로 예시 ROI를 계산하여 세 값이 어떻게 달라지는지 확인해 봅니다.
X_train, y_train, X_test, y_test가 작업 공간에 준비되어 있고, clf는 MLP 분류기이며, 확률 점수는 y_score에, 예측 타깃은 y_pred에 저장되어 있어요. 또한 pandas는 pd로, sklearn도 사용할 수 있어요.
이 연습은 강의의 일부입니다
Python으로 Machine Learning을 활용한 CTR 예측
연습 안내
- MLP 분류기의 정밀도
prec를 계산하세요. - 정밀도
prec를 기반으로 총 ROI를 계산하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get precision and total ROI
prec = ____(y_test, ____, average = 'weighted')
r = 0.2
cost = 0.05
roi = ____ * r / cost
# Get AUC
roc_auc = roc_auc_score(y_test, y_score[:, 1])
print("Total ROI: %s, Precision: %s, AUC of ROC curve: %s" %(
roi, prec, roc_auc))