Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

StudyStudyStudyEveryday

1-2. 기계학습 간단 정리 - 모형의 평가 본문

DataScience/비정형 데이터 분석 (빅데이터와 통계읽기)

1-2. 기계학습 간단 정리 - 모형의 평가

따듯한붕어빵 2022. 4. 11. 14:52

 

 

 

2. 모형의 평가

2-1. 훈련데이터, 평가데이터, 시험데이터

2-2. 모형의 복잡도

2-3. 지도학습의 모형평가 방법

2-4. 비지도학습의 모형평가 방법

 

 

 

2-1. 훈련데이터, 평가데이터, 시험데이터

훈련데이터와 모형의 적합

  • 전체 데이터셋으로 모형 학습/평가 동시 수행 시 과적합 발생
  • 모형 적합에 사용된 데이터가 아닌 모형 평가를 위한 데이터 필요
  • 따라서, 전체 데이터셋을 훈련/평가/시험 데이터로 분리한다.
    • training dataset : 모형 학습
    • validation dataset : 학습된 모형 평가 (적합한 모수 튜닝 및 모형 선택)
    • test dataset : 최종적으로 학습된 모형 성능 확인

 

 

여러 가지 적합방법과 모형의 평가

  • 모델 복잡성 (Model Complexity)
    • 과적합 (Overfitting) : 모델이 너무 복잡해 training set의 평가지표만 최적화하여 test set에서 오차가 커지는 상황 (즉, 너무 training set 최적화 되어있음)
    • 과소적합 (Underfitting) : 모델이 너무 단순해 training/test set 모두에서 오차가 큰 상황 (좀 더 복잡한 모형을 도입할 필요가 있음)

 

 

선형회귀모형에서 변수선택과 모형평가

 

선형회귀모형에서 모형 복잡도 = 선택된 변수의 개수

  • 선형회귀모형 변수 선택 방법은 ? (=복잡도 조절방법) ★
    • 전진 선택법 (Forward Selection)
    • 후진 제거법 (Backward Elimination)
    • 단계적 선택법 (Stepwise Selection)
  • 선형회귀모형 모형 평가 (모형의 복잡도를 어떻게 선택할 것인가?)
    • \(R^2\) or \(R^2_{adj}\) : 데이터가 모형에 잘 적합하는지 판단
    • MSE : 평균제곱오차로 적합값과 참값의 차이를 제곱의 평균으로 모형 평가

 

 

시험데이터(Test dataset)을 통한 성능 측정

  1. training dataset으로 모형 적합 (회귀 모형, 분류 모형 등)
  2. validation dataset으로 적합된 모형 평가 및 선택
  3. 1, 2과정 반복으로 (cross-validation 등) 최종 모형 선택
  4. 최종 모형에서 test dataset을 이용해 예측값 도출
  5. 예측값과 test dataset의 참값으로 모형 성능 측정
    • 분류모형 : accuracy, AUC 등
    • 예측모형 : MSE 등

 

 

 

2-2. 모형의 복잡도

선형회귀모형에서 변수의 수와 복잡도

  • 변수의 수 증가 -> 모형의 복잡도 증가
  • 선형회귀모형의 복잡도
    • 변수의 수 증가 -> \(R^2\)는 항상 증가
    • \(R^2\)에 변수의 수에 대한 패널티 부여 -> \(R^2_{adj}\)
    • 일반적으로 \(R^2\)보다 \(R^2_{adj}\)를 많이 봄

 

능형회귀모형과 모형 공간의 크기 제약조건

 

회귀모형 정규화 (regularization) : 회귀계수 \(\beta\)의 공간에 제약조건이 있는 회귀모형

 

ridge와 lasso

여기서 Ridge는 L2 norm을 제한하며 Lasso는 L1 norm을 제한한다.

( 다음 링크에서 좀 더 자세한 내용을 찾아볼 수 있다.)

 

 

SVM에서 모형복잡도의 조정

SVM (Support Vector Machine) : 결정경계 (Decision Boudary)를 정의하는 모델이다. (결정경계 : 분류를 위한 기준 선)

  • SVM에 margin에 대한 조건을 조절하면서 의사결정경계가 단순한 직선이 될지 복잡한 곡선이 될지 조절
  • SVM의 복잡도 조절하는 tuning parameter 찾아보기 (아래 링크 참고)
  • 선형 SVM / 비선형 SVM

 

