본문 바로가기

머신러닝

머신러닝 심화 (1) : 인코딩, 스케일링

1. 인코딩 

어떤 정보를 정해진 규칙에 따라 변환하는 것을 의미한다. 

 

(1) 레이블 인코딩

모델이 처리하기 쉬운 수치형으로 데이터 변환 

실제로는 그렇지 않은데, 순서 간 크기에 의미가 부여되어 모델이 잘못 해석 할 수 있음. 

sklearn.preprocessing.LableEncoder

 

- 메소드

- fit: 데이터 학습

- transform: 정수형 데이터로 변환 

- fit_transform: fit과 transform을 연결하여 한번에 실행 

- inverse_transform: 인코딩된 데이터를 원래 문자열로 반환

 

 

(2) 원-핫 인코딩(One-Hot Encoding) 

각 범주를 이진 형식으로 표현하는 기법

 

장점: 각 범주가 독립적으로 표현되어, 순서가 중요도를 잘못 학습하는 것을 방지. 명목형 데이터에 권장

단점: 범주 개수가 많을 경우 차원이 크게 증가, 모델의 복잡도를 증가 시킴 - 정보가 너무 많은 나머지 모델이 제대로 학습하지 못함, 데이터가 큰만큼 결측치와 이상치도 많을 확률. 과적합 유발

 

가. pd.get_dummies

나. sklearn.preprocessing.OneHotEncoder

 categories : 인코더가 학습한 클래스(범주) 

 

 

2. 스케일링

수치형 데이터를 전처리하는 방법

(1) 표준화(Standardization):

각 데이터에 평균을 뺴고 표준편차를 나누어 평균을 0, 표준편차를 1로 조정하는 방법

sklearn.preprocessing.StandardScaler

 

- 메소드

 fit: 데이터학습(평균과 표준편차) 

 transform: 데이터 스케일링 진행

 

- 속성

 mean_: 데이터의 평균 값

 scale_, var_: 데이터의 표준 편차, 분산 값

 n_features_in_: fit 할 때 들어간 변수 개수

 feature_names_in: fit할 때 들어간 변수 이름

 n_ samples_seen_: fit할 때 들어간 데이터의 개수

 

- 특징

이상치나 분포가 치우쳐져 있을 때 유용함

모든 특성의 스케일을 동일하게 맞춤. 많은 알고리즘에서 좋은 성능

 

(2) 정규화(Normalization) 

데이터를 0과 1사이 값으로 조정(최소값 0, 최대값 1)

 

  • 장점: 이상치의 영향에 덜 민감
  • 단점: 표준화와 정규화에 비해 덜 사용

 

(3) 로버스트 스케일링(Robust Scaling)

중앙값과 IQR을 사용하여 스케일링

  • 장점: 이상치의 영향에 덜 민감
  • 단점: 표준화와 정규화에 비해 덜 사용됨