본문 바로가기
데이터분석

Feature Engineering

by CodingKwon 2021. 7. 7.

피처엔지니링

  • 피처 엔지니어링은 기존에 raw데이터를 분석가가 모델이 학습할 수 있는 정보로 바꾸는 과정을 말합니다.
  • 모델이 학습하는 정보를 만드는데에 있어서, 분석가가 가진 도메인지식이나 다양한 통찰력이 적용될 수 있습니다.
  • 모든 경우에 만능인 피처 엔지니어링 방법은 존재하지 않으며, 모든 경우에 누가 분석하느냐에 따라 달라질 수 있습니다.
  • 데이터에서 효과적으로 정보를 추출하는 기법인 피처 엔지니어링은 머신러닝의 성능을 좌우하는 중요한 역할을 합니다.

1 피처엔지니어링 기법

1.1 Imputation(결측치 처리)

  • 결측치: 머신러닝 모델 성능에 영향을 준다.
  • 70% 이상의 결측치가 있는 행과 열은 지워주는 것도 좋다.
  • Numerical Imputation: 결측치를 0이나 중앙값으로 대체
  • Categorical Imputation: 열의 가장 많이 발생한 값으로 결측치를 대체, 만약 많이 발생한 값이 없다면 'Other’로 대체
  • Random sample imputation: 데이터셋에서 임의로 뽑은 값으로 결측치 대체

1.2 Outliers(이상치 처리)

  • 제거 : boxplot 또는 백분위수등을 이용하여 이상치에 해당하는 값을 삭제한다.
  • 치환 : 삭제가 어려운 경우 평균, 최빈값, 중앙값, 예측값등으로 치환한다.

1.3 Binning(구간화)

  • categorical / numberical data에 모두 적용가능
  • 데이터를 구간화하여 오버피팅을 줄일 수 있다.
  • 100,000개의 열로 구성된 데이터셋의 경우, 카테고리를 합치는 것이 유리하다

1.4 Log Transform(로그 변환)

  • 로그변환을 이용하면 한 쪽에 편향된 데이터를 정규분포에 가깝게 만들어 준다
  • 이상치의 영향을 줄이고, 오버피팅을 방지한다.

1.5 One-hot encoding(원핫 인코딩)

  • 범주형 자료를 수치형 자료로 바꾸어 정보의 손실없이 범주형자료를 그룹화해준다.

1.6 Extraction & merge(특징 추출 및 결합)

  • 기존의 하나의 컬럼을 여러 개의 컬럼으로 분리하거나 여러 개의 컬럼을 하나의 컬럼으로 결합
  • 컬럼 안에서의 특정한 정보를 추가로 얻을 수도 있고, 여러 개의 컬럼을 통한 정보를 얻을 수도 있음.

1.7 Scaling(스케일링)

  • Feature들의 크기, 범위를 정규화 시켜주는 것을 말함.

  • 예를 들어, 키와 몸무게 데이터를 이용하여 100m 달리기 시간을 예측한다고 했을 경우 키와 몸무게는 단위가 다르다.

  • 키의 범위가 170~180cm이고, 몸무게의 범위가 50kg~120kg이라고 하면, 100m달리기 시간을 예측하는데 몸무게가 더 큰 가중치를 갖게 된다.

  • 따라서 키와 몸무게에 min-max Normalization을 적용하면 (x - 170) / (180 - 170), (x - 50) / (120 - 50)

  • 0 ~ 1 사이에 수로 정규화가 되어 동등한 가중치를 갖게 한다.

댓글