4번째 부분에서 우리는 분류 작업을 공부하기 시작하고 kNN 방법을 설명했습니다.
이제 우리는 제대로 작동하지 않는 분류기를 만들 수 있는 지점에 도달했습니다. 하지만 만약 우리에게 물어보면: “а 그는 얼마나 잘 작동하는가요?”,
그래서 지금 우리가 할 수 있는 최대한의 답변은 다음과 같습니다: "아... 테스트 데이터셋에서 모델이 p%의 경우에 올바르게 답했습니다".
한쪽으로는, 오래된 속담대로 말입니다: 500 루블이 200 루블보다 낫습니다. 하지만 높은 p%는 모델의 품질을 보장할까요?
이제这些问题을 해결해 보고, ML의 품질 지표를 살펴보며, 왜 그것들이 필요하고, 어떻게 올바르게 해석해야 하는지 알아보겠습니다.
Accuracy
서론에서 우리는 이미 이 지표를 논의했습니다. 이 지표는 모델의 올바른 답변의 비율을 보여줍니다.
즉시 주목해야 할 점은, Accuracy는 종종 '정확도'로 번역되지만, ML에서는 혼란을 야기할 수 있다는 것입니다. 따라서 번역 대신, '정확도'라는 단어 대신정답률, 혹은 단순히 정확도.
그것은 어떤 점이 편리한가요? 정확도는 모델의 품질을 간단하고 명확하게 평가하는 지표입니다: 모델이 올바른 클래스를 맞혔던 경우의 비율을 보여줍니다. 이것은 특히 문제에서 클래스가균형 잡혔습니다(즉, 대략적으로 같은 수의 요소를 가지고 있으며) 다양한 유형의 오류는 모두 동일하게 중요합니다.
그러나 이 지표에는 심각한 한계가 있어서, 이 모델이 구체적으로 어떤 오류를 범하는지에 대해 아무것도 말해주지 않습니다.
이제 이상한 아이디어 스타트업의 상황을 살펴보겠습니다. 이들 중 1000개 중 1개만 성공할 수 있습니다. 만약 모델이 항상 "아무것도 성공하지 못한다"라고 답한다면, 그 정확도는 99.9%가 될 것입니다.
공식적으로는 훌륭한 결과이지만, 이 모델의 실질적인 유용성은 의문이 있습니다...
바로 이런 작업에서 정확도는 더 이상 유용한 지표가 되지 않습니다 — 그것은 결정적으로 중요한 오류를 숨기고, 특히 클래스가 불균형이 있거나 오류의 비용이 다를 때 그렇습니다.
정밀도
정밀도(또는 긍정 클래스의 정확도))은 모델이 긍정적 클래스로 분류한 모든 객체 중 실제로 긍정적인 객체가 몇 개인지 보여줍니다.
스타트업의 예로 돌아가서, precision은 모델이 성공적이라고 예측한 스타트업 중 실제로 성공적인 스타트업이 차지하는 비율을 보여줍니다.
정밀도는 우리가 모델이 너무 자주 "가짜 경보를 울리지 않고 싶을 때"의 작업에서 중요합니다. 예를 들어, 은행 시스템에서는 매번 두 번째 거래를 사기라고 간주하여 취소하는 모델을 기뻐할 가능성이 낮습니다.
작은 예를 살펴보겠습니다:
만약 우리가 100개의 스타트업 아이디어가 있고 그중 5개만 실제로 성공할 것이라고 가정해 봅시다.
모델은 다음 결과를 출력했습니다:
는 5개의 성공적인 스타트업 중 3개만 올바르게 찾았고, 나머지 2개는 실패로 간주했습니다;
는 95개의 실패한 스타트업 중 모델이 90개를 올바르게 실패로 표시했지만, 나머지 5개는 잘못 성공으로 간주했습니다.
그렇다면:
전체적으로 모델은 100개의 답변 중 93개를 올바르게 제시했으므로, 정확도는 93%입니다.
는 8개 스타트업을 성공적인 모델로 간주했지만, 실제로 성공한 것은 3개뿐이었습니다. 따라서 precision은 3/8 (37.5%)입니다.
높은 accuracy에도 불구하고, 모델의 긍정적 예측을 여전히 신뢰하기는 어렵습니다.
Recall
Recall (또는 완전성)은 모델이 모든 실제 긍정적 객체 중에서 얼마나 많은 긍정적 객체를 찾아낸지를 나타냅니다.
제 예시에서는 모델이 성공적으로 식별한 성공적인 스타트업의 비율입니다(예시에서는 5개 중 3개가 해당되므로 재현율은 60%입니다).
회상은 특히 중요한 작업에서 중요합니다긍정적인 대상을 놓치지 마세요예를 들어, 질병 검색 시 낮은 재현율은 모델이 정말 bệnh 있는 사람들을 놓치는 것을 의미합니다.
F-점수
우리는 하나의 문제가 발생했습니다: precision과 recall은 서로 마치 적대하듯 경쟁합니다.
예를 들어, 모델이 '성공적인 스타트업'을 매우 드물게 예측할 수 있습니다. 그렇다면 그 모델의 precision은 높을 것입니다 - 왜냐하면 그 모델은 거의 오류를 하지 않기 때문입니다. 하지만 recall은 낮아질 것입니다, 그 모델이 여러 개의 실제로 성공적인 프로젝트를 놓칠 수 있기 때문입니다.
반대로: 만약 모델이 거의 모든 것을 성공적으로 표시하기 시작한다면, recall은 증가할 것입니다, 하지만 precision은 급격히 감소할 것입니다.
따라서 실제로는 F-score — 정밀도(precision)와 재현율(recall)을 동시에 고려하려는 지표를 많이 사용합니다. 특히 F1-score는 조화 평균으로서 정밀도()와 재현율(
)의 값으로부터 계산됩니다:
F1-score가 크다는 것은 정밀도와 재현율이 모두 충분히 높을 때만 가능합니다.
F1 외에도 그 일반화된 버전인 Fβ-score가 있습니다. F1이 정밀도(precision)와 재현율(recall) 모두에 동일하게 민감하다면 (공식이 P와 R에 대해 대칭적이다) Fβ는 이들 간의 균형을 수동으로 조절할 수 있게 합니다. 계산 방식은 다음과 같습니다:
정밀도를 더 중요하게 고려해야 한다면 를 사용하고, 재현율이 더 중요하다면
를 사용합니다.
만약 두 지표가 모두 동样하게 중요하다면, 을 사용할 것이며, 이는 표준 F1-score에 해당합니다.
따라서, Fβ는 precision과 recall 간의 균형을 유연하게 조절할 수 있게 합니다.
혼동 행렬
더 나아가기 전에, "사도의 사슬 네 명"을 통해 같은 개념에 대해 잠시 이야기해 보죠. 솔직히 말해서, 이런 지표 해석은 제가 매우 좋아하지 않습니다 — 그 안에서 쉽게 혼란스러워질 수 있지만, 말 그대로 페드야가 필요해, 필요해...
모델을 시스템으로 상상해 보세요, 각 객체에 대해 판결을 내리는 시스템입니다: 긍정적인지 부정적인지.
그리고 그런 판결마다 네 가지 결과 중 하나가 있습니다.
TP — 참 양성 (True Positive)
이는 모델이 "네, 이것은 양성 항목입니다"라고 말했고 맞았을 때의 경우입니다.
모델은 스타트업이 성공적이라고 결정했고, 실제로 성공적이었습니다.
FP — 거짓 양성 (False Positive)
모델이 "이것은 양성 항목입니다"라고 말했지만 잘못되었습니다:
모델은 스타트업이 성공적이라고 결정했지만, 사실은 실패했다.
FN — False Negative (거짓 부정)
모델은 "이것은 부정적인 대상입니다"라고 말했지만 잘못했다.
모델은 스타트업이 실패적이라고 결정했지만, 사실은 성공적이었다.
TN — True Negative (진정 부정)
모델은 부정적인 클래스를 올바르게 정의했다.
스타트업은 실패로 인정받았고, 그것도 정말 실패였습니다.
작은 가이드로 어떻게 외움
참 (T) — 모델이 맞았습니다.
거짓 (F) — 모델이 틀렸습니다.
긍정 (P) — 모델이 객체를 긍정적인 클래스(클래스 1)에 분류했습니다.
부정 (N) — 모델이 객체를 부정적인 클래스(클래스 0)에 분류했습니다.
예를 들어:
TP: T - 모델은 권리 모델입니다, 그래서 P - 객체를 긍정 클래스에 할당했습니다
FN: F - 모델은 잘못되었습니다, 그래서 N - 객체를 부정 클래스에 할당했습니다
모든 이전에 논의한 지표는 이 네 개의 숫자를 다른 관점에서 보는 방법에 불과하다는 것을 알게 되었습니다
또한, F1-score의 공식을 확장할 수 있습니다
TN이 F1-score에 참여하지 않는다는 점이 흥미롭습니다. 따라서 이 메트릭은 올바르게 분류된 부정적 객체의 수와 관계가 없습니다.
이로 인해 F1은 클래스 불균형이 있는 작업에서 특히 유용합니다. 이때 긍정적 클래스가 드물게 나타나고 정확히 그것을 정의하는 품질이 가장 중요합니다.
이런 작업에서 우리는 모델이 "모든 것을 맞추는" 정도가 얼마나 좋은지보다는 드물지만 중요한 경우를 얼마나 잘 찾는지에 관심이 있습니다 - 예를 들어 질병이나 사기 거래 같은 경우입니다.
정밀도-재현율 (PR) 곡선
실제로 대부분의 모델은 클래스를 출력하는 것이 아니라 양성 클래스에 속할 확률을 출력합니다.
우리는 임계값 (threshold)을 선택합니다: 예를 들어, 확률이 0.5보다 크다면 객체를 양성으로 간주하고, 그렇지 않다면 음성으로 간주합니다.
여기서 중요한 아이디어가 나타납니다: 이 임계값을 변경하면 precision과 recall도 함께 변경됩니다.
높은 임계값일 때 모델은 거의 아무것도 양성으로 표시하지 않습니다. precision은 크게 나타나지만, recall은 작게 나타납니다.
порог을 낮추면 모델은 더 많은 객체를 양성으로 표시하므로, recall은 증가하고 precision은 감소합니다
모든 порог 값에 대해 precision과 recall을 계산한 다음 서로 비교하면 Precision–Recall curve (PR-그래프)입니다

