Data Scientist

모형 평가

[Book Review] 한줄정리

7 모형 평가

7.1 오버피팅과 언더피팅

오버피팅이란, 특정 데이터 셋에 과도하게 적합된 것을 말한다. 이는 테스트 데이터에 대해서 예측력이 낮아진다.
반대로 언더피팅이란, 데이터 셋에 적합이 잘되지 않고 과소 적합된 것을 말한다.
편향-분산 트레이드오프(bias-variance tradeoff)는 편향이 높으면 분산이 작아지는(편향이 낮으면 분산이 높아지는) 서로 반대의 경향을 보이는 것이다.
예) 복잡한 모형 –> 오버피팅 발생 가능성 높음 –> 분산이 커짐
간단한 모형 –> 언더피팅 발생 가능성 높음 –> 편향이 커짐

7.2 크로스-밸리데이션

Cross Validation(교차검증)이란, 오버피팅과 언더피팅을 방지하기 위한 방법 중 하나이다. 이는 데이터를 분할할 수 있는 다양한 조합을 통해서 모형의 성능을 검증하는 방법이다. 만약 k개로 분할하여 조합을 바꾼다면 K-fold cross-validation이라고 부른다.

  • 다양한 머신러닝 알고리즘 적용시
    • 파라미터 : 모형 내부에서 데이터에 의해 추정되는 값
    • 하이퍼파라미터 : 데이터로부터 나온 값이 아닌, 사용자가 직접 정하는 값
  • 데이터 분할
    • Train 데이터 : 데이터 학습 시 사용, 파라미터 구하는데 사용
    • Validation 데이터 : 하이퍼파라미터를 정하는데 사용
    • Test 데이터 : 모형의 성능을 평가하는데 사용

7.3 파이프라인 [코드]

파이프라인을 사용하면 데이터 전처리와 학습 모형을 연결해 간단하게 코드를 작성할 수 있다.

7.4 그리드 서치 [코드]

Grid Search란, 여러 매개 변수들을 대상으로 모델의 성능을 비교하여 최적의 하이퍼파라미터를 선정하는 과정을 말한다.

7.5 손실 함수와 비용 함수

7.5.1 손실 함수와 비용 함수의 개념

Loss function(손실 함수)은 실제값과 예측값의 차이로 모형의 손실을 나타내는 함수이다. 손실 함수는 각 데이터 포인트에 대해서 차이를 나타내고, 비용 함수는 데이터 셋 전체를 대상으로 손실을 나타낸다.

7.5.2 L1 손실 함수

L1 손실은 실제값과 예측값의 차이에 기댓값을 취한 것으로, 관련된 비용 함수는 MAE(Mean Absolute Error)이다.

7.5.3 L2 손실 함수

L2 손실은 실제값과 예측값의 차이에 제곱을 취한 것으로, 관련된 비용 함수에는 MSE(Mean Squared Error), RMSE(Root Mean Squared Error)가 있다. MSE는 차이에 제곱을 하기 때문에 이상치의 변화에 민감하지만, MAE나 RMSE는 상관없이 안정된 값을 보여준다.

7.5.4 엔트로피

Entropy는 정보 이론에서 확률 변수의 불확실성을 나타내는 개념이다. Cross Entropy는 두 확률분포의 교차 엔트로피를 나타내며, Kullback-Leibler Divergence는 두 확률분포 사이의 거리를 의미한다. 엔트로피는 확률이 동일하면(골고루) 불확실성이 크게 계산된다.

7.5.5 Negative Log Likelihood(NLL)

7.6 모형 성능 평가

7.6.1 모형 성능 평가에 필요한 개념

  • 분류 케이스
    • True Positive(TP) : 양성을 양성으로 제대로 예측
    • False Negative(FN) : 양성을 음성으로 잘못 예측 –> Type 2 Error
    • False Positive(FP) : 음성을 양성으로 잘못 예측 –> Type 1 Error
    • True Negative(TN) : 음성을 음성으로 제대로 예측
  • 성능 평가 기준
    • 정밀도(Precision) : 양성으로 예측했을 때, 실제로 양성인 비율 (TP/TP+FP)
    • 리콜(Recall), 민감도(Sensitivity) : 실제 양성이 양성으로 예측되는 비율 (TP/TP+FN)
    • 특이도(Specificity) : 실제 음성이 음성으로 예측되는 비율 (TN/FP+TN)
    • False Positive Rate(FPR) : 실제 음성이 양성으로 예측되는 비율 (1-특이도)
    • 정확도 : 전체 데이터 중 정답으로 분류되는 비율 (TP+TN/all)
    • 에러율 : 전체 데이터 중 오답으로 분류되는 비율 (FP+FN/all)
    • ROC 커브 : FPR 대비 민감도의 값을 비교하는 값으로 곡선 아래 면적이 높을수록 성능이 높다.

7.6.2 분류 문제에서의 성능 평가 [코드]

  • 정확도
  • F1 score : precision과 recall의 조화 평균값, 1에 가까울수록 높은 성능
  • Confusion Matrix : 예측값과 실젯값의 빈도(행렬)
  • Classification Report : 여러 분류 성능을 한 번에 확인 가능, accuracy는 전체 정확도, macro avg는 라벨별 가중치를 부여하지 않은 평균값, weighted avg는 실제 클래스별 데이터 개수를 고려한 평균값

7.6.3 회귀 문제에서의 성능 평가 [코드]

  • Mean Absolute Error : 예측값과 실제값의 차이의 절대값의 평균
  • Mean Squared Error : 오차 제곱합의 평균
  • R2 score : 전체 모형에서 설명 가능한 분산의 비율, 1에 가까울수록 높은 성능

7.6.4 군집 문제에서의 성능 평가 [코드]

군집 모형은 비지도 학습을 이용해 생성한 모형을 의미한다.

  • 실루엣 스코어(Silhouette score) : 서로 다른 군집이 얼마나 잘 분리되는지 나타내는 지표, 같은 군집의 데이터는 뭉쳐 있고 다른 군집의 데이터는 떨어져 있을수록 높은 점수

이 내용은 선형대수와 통계학으로 배우는 머신러닝 with 파이썬 : 최적화 개념부터 텐서플로를 활용한 딥러닝까지 책을 기반으로 공부한 자료이다.