신경망모형의 튜닝과 복잡도

  • 모형 구조 변경
    • layer 수 / filter 수 / pooling 크기 / filter 크기
    • 신경망이 깊을수록 학습이 느려지고 과적합 가능성 증가
    • weight decay : loss function의 가중치가 커질수록 패널티를 주어 과적합 방지
  • 최적화 알고리즘 (optimizer) / 학습률 (learning rate)
    • 모형에 적합한 최적화 알고리즘 선택
    • Adam, SGD, RMSprop 등
    • 학습률이 너무 크거나 작으면 해가 수렴하지 않거나 학습시간이 너무 길어짐
  • 손실함수 (loss function)
    • 모형의 구조와 데이터에 따라 적합한 손실함수 사용
    • weighted loss, MSE loss, CE loss 등

 

 

 

2-3. 지도학습의 모형평가방법

회귀모형의 성능지표

회귀모형에서 MSE와 MAD : 적합된 회귀모형의 성능평가 지표는 참값과 적합값의 차이를 계량화

  • 평균 제곱오차 (MSE, Mean Square Error)
    • \(MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 \)
    • 제곱을 하기 때문에 특이치에 민감
  • 평균 절대편차 (MAD, Mean Absolute Deviation)
    • \(MAD = \frac{1}{n}\sum_{i=1}^{n} |y_i - \hat{y}_i|\)
    • MSE보다 특이치에 덜 민감하다.

 

 

 

 

분류모형의 성능지표  ★★★★★

혼동행렬 (Confusion Matrix)

  • 민감도 Sensitivity (=재현율 Recall) = \( \frac{TP}{TP + FN} \) 
  • 특이도 Specificity = \( \frac{TN}{TN + FP} \)
  • 정확도 Accuracy = \( \frac{TP+TN}{TP + TN + FP + FN} \)
  • 정밀도 Precision = \( \frac{TP}{TP + FP} \)
  • F1-score = \( 2 \times \frac{Precision \times Recall}{Precision + Recall} \)
  • \( G-Measure = \sqrt{\frac{TP}{TP+FP} \times  \frac{TP}{TP+FN}} \)
  • AUC (Area Under Curve) = ROC curve 아래면적 / 1에 가까울수록 좋은 모형

 

  • Type 1 Error : 실제로는 참인데 거짓이라고 예측하는 경우
  • Type 2 Error : 실제로는 거짓인데 참이라고 예측하는 경우

 

 

순위모형의 성능지표

  • 해밍 거리 (Hamming distance)

집합 \(S\), 자연수 \(n\)

이 거리함수를 \( S^n\) 위의 해밍 거리라고 한다.

 

ex ) 1011 and 0111 => 2

ex ) acddf and bcdxy => 3

 

두 집합에서 같지 않은 것의 개수(?) 라고 생각하면 될 듯하다.

 

  • DCG (Discounted Cumulative Gain)

  • nDCG (normalized Discounted Cumulative Gain)
    • DCG의 위치정보를 이용해 normalize한 것이다.

 

 

 

2-4. 비지도학습의 모형평가방법

군집모형의 성능지표

  • Silhouette Score : 한 군집과 다른 군집과의 평균거리의 비 이용

가정 

  • \((i)\) : 관측치 \(i\)의 군집번호
  • 총 K개의 군집이 있다
  • \(|C|\) : 집합 \(C\)의 원소 개수

 

(adjusted) Rand Index

  • Rand Index : \( R = \frac{a+b}{\binom{n}{2}} \)
    • 총 n개의 데이터가 있을 때, 한 쌍을 임의로 선택한 경우 그 쌍이 같은 군집에 있는지, 다른 군집에 있는지 비교하여 만든 지표
    • 데이터의 일부분에 대해서 군집 정보를 알고 있는 경우 유용
    • a : 두 개의 군집 내 동일하게 짝지어진 쌍
    • b : 두 개의 군집 내 동일하지 짝지어지지 않은 쌍
    • R = 1에 가까울수록 좋은 성능
  • Adjusted Rand Index : 각 Cluster의 크기를 반영하여 Rand Index를 보정한 측도

 

 

Calinski-Harabasz Index

  • Calinski-Harabasz Index : between-cluster dispersion과 within-cluster dispersion의 비율
    • n개의 데이터를 가지는 전체 데이터셋 U가 있고 U는 \( C_1, \cdots , C_K \)의 Cluster로 구성됨
    • 각 클러스터 \(C_k\)는 \(n_k\)의 원소를 가지고 있음

 

 

covariance는 행렬이므로 transpose를 이용해 수로 만들어줬다.

여기서 W와 B는 다음과 같다.

여기서 W는 within covariance, B는 between covariance 이다.

군집이 조밀하고 잘 분리되어 있을 때 s index 가 높다.

 

 

 

 

 

 

 

Comments