그래프가 우측 상단 모서리에 가까울수록 모델이 좋은 것(높은 precision과 recall)입니다. 그래프가 급격히 떨어지면 오류의 균형이 좋지 않으며, 낮은 위치에 있으면 모델의 분리 능력이 약한 것입니다.
ROC 곡선
직관적일지라도 PR 곡선은 완벽한 평가 도구가 아닙니다.
그녀의 주요 단점은 모델이 부정적 클래스를 얼마나 잘 구별하는지에 대해 아무것도 말하지 않는다는 점입니다. 긍정적 클래스에 대한 이러한 집중은 강한 불균형이 있는 작업에서 특히 유용하지만, 때로는 모델의 행동을 완전히 이해하는 데 충분하지 않을 수 있습니다.
ROC(수신기 작동 특성) 곡선은 한편으로 더 '대칭적으로' 문제를 바라본다 — 모델이 두 클래스 모두에서의 행동을 고려한다. 이는 모델이 긍정적 객체를 찾는 능력이 거짓 긍정 수가 증가함에 따라 어떻게 변하는지 보여준다.
ROC 곡선을 이해하기 위해 두량을 도입하자: TPR와 FPR(진짜 양성율과 거짓 양성율):
TPR은 모델이 실제로 양성 객체를 찾아낸 비율을 보여줍니다.
의미상으로, 이는 우리가 이미 알고 있는 재현율과 같습니다:
FPR은 모델이 부정적 객체를 잘못 양성으로 분류한 비율을 보여줍니다:
PR 곡선과 마찬가지로, 우리는 임계값(threshold)을 변경하고 각 값에 대해 TPR과 FPR을 계산합니다. 그 다음, X축에 FPR을, Y축에 TPR을 놓고 그래프를 그리면 ROC 곡선을 얻을 수 있습니다.

