2024. 2. 2. 10:49ㆍ학습/머신러닝
목차 - 분류 평가 지표
1. 정확도와 F1 - Score
2. 혼동행렬(confusion Matrix)
3. 지표 - 정밀도와 재현율
4. 조화평균과 F1 - Score
01 정확도의 한계
데이터를 예측하는 방법에는 회귀와 분류가 있었다. 이전까지는 범주형 변수를 예측하는 분류 모델인 로지스틱회귀에 대해서 배웠다. 이번엔 분류의 평가 지표에 대해 이야기해보겠다. 이전에 롤베이스를 바탕으로 정확도를 예측해봤는데 '맞춘 데이터 / (실제) 전체 데이터'를 정확도라고 했었다. 근데 이 정확도 수식에는 한계가 있다. 한계를 사례를 들어보자면 병원에서 희귀병을 진단해주는 소프트웨어를 개발해달라는 요청을 받은 데이터 분석가의 이야기다. 희귀병을 예측하는 모델을 만들 때 너무 귀찮아서 모든 사람을 정상으로 판별하는 '예측 모델'을 만들었다. 따라서 100명 중에 실제 환자가 5명이라고 했을 때, 만든 야매 예측 모델의 정확도는 95명/100명으로 95%에 육박한다. 정확도로는 매우 높은 수치인 것이다. 이 경우는 데이터가 인밸런스=불균형 되어있다라고 한다. 따라서 이 사례를 보면 데이터 값이 어느 한쪽으로 치우쳐져 있을 때 정확도의 잘 작동하지 못하는 것이다. 따라서 이런 분류 예측을 거르기 위해 보완적인 지표가 필요하다. 그래서 F1-Score 가 생겨났다. 평가 지표를 설명하기 전에 혼동 행렬에 대해 알아보고 가야한다.
02 혼동행렬
혼동행렬은 예측데이터와 실제데이터에 대한 pivot 테이블 형태이다. y=1은 (희귀병)양성, y=0은 (희귀병)음성이라는 뜻이다. 실제는 환자들의 실제 데이터고 예측은 우리 입장에서 예측 모델로 볼 수 있다. TP를 설명하자면 True(맞았다) Positive(예측방향 y=1)라는 의미이다. True/False는 예측한게 맞았다/틀렸다. Positive/Negative는 예측해서 내놓은게 양성/음성인지 생존/죽음인지 알려주는 것이다. 여러가지 방향으로 해석하면서 연습해보자.
다시 타이타닉을 예로 들어 설명하자면, 정밀도는 생존할 것이라고 (y=1)생각한 사람들 중에서 실제로 생존해서 예측에 성공한 비율이고 (예측값 내에서만/ 예측한 y=1 내에서만) 재현율은 실제로 맞춰야하는 모든 데이터에서 예측으로 성공한 데이터의 비율을 말한다. (실제로 맞춰야하는 값 내에서만/ 실제값 y=1 내에서만)
여기서 몇가지 지표를 알아낼 수 있는데, 우리가 결론적으로 보고 싶은 수치가 바로 TP(True Positive)이다. 이것을 가로축으로 보느냐 세로축으로 보느냐에 따라서 지표가 달라진다. 정밀도와 재현율은 다음과 같이 설명된다.
1) 정밀도(Precision): 모델이 양성 1로 예측한 결과 중 실제 양성의 비율(모델의 관점)
2) 재현율(Recall): 실제 값이 양성인 데이터 중 모델이 양성으로 예측한 비율(데이터의 관점)
- 모델 관점에서 모델로 예측했는데 얼마나 맞췄는가? 라는 것을 정밀도라고 한다.
- 데이터 관점에서 실제 희귀병 환자 중에 모델이 얼마나 맞췄는가? 를 재현율이라고 한다. 실제 데이터 기준으로 본다.
정밀도와 재현율이 정확도보다 더 정확하고 이 두개를 조화 평균한다. 평균에는 다양한 방법이 있다. 평균이란? 여러 개의 값 중에서 중심 값을 찾으라는 의미이다. 일반적으로 이상치가 있을 경우는 이상치에 민감한 산술평균을 잘 사용하지 않고, F1-score는 많은 평균 중에 조화평균을 채택해서 쓰고 있다.
여기서 는 조화평균을 나타내며, 은 값의 개수이다. 조화평균은 각 값의 역수의 산술 평균의 역수로 계산됩니다. 이는 주로 비율이나 비율에 대한 평균을 계산하는 데 사용되며, 일반적으로 조화평균은 값들이 비례할 때 큰 값에 덜 영향을 받는 특성을 가지고 있다. 예를 들어, 두 값 a와 b의 조화 평균은 다음과 같이 표현된다.
정리하자면 조화평균이란? '데이터의 개수(n)/(1/a)+(1/b)'의 수식을 가진다. 만약 두 개의 데이터 값이 주어진다면 '데이터의 조화 평균은 = 2*a*b/a+b'로 정의할 수 있다.
여기에 정밀도화 재현율을 대입하면 F1-Score 가 된다. 그럼 이제 야매 예측모델이 잘 만들어졌는지 아닌지 판단할 수 있다.
희귀병 모델의 정확도는 95%이나 f1-score는 0이기 때문에 모델이 제대로 작동하지 않고 있다. 머신이의 야매제작 분류모델이 만천하에 들통났다. 정신차려 김머신. 극단적인 예시였지만 이해하기 쉬워서 좋았다. 타이타닉 예시는 이와 다르게 F1-Score가 조금 더 높게 나올 것이다. 정확도랑 똑같이 1에 가까울수록 높은 수치이다.
💡위처럼 정확도가 제 기능을 못하는 것은 분류에서 특히 Y값이 unbalance하지 못할 때 일어난다. 이런 경우는 매우 빈번하게 발생한다. 따라서 이를 위해 1) Y범주의 비율을 맞춰주거나, 2) 평가 지표 f1 score를 사용함으로써 이를 보완할 수 있다.
y범주의 비율을 맞춰주는 것은 데이터 생성을 따로 해줘야한다. 95% 와 9% 비율로 데이터가 언밸런스 하게 되어있는 경우에 5%에 해당하는 데이터를 바탕으로 여기에 가짜 데이터를 증강시켜서 비율을 맞춰주기도 하고 극단적으로 95%를 어느정도 날려버리기도 하고 다양한 방식으로 데이터를 전처리할 수 있다. 하지만 우리는 여기까지 가진 말고 f1 score로^^
'학습 > 머신러닝' 카테고리의 다른 글
시계열 데이터 예측 모델 (머신러닝) (0) | 2024.03.20 |
---|---|
Machine Learning 8 : 로지스틱회귀 실습 (0) | 2024.02.02 |
Machine Learning 6 : 로지스틱회귀 (0) | 2024.02.01 |
Machine Learning 5 : 다중선형회귀, 실습 (0) | 2024.02.01 |
Machine Learning 4 : R-Square (0) | 2024.02.01 |