Post

사이킷런 fit_transform, fit, transform

사이킷런 fit_transform, fit, transform

sklearn에서의 fit과 transform

  • fit : 학습하다(기억하다)
  • transform : 변환하다(적용하다)

잘못된 학습 방법 (fit_transform을 훈련,테스트셋에 적용)

⚠ 문제점

훈련 데이터와 테스트 데이터에서 각각 fit()을 실행

  • → 훈련 데이터에서 구한 중앙값 ≠ 테스트 데이터에서 구한 중앙값
  • → 서로 다른 기준으로 결측값이 채워져서 일관성이 깨짐ㄴ
    1
    2
    
    X_train = imputer.fit_transform(housing_train_num)  # 훈련 데이터에서 fit & transform
    X_test = imputer.fit_transform(housing_test_num)  # 테스트 데이터에서 fit & transform
    

제대로된 학습 방법 (fit과 transform을 따로 적용)

1
2
3
imputer.fit(housing_train_num)  # 훈련 데이터에서 fit() 실행 (중앙값 학습)
X_train = imputer.transform(housing_train_num)  # 학습한 중앙값으로 변환
X_test = imputer.transform(housing_test_num)  # 같은 중앙값을 테스트 데이터에도 적용
This post is licensed under CC BY 4.0 by the author.