티스토리 뷰
목표
특성 선택의 정의 및 목적을 설명할 수 있다.
특징 선택의 방안을 3가지로 구분할 수 있다.
특징 선택(Featrue Selection)
가장 좋은 성능을 보여줄 수 있는 데이터의 부분 집합(Subset)을 찾아내는 방법
모델 생성에 밀접한 데이터의 부분 집합을 선택하여 연산 효율성 및 모델 성능을 확보
피처 엔지니어링의 주요 토픽이면서 많이 활용되는 기법
목적 및 필요성
연산효율성
특징 생성과는 다르게 원 데이터 공간 내 유의미한 특징을 선택하는 기법
연산 효율 및 적절한 특징을 찾기 위해서 수행한다.
원본 데이터에서 가장 유용한 특징만을 선택하여 간단한 모델 구성 및 성능 확보가 목적
특징 선택 방안
필터
- 특징들에 대한 통계적 점수를 부여하여 순위를 매기고 선택하는 방법론
- 실행속도가 빠르다는 측면에서 시간 및 비용 측면의 장점을 보인다
래퍼
- 특징들의 모든 조합을 지도학습 기반 알고리즘에 반복적으로 적응하여 특징을 선택하는 방법론
- 최적의 데이터 조합을 찾기 때문에 성능 관점상 유용하나 시간과 비용 크게 발생
- 그러나 조합을 모두 고려하기 때문에 예측이나 성능 관점에서 필터보다 좋다
임베디드
- 모델 정확도에 기여하는 특징들을 선택하는 방법으로 Filter와 Wrapper의 장점을 결합한 방법
- 적용하는 모델 정확도에 기여하는 특징들을 선택해서 해당 조합의 결과로 도출한다
- 모델의 학습 및 생성과정에서 최적의 특징을 선택하는 방법
- 모델 자체에 변수 선택을 할 수 있는 알고리즘들이 적용된다.
필터 방식
특징들에 대한 통계적 기법 기반의 점수 및 순위 부여하여 선택
전체 집합에서 변수별 유의미한 관계들을 보이는 특징들을 판단하고 선택하는 방안
변수별 통계적 유의미성을 검증하고 특징으로 도출하기 떄문에 굉장히 빠르다.
래퍼를 적용하기 전 적용하기도 한다
카이제곱 필터(Chi-Square)
- 범주형인 독립 및 종속 변수간의 유미의성을 도출하기 위한 통계적 방안
- 연속형 변수를 이산화(범주)를 하여 활용가능
- ex) 가장 높은 순위 2개의 Feature 선택
상관관계 필터(Correlation filter)
단순히 통계적 관계가 높다고 해서 그 변수가 해당 모델에 적합한 변수라고는 할 수 없다.
따라서, 전처리 단에서 주로 사용할 수 있는 기법이기도 하면서, 통계 기법 등을 사용해서 상관관계가 높거나 관계가 높은 변수들을 우선 추출하는 방안으로 활용
- 연속형인 독립 및 종속변수 간 유의미성을 도출하기 위한 통계적 방안
- 보통 임계치(theshold) 설정하여 변수 선택
래퍼 방식
성능 관점에서 유용한 방안
원본 데이터 내 변수 간 최적의 조합을 도출한다.
원본 데이터 내 변수 간 조합을 탐색하여 특징 선택
반복적 특징 조합 탐색
- 원본 데이터셋 내 변수들의 다양한 조합을 모델에 적용하는 방식
- 최적의 부분 데이터집합(Subsset)을 도출하는 방법론
- 대표적 방식으로 재귀적 특성 제거(Recursive Feature Elimination) - 전체 데이터 셋에서 하나씩 유의미하지 않은 데이터 셋을 제거한다.
- 모델의 성능이 높지만, 알고리즘 방식의 완성도가 높아야 한다. 변수가 없는 상태에서 하나씩 추가해 가는 방법, 제거해 가는 방법 등이 있다.
임베디드 방식
각 특징들의 중요도, 가중치 등을 평가할 수 있는 모델이 선택이 되어야 하고,
래퍼와 같이 해당 모델들의 각 파라미터와 알고리즘 자체 완성도가 높아야 한다는 측면을 가지고 있다.
모델을 학습하여 정확도에 기여하는 특징을 선택하는 방안
- 알고리즘 내 자체 내장 함수로 특징을 선택하는 방식으로, 모델 성능에 기여하는 특징을 도출.
- 모든 조합을 고려하고, 결과를 도출하는 래퍼와 달리 학습과정에서 최적화된 변수를 선택
- 트리 계열 모델 기반의 특징 선택이 대표적(랜덤포레스트 기반 Feature Importance 기반)
특징 선택 알고리즘
랜덤포레스트 모형 기반의 알고리즘
보루타 알고리즘(Boruta Algorithm)
- 기존 데이터를 복원 추출해 만든 랜덤 변수, 새도우보다 모형 형성에 영향을 주지 못했다고 하면 가치가 크지 않은 변수로 인식해 제거하는 방법
- 보루타 알고리즘은 기존 데이터를 임의로 복제하여 랜덤 변수(shadow) 생성하고 원 자료와 결합하여 랜덤 포레스트 모형에 적용
- Shadow 보다 중요도가 낮을 경우 중요하지 않은 변수로 판단 후 제거
- Shadow 변수는 원본데이터로 만들어진 진짜 무작위성 변수이다. 즉, 랜덤하게 생성된 변수보다 높을 것이라는 것으로 접근하는 게 핵심