본문 바로가기
ML

머신러닝 2_5 데이터 전처리(Preprocessing)

by haribodang 2022. 4. 28.
반응형
  • 결손값 처리 (Null/ NaN 처리)
  • 데이터 인코딩(레이블, 원-핫 인코딩)
    • 머신러닝알고리즘은 문자열 데이터 속성을 입력값으로 받지않기 때문에 문자형이 아닌 숫자형으로 표현 되어야한다.
    • 레이블인코딩 - 남, 여 → 1, 0 , 숫자값이기 때문에 의도하지 않아도 1이 더크다는 의미로 영향을 받는 알고리즘이 있을수있다. 따라서 회귀에는 적용하지말고 tree 계열 ML 알고리즘은 적용가능 , 이러한 문제점을 해결하기위해 나온것이 원핫 인코딩이다.
      • 사이킷런의 LabelEncoder 클래스 , fit() 과 transform() 을 이용하여 변환
    • 원핫(One-hot) 인코딩 -feature 값의 유형에 따라 새로운 피처를 추가 해서 고유값에 해당하는 컬럼에만 1을 표시 하고 나머지 컬럼에는 0 을 표시 하는 방식이다. -성별_남(남자일때 1) ,성별_여 (여자일때 1)
      • 사이킷런의 OneHotEncoder 클래스 fit() 과 transform() 을 이용하여 숫자형으로 변환 - 인자로 이차원ndarray 입력 필요, Sparse 배열 형태로 변환되며 toarray() 를 적용하여 다시 Dense 형태로 변환 되어야함.
      • pd.get_dummies(DataFrame) 을 이용 하면 쉽게 원핫 인코딩 가능 - 확인
  • 데이터 스케일링
  • 이상치 제거
  • Feature 선택 , 추출 및 가공

 

데이터인코딩

1. 레이블인코딩

레이블인코딩

2. 원-핫인코딩(One-Hot encoding)

원핫인코딩
원핫인코딩
get_dummies

피처 스케일링과 정규화

  • 데이터 스케일(Scale) : 변수를 구성하는 값 들의 크기 , 규모, 범위를 의미
  • feacure scaling : 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업

Feature Scaling을 하는 이유는?

변수 값의 범위 또는 단위가 달라서 발생 가능한 문제를 예방할 수 있다. 머신러닝 모델이 특정 데이터의 편향성을 갖는 걸 방지할 수 있다. 즉 데이터 범위 크기에 따라 모델이 학습하는 데 있어서 bias(편향)가 달라질 수 있으므로 하나의 범위 크기로 통일해주는 작업이 필요할 수 있다.

Feature Scaling 종류

  • 표준화- 데이터의 피처 각각이 평균이 0 이고 분산이 1인 가우시안 정규분포를 가진 값으로 변환하는 것을 의미 (데이터분포의 중심을 0으로)
  • 정규화- 서로 다른 피처의 크기를 통일하기 위해 크기를 변환해주는 개념, 일반적으로 이상치 제거후 정규화
  • 사이킷 런에서
  • StandardScaler: Sklrean(사이킷런)에서 제공하는 표준화를 위한 클래스이며, 개별 변수를 평균이 0이고 분산이 1인 가우시안 정규 분포를 가질 수 있도록 값을 변환해준다.
    • StandardScaler 사용 시 주의할 점
      • Scaler에 의해 변환된 데이터는 ndarray 형식이므로 데이터 관리의 용이성을 위해 DataFrame 형식으로의 명시적 변환이 필요할 수 있다.
      • 변수의 최소값과 최대값 크기를 제한하지 않음 ,
        따라서 이상값(outlier) 있는 경우 평균과 표준편차에 영향을 미치기 때문에 데이터 분포 (확산)에 영향을 미침.
  • MinMaxScaler: 데이터값을 0과 1사이의 범위값으로 변환(음수값이 있으면 -1 에서 1값으로 변환) , 데이터 분포가 가우시안분포가 아닐경우 적용
  • 선형, 회기는 스케일링 해주는것이 좋고 tree 분류는 스케일링에 크게 영향을 받지 않는다.
  • 머신러닝 모델은 학습 데이터를 기반으로 학습되기 때문에 반드시 테스트 데이터는 학습데이터 스케일링 기반에 따라야 하고 테스트 데이터 에 다시 fit() 을 적용하면안되고 scaler 객체를 이용해 transform() 을 적용해야한다.

 

Scaler를 사용하는 이유:

데이터가 가진 크기과 편차가 다르기 때문에 한 피처의 특징을 너무 많이 반영하거나 패턴을 찾아내는데 문제가 발생하기 때문이다

 

 

StandardScaler

standardScaler

MinMaxScaler

minmaxscaler

반응형

'ML' 카테고리의 다른 글

머신러닝 2_4 교차검증  (0) 2022.04.28
머신러닝 2_3 ModelSelection  (0) 2022.04.22
머신러닝 2_2 (사이킷런 기반프레임워크)  (0) 2022.04.22
머신러닝 2_1  (0) 2022.04.21

댓글