feature engineering

potato·2021년 8월 13일
0

인공지능

목록 보기
1/1

출처 : http://www.incodom.kr/%EA%B8%B0%EA%B3%84%ED%95%99%EC%8A%B5/feature_engineering

feature engineering

개념

Feature Engineering은 머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정이다. 다른 정의를 살펴보면, 머신러닝 모델을 위한 데이터 테이블의 컬럼(특징)을 생성하거나 선택하는 작업을 의미한다. Feature Engineering은 모델 성능에 미치는 영향이 크기 때문에 머신러닝 응용에 있어서 굉장히 중요한 단계이며, 전문성과 시간과 비용이 많이 드는 작업이다.(출처 위키피디아-Feature Engineering)

Feature가 중요한 이유

머신러닝은 입력 데이터의 함수이며 선형 또는 비선형의 형태를 가질 수 있는데, 우리는 훈련 데이터를 사용해서 이 함수를 학습하지만, 매번 학습이 잘되어 결과가 나타나지 않는다. 내가 가지고 있는 데이터가 방대하다해도 그 데이터를 모두 결과를 도출하는데 쓰면 정확히 나타날 듯하지만 오히려 결과를 잘못되게 도출하는 경우가 많다. 이는 통계분석에서 선형 함수의 독립변수가 많다고 해서 종속변수의 기대값이 정확도가 무조건 올라가지 않는 이유라고도 할 수 있다.

즉, 머신 러닝의 성능은 어떤 데이터를 입력하는지가 굉장히 의존적이라는 것을 알 수 있다. 가장 이상적인 입력 데이터는 부족하지도 과하지도 않은 정확한 정보만 포함될 때이다. 그렇기에 가장 적절 한 방법은 먼저 충분한 데이터를 먼저 모으고 어떤 feature가 유용한지 아닌지 확인하는 과정을 거칩니다. feature가 유용한지 아닌지 확인하는 과정을 특징 선택(feature selection) 또는 특징 추출(feature extraction) 이라고 한다. 해당 과정은 기존 입력을 토대로 새로운 입력 데이터를 만들기 때문에 보통 learning 과정 전에 실행된다.

Dimension Reduction(차원 감소)

차원 감소는 feature extraction 다시 말해 특징 추출이라는 말로도 불린다. 만약 하나의 종속변수를 설명하는 독립변수 3개를 가지고 있을 때 우리는 3개의 feature모두가 필요한 것은 아니다. 왜냐면 몇몇의 feature는 다른 특징들의 조합으로 표현가능할 수도있고 어떤 feature는 특정 feature의 완벽히 상반될 수 있기 때문이다. 이것을 다른 말로 관찰 대상들을 잘 설명할 수 있는 잠재 공간(latent space)은 실제 관찰 공간(observation space)보다 작을 수 있다고 하고 이렇게 관찰 공간 위의 샘플들에 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique) 라고 한다. 이렇게 데이터의 차원을 줄이는 데에는 특징 선택(feature selection)과 특징 추출 (feature extraction) 두 가지 방법이 있다.

Feature Selection(특징 선택)

특징 랭킹(Feature Ranking) 또는 특징 중요도(Feature Importance)라고도 한다. 특징 선택의 목적은 모든 특징의 부분 집합을 선택하거나, 불필요한 특징을 제거하여 간결한 특징 집합을 만드는 것이다. 이런 특징선택은 분석자가 사전의 배경 지식 을 이용해서 진행 할 수도 있지만, 자동 특징 선택 (automatic feature selection methods)을 사용할 수도 있다. 해당 방법들은 특징 중 몇 개를 없애보고 개선된다면 성능을 확인해보는 방법이며 이것은 대부분의 특징 선택 알고리즘의 기본 동작방식이다.

분류 모델 중 Decision Tree 같은 경우는 트리의 상단에 있을 수록 중요도가 높으므로 이를 반영하여 특징 별로 중요도를 매길수 있다. 회귀 모델의 경우 forward selection과 backward elimination같은 알고리즘을 통해 특징을 선택 가능하다.

특징선택 기법들은 Lasso (Tibshirani, 1996), Information Gain (Cover and Thomas, 2012), Relief (Kira and Rendell, 1992a), MRMR (Peng et al., 2005), Fisher Score (Duda et al., 2012), Laplacian Score (He et al., 2005), and SPEC (Zhao and Liu, 2007)들이 있다.

feature extraction(특징 추출)

특징 추출이 특징 선택과 다른 점은 원본 특징 들의 조합으로 새로운 특징을 생성하는 것이다.고차원의 원본 feature 공간을 저차원의 새로운 feature 공간으로 투영시킨다. 새롭게 구성된 feature 공간은 보통은 원본 feature 공간의 선형 또는 비선형 결합이다.

가장 대표적인 알고리즘에 PCA(Principle Component Analysis)가 있다. PCA를 간단히 설명하면 각 변수(Feature)를 하나의 축으로 투영시켰을 때 분산이 가장 큰 축을 첫번째 주성분으로 선택하고 그 다음 큰 축을 두번째 주성분으로 선택하고 데이터를 선형 변환하여 다차원을 축소하는 방법이다.

PCA 외에 다른 알려진 기법은 Linear Discriminant Analysis (LDA) (Scholkopft and Mullert, 1999), Canonical Correlation Analysis (CCA) (Hardoon et al., 2004), Singular Value Decomposition (Golub and Van Loan, 2012), ISOMAP (Tenenbaum et al., 2000) and Locally Linear Embedding (LLE) (Roweis and Saul, 2000)가 있다.

참고 문헌 #
위키피디아-Feature Engineering
Feature Selection: A Data Perspective. Jundong Li, Kewei Cheng, Suhang Wang, Fred Morstatter, Robert P. Trevino, Jiliang Tang, Huan Liu. 2016;arXiv:1601.07996.

profile
안녕하세요~

0개의 댓글