모델에 따른 feature 전처리와 생성방법

skyepodium·2020년 3월 31일
0

강의 링크 - How to Win a Data Science Competition
5. Feature preprocessing and generation with respect to models

내가 번역하면서 정리하다 보니 창작을 하게 되는거 같지만.

1. Overview

  1. feature 전처리는 모델에 데이터를 적용하기 위한 필수 도구다.

  2. feature 생성은 경쟁에서 크게 도움을 주고 때로는 필요한 우위를 제공 할 수있는 매우 강력한 기술이다.

  3. feature 전처리와 생성은 모두 사용하려는 모델에 따라 다르다.

1.1 feature

1) 정의

각 관찰대상에서 발견되는 고유한 속성을 의미한다.

[참고]
프로그래밍에서는 attribute라는 단어를 사용하지만, 데이터 분석에서는 feature라는 표현을 사용한다.

2) 종류

  • numeric - 숫자형 변수
  1. 연속형 변수 - 무한한 값을 가진다.(나이, 금액)
  2. 이산형 변수 - 유한한 값을 가진다.(가족 구성원의 수)
  • categorical - 범주형 변수 (특정 범주에 속한다. 성별, 수화물 여부)
  • ordinal - 순서형 변수. (순위 개념이 있다. 대형, 중형, 소형)
  • datetime - 날짜
  • coordinates - 좌표
  • id - 각 데이터를 구분해줄 수 있는 고유한 값
  • Text - 문자열

3) 캐글 타이타닉 예시

캐글 타이아닉 데이터 링크

  • Survived - binary
  • Age, Fare - numeric
  • Ticket, PassengerId - id
  • Name - Text
  • Sex, Cabin, Embarked, Pclass - Categorical
  • SibSp, Parch - columns
    (SibSp, Parch 부분이 잘 안들린다. Columns 같은데 제시한, feature 종류에는 없다. 생각해보면, SibSp 자녀수, Parch 부모님수는 이산형 자료에 포함될거 같지만, 경우에 따라서는 다른 자료형으로 판단될 수 있기 때문에 columns라고 한거같다.)

4) feature 종류를 신경써야하는 이유

  1. 전처리와 모델 사이에 강한 관계가 있다.
  2. 종류에 따른 일반적인 feature 생성 방법이 있다.

1.2 feature 전처리

1) 정의

전처리는 데이터를 가공하는 방법입니다.

각 유형의 feature에는 모델을 향상시키기 위한 고유한 전처리 방법이 있다.

즉, 어떤 모델을 사용할 것인가에 따라 전처리 방법이 다르다.

2) 예시

Pclass는 비선형적이다. (1 -> 0 -> 1 이기 때문에)
선형모델은 비선형적인 Pclass로 부터 좋은 결과를 얻을 수 없다.

이를 해결하기 위해 다음과 같이 전처리할 수 있다. (one-hot-encoding)

3) 모델에 따라 달라지는 이유

Random Forest는 feature 분리하고 알맞는 확률을 예측할 수 있기 때문에 One-Hot-Encoding이 필요없다.

Random Forest 모델은 one hot encoding을 진행할 필요가 없다.

[참고]
feature 전처리는 크게 2가지로 나뉜다. 1. 트리형 모델, 2. 트리가 아닌 모델

1.3 feature 생성

1) 정의

서로 다른 feature를 조합하거나, 기존 feature를 가공하여 새로운 feature를 만드는 방법이다.

2) 예시

일일 판매 예측이 Week_number와, Day_of_week를 생성하는데 도움을 줄 수 있다.

선형, 트리 모델 모두에 도움이 된다.

2. Numeric features

2.1 Numeric

1) 정의

Numeric features는 수치로 표현한 자료입니다.

2.2 Tree vs non-Tree

1) scaling

스케일링은 데이터의 범위를 고정된 범위로 변환하는 방법입니다.

  • MinMaxScaler
    최소가 0, 최대가 1이 되도록 변환

  • StandardScaler
    정규분포를 따르도록 변환합니다.

  • RobustScaler
    이상치 제거, 중앙값, IQR(사분위 범위) 사용

  • MaxAbsScaler
    최대 절대값과 0이 1, 0이 되도록 변환

일반적으로 non-tree 모델을 사용할때 선택한 변환방법을 모든 Numeric feature에 적용합니다.

profile
callmeskye

0개의 댓글