#1
알고 있는 metric에 대해 설명해주세요. (ex. RMSE, MAE, recall, precision ...)
분류를 위한 평가지표
오차 행렬(confusion matrix)
오차 행렬오차 행렬은 모델이 예측을 하면서 얼마나 헷갈리고 있는지를 보여주는 지표이다. 주로 이진 분류에서 많이 사용하며 이진 분류에 대한 오차 행렬은 위의 그림처럼 같이 나타낼 수 있다. True Positive는 긍정으로 예측을 했는데 실제로 긍정인 경우를, False Positive는 긍정으로 예측했는데 실제로 부정인 경우를, False Negative는 부정으로 예측했는데 실제로 긍정인 경우를, True Negative는 부정으로 예측했는데 실제로 부정인 경우를 말한다. 위의 값을 바탕으로 모델이 어떤 오류를 발생시켰는지를 살펴볼 수 있다.
정확도(Accuracy)
정확도는 모델의 예측이 얼마나 정확한지를 의미한다. 정확도는 **(예측 결과가 동일한 데이터 개수)/(전체 예측 데이터 개수)**로 계산할 수 있다. 하지만 라벨 불균형이 있는 데이터에서 정확도를 사용하면 안 된다. 예를 들면, 0과 1의 비율이 9:1인 데이터가 있다고 했을 때, 모두 0으로 예측하면 정확도가 90%가 나올 것이다. 이는 잘못된 판단이므로 정확한 판단을 위해서는 다른 지표를 사용해야 한다.
정밀도(precision), 재현율(recall)
정밀도와 재현율은 긍정 데이터 예측 성능에 초점을 맞춘 평가지표이다.
F1-Score
정밀도와 재현율 한 쪽에 치우치지 않고 둘 다 균형을 이루는 것을 나타낸 것이 F1-Score
이다. F1-Score는 정밀도와 재현율의 조화평균으로 계산할 수 있다.
ROC-AUC
ROC는 FPR(False Positive Rate)가 변할 때 TPR(True Positive Rate)가 어떻게 변하는지를 나타내는 곡선을 말한다. 여기서 FPR이란 **FP / (FP + TN)**이고, TPR은 **TP / (FN + TP)**으로 재현율을 말한다. 그럼 어떻게 FPR을 움직일까? 바로 분류 결정 임계값을 변경함으로써 움직일 수 있다. FPR이 0이 되려면 임계값을 1로 설정하면 된다. 그럼 긍정의 기준이 높으니 모두 부정으로 예측될 것이다. 반대로 1이 되려면 임계값을 0으로 설정하여 모두 긍정으로 예측시키면 된다. 이렇게 임계값을 움직이면서 나오는 FPR과 TPR을 각각 x와 y 좌표로 두고 그린 곡선이 ROC이다.AUC는 ROC 곡선의 넓이를 말한다. AUC가 높을수록 즉, AUC가 왼쪽 위로 휘어질수록 좋은 성능이 나온다고 판단한다. 즉, TPR이 높고 FPR이 낮을수록 예측 오류는 낮아지기 때문에 성능이 잘 나온다 볼 수 있다.
회귀를 위한 평가지표.정확도(accuracy)
MAE(Mean Absolute Error)
예측값과 정답값 사이의 차이의 절대값의 평균을 말한다.
MSE(Mean Squared Error)
예측값과 정답값 사이의 차이의 제곱의 평균을 말하며, MAE와 달리 제곱을 했기 때문에 이상치에 민감하다.
MSE=1N∑i=1N(yi−yiˊ)2MSE = \frac{1}{N} \sum^N_{i=1} (y_i - \acute{y_i})^2MSE=N1i=1∑N(yi−yiˊ)2
RMSE(Root Mean Squared Error)는 MSE에 루트를 씌운 값을 말한다.
RMSLE(Root Mean Squared Logarithmic Error)는 RMSE와 비슷하나 예측값과 정답값에 각각 로그를 씌워 계산을 한다.RMSLE=1N∑i=1N(log(yi+1)−log(yiˊ+1))2RMSLE = \sqrt{\frac{1}{N} \sum^N_{i=1} (\log(y_i+1) - \log(\acute{y_i}+1))^2}RMSLE=N1i=1∑N(log(yi+1)−log(yiˊ+1))2R Squared는 분산을 기반으로 예측 성능을 평가하는 지표를 말한다. 정답값의 분산 대비 예측값의 분산 비율을 지표로 하며, 1에 가까울수록 정확도가 높다.
<aside> ❓ 예상 꼬리 질문
References
#2
정규화를 왜 해야할까요? 정규화의 방법은 무엇이 있나요?
정규화는 개별 피처의 크기를 모두 똑같은 단위로 변경하는 것을 말한다. 정규화를 하는 이유는 피처의 스케일이 심하게 차이가 나는 경우 값이 큰 피처가 더 중요하게 여겨질 수 있기 때문이다. 이를 막기 위해 피처 모두 동일한 스케일로 반영되도록 하는 것이 정규화이다. 정규화하는 방법으로는 대표적으로 두 가지가 존재한다.
첫 번째 정규화 방법은 **최소-최대 정규화(min-max normalization)**으로 각 피처의 최소값을 0, 최대값을 1로 두고 변환하는 방법이다. 값을 $x$로, 최소값을 $min$, 최대값을 $max$로 둘 때, 정규화된 값은 $\frac{x - min}{max - min}$으로 계산할 수 있다.
두 번째 정규화 방법으로 **Z-점수 정규화(z-score normalization)**이 있다. 이 방법은 각 피처의 표준편차와 평균으로 값을 정규화시킨다. 정규화된 값은 $\frac{x - mean}{std}$로 계산할 수 있다.
<aside> ❓ 예상 꼬리 질문
</aside>