편향-분산 트레이드오프

Python에서의 모델 검증

Kasey Jones

Data Scientist

분산

  • 분산: 학습 데이터를 지나치게 따름
    • 테스트 데이터에 일반화 실패
    • 학습 오류 낮고 테스트 오류 높음
    • 과적합, 높은 복잡도에서 발생
Python에서의 모델 검증

과적합 모델(높은 분산)

과적합은 예측이 학습 데이터를 지나치게 따를 때 발생합니다. 산점도에서 예측이 실제 값과 거의 일치한다면 과적합일 가능성이 큽니다.

Python에서의 모델 검증

편향

  • 편향: 데이터와 반응 간의 관계를 찾지 못함
    • 학습/테스트 오류 높음
    • 과소적합에서 발생
Python에서의 모델 검증

과소적합 모델(높은 편향)

과소적합은 예측 변수와 목표 변수 사이에 관계가 있지만 이를 찾지 못했을 때 발생합니다.

Python에서의 모델 검증

최적 성능

Python에서의 모델 검증

과적합/과소적합을 유발하는 매개변수

rfc = RandomForestClassifier(n_estimators=100, max_depth=4)
rfc.fit(X_train, y_train)

print("Training: {0:.2f}".format(accuracy_score(y_train, train_predictions)))
Training: .84
print("Testing: {0:.2f}".format(accuracy_score(y_test, test_predictions)))
Testing: .77
Python에서의 모델 검증
rfc = RandomForestClassifier(n_estimators=100, max_depth=14)
rfc.fit(X_train, y_train)

print("Training: {0:.2f}".format(accuracy_score(y_train, train_predictions)))
Training: 1.0
print("Testing: {0:.2f}".format(accuracy_score(y_test, test_predictions)))
Testing: .83
Python에서의 모델 검증
rfc = RandomForestClassifier(n_estimators=100, max_depth=10)
rfc.fit(X_train, y_train)

print("Training: {0:.2f}".format(accuracy_score(y_train, train_predictions)))
Training: .89
print("Testing: {0:.2f}".format(accuracy_score(y_test, test_predictions)))
Testing: .86
Python에서의 모델 검증

기억하세요, 과적합은 여러분만이 막을 수 있습니다!

Python에서의 모델 검증

Preparing Video For Download...