Over-fitting 과 Under-fitting 을 이해하기 위해선 Bias 와 Variance trade-off 를 이해 해야한다. ML의 목표는 학습 데이터셋에 없는 데이터, 즉 테스트 셋에 대해서 높은 성능을 보이는 것. 만약 training set과 test set의 성능에 큰 차이가 있다는 것은 일반화 능력이 낮다.
- x: 입력값(데이터셋)
- f(x): 학습 데이터을 학습한 모델
- Y: 학습 모델의 예측값
- f’(x): f(x)를 테스트 데이터로 예측한 값
- σ2 : 노이즈의 분산
- σ2 는 노이즈의 분산으로써 예측 모델 f와 독립적인 어떠한 상수로 존재
- 예측 오차를 최소화하기 위해 bias의 제곱과 variance을 최소화해야한다.
- 만약 bias를 최소화 시키기 위해 f(x) = f*(x) 가 되도록 모델을 학습하면, bias는 0이 되지만 variance 증가.
- 만약 variance를 최소화하기 위해 어떠한 상수만을 출력하도록 학습시키면, variance는 0이 되지만 모델의 출력과 f*(x) 사이의 차이가 커져 bias 증가.
(1) 에러율이 가장 작은 모델
(2) Over-fitting, train set = GOOD, test set = BAD
(3) Under-fitting
(4) 에러율이 가장 큰 모델
- Train set 에 잘 맞게 학습하면(작은 Bias) capacity 가 큰 모델이 필요하다. 하지만 모델의 capacity 가 너무 높으면 test set에 대한 variance가 커져 전체 에러율이 높아진다.
- 반대로 capacity가 너무 작으면 제대로 학습을 할 수 없어 train set에 대한 variance가 작은 반면, test set에 대한 bias가 커지므로 전체 에러율이 높아진다.

주어진 데이터를 학습하여 새로운 데이터를 잘 예측하는 모델링 기법을 고려하는 것도 중요하지만, 데이터가 모델링에 필요한 정보량을 충분히 보유하고 있는지 확인이 필요하다. 충분하지 않은 정보량의 데이터로는 모델의 복잡도를 조절하더라도 noise의 크기만 조절 되는 과소적합에서 벗어날 수 없다.
데이터 양을 충분히 확보하는데 한계가 있다면, 모델은 데이터양에 따라 비슷한 성능을 보일것이고 예측 성능 차이가 크게 없다면 가장 단순한 모델이 시스템의 효율성 측면에서 좋은 모델이다
독립변수끼리는 상관성이 낮아야한다
두변수가 똑같은걸 설명하면 하나만 잇어도 되겟네
독립변수와 종속변수가 상관성 낮아도 괜찮다. 대신 독립변수끼리는 상관성이 낮아야함.
time complexity, space complexity 를 생각해보자