과적합

AI/MachineLearning

과적합(Overfitting)

과적합(Overfitting)은 모델이 학습 데이터에만 너무 치중되어 학습 데이터에 대한 예측 성능은 좋으나 테스트 데이터에 대한 예측 성능이 떨어지는 경우를 말한다. 모델이 과적합되면 일반화되지 않은 모델이라고도 한다. 과적합이 발생하는 원인은 아래와 같다. 데이터의 퍼진 정도, 즉 분산(variance)이 높은 경우 너무 많이 학습 데이터를 학습시킨 경우 (epochs가 매우 큰 경우) 학습에 사용된 파라미터가 너무 많은 경우 데이터에 비해 모델이 너무 복잡한 경우 데이터에 노이즈 & 이상치(outlier)가 너무 많은 경우 import numpy as np import tensorflow as tf from visual import * import logging, os logging.disable(..

AI/MachineLearning

의사결정 나무

의사결정 나무 - 회귀 - 겹치지 않는 구역으로 데이터를 나눔 - 특정 구역에 데이터가 있으면, 그 데이터의 예측값은 해당 구역의 평균값임 어떤 구역으로 나누어야 하는가? - 구역을 쪼개는 기준 어떤 구역으로 어떻게 나누어야 하는가? 해당 구역에 있는 데이터의 실제값(y)과 예측값의 오차 제곱합을 최소화하는 구역 RSS(Residual Sum of Squares) RSS(Residual Sum of Squares) : 회귀 알고리즘에서 등장한 개념으로 실제값과 예측값의 단순 오차 제곱합 단순오차 제곱합 : 전체 데이터에 대한 실제 값과 예측하는 값의 오차들의 제곱 총합 어떤 구역으로 어떻게 나누어야 하는가? ↓ RSS를 최소화하는 모든 구역을 한 번에 찾는 것은 계산적으로 불가능함 ↓ 위에서부터 순간순간..

AI/MachineLearning

과적합 방지 기법 - 교차 검증

교차 검증이란? 과적합 방지를 위해 데이터를 분리하는 방법 k-fold 교차 검증 학습용 데이터를 계속 변경하며 모델을 훈련시키는 방법 k-fold 교차 검증 순서 K를 설정하여 데이터 셋을 K개로 나눔 K개 중 한 개를 검증용, 나머지를 학습용으로 사용 K개 모델의 평균 성능 확인 K-fold 교차 검증을 위한 사이킷런 함수/라이브러리 KFold(n_splits) n_splits : 분리할 데이터(fold) 개수 [KFold].split(X) 실제로 데이터를 분리하기 위한 인덱스를 반환합니다. X : 분리하고자 하는 데이터 import numpy as np from sklearn.model_selection import train_test_split from sklearn.datasets import ..

AI/MachineLearning

과적합과 정규화

과적합(Overfitting)이란? 모델이 주어진 훈련 데이터에 과도하게 맞춰져서 새로운 데이터가 입력 되었을 때 잘 예측하지 못하는 현상 즉, 모델이 과도하게 복잡해져 일반성이 떨어진 경우를 의미함 과적합 방지 방법 1. 교차검증 (Cross Validation) 모델이 잘 적합되었는지 알아보기 위해 훈련용 데이터와 별개의 테스트 데이터, 그리고 검증 데이터로 나누어 성능 평가하는 방법 k-fold 교차검증 : 훈련 데이터를 계속 변경하며 모델을 훈련시킴. 데이터를 k등분으로 나누고 K번 훈련시킴. 2. 정규화 모델의 복잡성을 줄여 일반화된 모델을 구현하기 위한 방법 -> 모델 베타i에 패널티를 부여함 L1 정규화 (Lasso) : 불필요한 입력값에 대응되는 베타i를 정확히 0으로 만듦. L2 정규화 ..

향식이
'과적합' 태그의 글 목록