특성 스케일링과 전처리
머신러닝에서 특성 스케일링과 전처리는 모든 특성이 모델에 균등하게 기여하도록 하고, 학습하기 좋은 데이터 형식을 갖추도록 도와줍니다.
스케일링을 하지 않으면 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 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말