학습 자료

특성 스케일링과 전처리

머신러닝에서 특성 스케일링과 전처리는 모든 특성이 모델에 균등하게 기여하도록 하고, 학습하기 좋은 데이터 형식을 갖추도록 도와줍니다.

스케일링을 하지 않으면 KNN이나 경사하강법 기반 알고리즘 같은 모델은 값의 범위가 큰 특성에 편향될 수 있습니다.


흔한 전처리 단계

  • 특성 스케일링: 데이터를 정규화(normalization) 또는 표준화(standardization)해 비슷한 스케일로 변환
  • 범주형 변수 인코딩: 텍스트 레이블을 숫자로 변환
  • 결측값 처리: 누락된 값을 대체하거나 제거
  • 특성 변환: 로그, 다항식 등 수학적 변환 적용

예제: 표준화와 정규화

아래 예제는 Scikit-learn에서 특성 스케일링을 수행하는 방법을 보여줍니다.

Scikit-learn에서 특성 스케일링
import numpy as np from sklearn.preprocessing import StandardScaler, MinMaxScaler # 예시 데이터셋 X_features = np.array([[1.0, 200.0], [2.0, 300.0], [3.0, 400.0]]) # 표준화 (평균=0, 표준편차=1) scaler_standard = StandardScaler() X_standard = scaler_standard.fit_transform(X_features) # 정규화 (범위 [0, 1]) scaler_minmax = MinMaxScaler() X_minmax = scaler_minmax.fit_transform(X_features) print("표준화된 데이터:", X_standard) print("최소-최대 스케일된 데이터:", X_minmax)

올바른 스케일링을 선택하려면?

  • 표준화(Standardization): 데이터가 정규분포에 가깝거나, 가우시안 분포 가정을 가진 알고리즘에서 사용 (예: 로지스틱 회귀, 선형 회귀, SVM)
  • 정규화(Normalization): 거리 기반 알고리즘에서 주로 사용 (예: KNN, 신경망)
Quiz
0 / 1

머신러닝 모델에서 특성 스케일링을 적용하는 핵심 이유는 무엇인가요?

특성 스케일링이 없으면, KNN이나 경사하강법 기반 알고리즘 같은 모델은 숫자 범위가 특성에 편향될 수 있습니다.
더 작은
더 큰
동일한
무작위

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말