fit() vs transform() vs fit_transform() 차이점

c.haha.e·2025년 8월 13일

STUDY

목록 보기
15/27

fit() vs transform() vs fit_transform() 차이점

메서드하는 일사용 시기
fit()데이터를 보고 학습(파라미터 저장)처음 학습할 때
transform()저장한 파라미터로 변환만 함이미 fit된 후, 새로운 데이터 변환 시
fit_transform()fit + transform 한 번에 실행처음 데이터 변환 시 빠르게 처리할 때

예제 1: PolynomialFeatures

from sklearn.preprocessing import PolynomialFeatures

X = [[2, 3]]

poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
  • fit()은 어떤 조합 항들을 만들어야 할지 규칙(차수, 변수 수 등)을 파악
  • transform()은 그 규칙에 따라 실제 값을 계산
  • 그래서 fit_transform()으로 한 번에 처리 가능 (→ 전처리에서는 주로 많이 씀)

예제 2: 모델 학습 (예: LinearRegression)

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)      # 학습
pred = model.predict(X_test)     # 예측
  • fit()은 모델이 가중치 학습하는 과정
  • transform()은 없음 (회귀 모델은 변환하는 게 아니라 예측만 함)
  • 따라서 이 경우엔 fit() 사용하고, 나중에 *predict()를 씁니다

전처리기 vs 모델 비교 요약

타입예시fit() 필요?transform() 있음?fit_transform() 사용?
전처리기PolynomialFeatures, StandardScaler✅ 예 (파라미터 학습)✅ 예 (변환용)✅ 보통 사용
모델LinearRegression, LogisticRegression, SVC✅ 예 (가중치 학습)❌ 없음❌ 사용 안 함

자주 쓰는 전처리기 정리

클래스설명fit 필요?transform 있음?
PolynomialFeatures다항 특성 생성
StandardScaler평균 0, 표준편차 1 정규화
MinMaxScaler0~1 스케일링
PCA차원 축소
OneHotEncoder범주형 인코딩

이 전처리기들은 fit → transform이 필요하기 때문에,

fit_transform()을 자주 사용합니다.


정리 요약

질문답변
fit()은 언제?데이터를 보고 규칙(평균, 차수 등)을 학습할 때
transform()은 언제?학습된 규칙으로 변환할 때
fit_transform()은 언제?둘 다 처음에 한 번에 처리하고 싶을 때
모델은?주로 fit()만 하고, 나중엔 predict()만 함
profile
기록용 블로그

0개의 댓글