C.W.K.
Stream
Lesson 06 of 10 · published

예측, 설명, 그리고 결정

~26 min · framing, decisions, interpretability

Level 0Scout
0 XP0/48 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

혼동되는 세 가지 일

stakeholder들이 "모델 만들어줘"라고 할 때, 사실은 셋 중 하나를 원하는 거야. prediction (어떤 숫자/라벨), explanation (왜 이 prediction), 또는 decision (어떤 action). 각자 success metric도 deployment shape도 달라.

왜 중요한가

정확한 predictor라도 threshold가 틀렸거나 action이 misaligned 되어 있거나 user가 false-positive cost를 못 견디면 나쁜 decision tool이야. 좋은 explanation도 그게 가능한 intervention을 가리키지 못하면 나쁜 decision tool. 자신만만한 decision system이 inspection 없이 틀리면 책임 폭탄이고.

맞는 일에 맞춰 설계하기

먼저 일 문장을 적어: X가 주어지면 Y를 예측, threshold T를 넘으면 action Z. 팀이 이 문장을 못 끝내면 모델링 시작할 단계가 아냐. threshold와 action은 deploy 스크립트의 마법 숫자가 아니라 design doc에 적혀 있어야 해.

Code

prediction과 decision을 분리·python
probs = model.predict_proba(X)[:, 1]

def decide(prob, threshold=0.42, cost_fp=5, cost_fn=50):
    expected_cost_action = cost_fp * (1 - prob)
    expected_cost_skip = cost_fn * prob
    return "act" if expected_cost_action < expected_cost_skip else "skip"
나중에 explanation 가능하게 충분히 log·python
import json, datetime

def log_decision(user_id, features, prob, decision):
    payload = {
        "ts": datetime.datetime.utcnow().isoformat(),
        "user_id": user_id,
        "prob": float(prob),
        "decision": decision,
        "features": features,
        "model_version": "churn-2026-05-03",
    }
    print(json.dumps(payload))

External links

Exercise

보유 중인(혹은 만들 예정인) classifier 하나에 대해, 구체 단위로 cost matrix(FP cost, FN cost)를 적어. 기대 비용을 최소화하는 threshold를 계산하고, 지금까지 ship 해온 default 0.5와 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.