이것을 어떻게 사용하는지:
곡선이 왼쪽 상단 각 (0, 1) 점에 가까울수록 모델이 더 좋습니다. 이는 모델이 양성 객체를 성공적으로 찾는 것(TPR이 높음)과 동시에 거의 거짓 긍정을 만들지 않는 것(FPR이 낮음)을 의미합니다.
곡선이 갑자기 오른쪽으로 낮아지면, 이는 모델이 양성 객체를 더 많이 찾으려고 할 때 부정 객체에서 큰 오류를 시작한다는 것을 의미합니다.
대각선(0,0)에서 (1,1)까지의 선)은 무작위 모델에 해당하며, 이는 클래스를 구별하지 못하고 사실상 "추측"한다.
ROC-AUC
ROC 곡선은 모델이 다양한 임계값에서 TPR과 FPR을 어떻게 균형을 맞추는지 보여준다.
하지만 그래프 자체로 모델을 비교하기는 불편하다— 그 이유는 하나의 숫자가 아니라 전체 곡선이기 때문이다.
비교를 단순화하기 위해 ROC-AUC(Area Under Curve)를 사용합니다 — ROC 곡선 아래의 면적입니다.
얻은 숫자는 모델이 모든 가능한 임계값에서 얼마나 "평균적으로 잘" 양성 객체를 부정적 객체와 구분하는지를 나타냅니다.
그것을 해석할 수 있습니다.
AUC = 1 → 이상적인 모델 (완전한 클래스 분리)
AUC = 0.5 → 무작위 모델 (동전 던지기처럼)
AUC < 0.5 → 무작위 모델보다 나쁜 모델 (라이프하크: 예측을 뒤집으면 평범한 모델을 얻을 수 있음)
결론
이제 만약 우리에게 물어보면: “а 얼마나 잘 작동하는가 네 클래스иф이커?” — 우리는 이미 정확도처럼 하나의 숫자로 제한되지 않습니다.
우리는 모델의 품질이 다면적인 것이며 다양한 측면에서 볼 수 있다는 것을 깨달았습니다:
혼동 행렬과 기본 오류 (TP, FP, FN, TN)을 통해;
정밀도와 재현율을 통해, 이는 다양한 유형의 오류를 보여줍니다;
F-score를 통해 이 둘 사이의 균형을 나타냅니다;
PR 곡선을 통해 정밀도와 재현율 사이의 협상을 보여줍니다;
ROC 곡선을 통해 두 클래스에 대한 모델의 행동을 고려합니다;
그리고 ROC-AUC를 통해 모든 것을 하나의 숫자로 통합합니다.
가장 중요한 것은 기억해야 할 것입니다: 하나의 올바른 품질 지표는 존재하지 않습니다. 오류의 다양한 유형을 측정하는 다양한 방법만 있습니다. 선택해야 할 것은 작업에 적합한 것이어야 합니다.
지금 우리가 평가 지표에 대해 알게 되었으니, 다음 부분에서는 로지스틱 회귀로 넘어가서 모델이 단순히 평가되는 것이 아니라 데이터를 학습하는 방법을 살펴보겠습니다.











