Feature Engineering
Feature Engineering은 ML/DL 알고리즘이 더 좋은 성능을 보여주도록 데이터를 말그대로 가공하는 것이며, 데이터 타입이나 상황에 따라 적용할 수 있는 방법이 다르다. 여기서는 주로 수치형, 범주형, 결합형, 텍스트 등을 주로 설명하고자 한다.
수치형 데이터의 정규화
- 모든 feature를 동일한 구간내로 이동시킴
- 선형함수정규화: xnorm=(xmax−xmin)(x−xmin)
- 표준정규화(z normalization): z=σx−μ, where μ is 평균, σ is 표준편차
- 단, Tree 계열은 불필요함.
- Tree 계열은 정보이득비율에 의해 Tree 가지가 뻗어나가는데 정규화를 하더라도 정보이득비율에는 변화가 없음
범주형 데이터
- 높낮이가 존재하는 경우, ordinal encoding
- 높낮이가 없는 경우, one-hot encoding
- 불필요하게 차원이 커지면 -> 차원축소 또는 희소행렬 사용
결합 Feature
- 데이터 사이에 존재하는 관계를 단일차원의 discrete feature로 만드는 것을 의미
- 예를 들어, 상품 종류, 색상, 브랜드, 구매여부 feature가 존재하는 경우 이를 결합하면 상품_색상_브랜드_구매여부 라는 feature로 결합하여 단일 feature로 할 수 있음
- 단 이러한 경우 feature의 수가 폭발(feature explosion)될 수 있음
Text 표현모델
BoW & N-Gram
- tf-idf=tf(t,d)∗log(df(t)+1n) , where t is text(i.e. word), d is document
- 아래의 두 부분으로 나누어짐
- tf(t,d) : 특정 문서 d에서의 특정 단어 t의 등장 횟수.
- df(t,d) : 특정 단어 t가 등장한 문서의 수.
토픽모델
- 문서 set에서 대표성을 가진 주제를 찾기위한 통계 모델
Word-Embedding
- 저차원 공간에 dense vector로 각 단어를 투영하는 모델로 대표적으로 Word2Vec이 있음
- N∗K (N: 단어수, K: |dense vector|)로 문장표현
- C-BoW방식: Continuouse Bag of Words
- 문장속 주변 단어의 출현에 기반해 Wt의 생성활률을 예측하여 softmax로 출력
- Skip-Gram 방식
- C-BoW방식과는 반대로 Wt를 기반으로 주변단어의 생성확률을 예측하고 softmax로 출력