기본적으로 선형 모델의 경우 $$ y = B{0} + B{1}x{1} + .. + B{n}x_{n} $$ 형태를 가지고 있습니다. 그래서 카테고리컬 데이터가 들어오는경우 {0,1,2,3,4} 등은 서로 숫자들끼리 대소가 존재하여 바로 사용하면 의도치 않은 정보를 학습하게 될 수도 있습니다. 그래서 카테고리 데이터를 다룰 때에는 보통 {0,1}로 구성되도록 데이터를 변경하게 됩니다.
기본적으로 One-hot-encoding 방법을 알고 있는데, 이는 카테고리 갯수만큼 변수를 추가하는 방법입니다. 하지만 이 방법 말고도 bias를 하나의 카테고리로 치는 방법 또한 존재합니다.
| 범주 | (x1,x2)(x_1,x_2) | 예측식 | 해석 |
|---|---|---|---|
| A | (1,0) | $$ y=β0+β1y = \beta_0 + \beta_1 $$ | $$ C 대비 추가 사용량 β1\beta_1 (= +120) $$ |
| B | (0,1) | $$ y=β0+β2y = \beta_0 + \beta_2 $$ | |
| C | (0,0) |
다음과 같이 N -1 개의 데이터를 활용해서도 카테고리컬 데이터를 다룰 수 있습니다.
지금까지의 선형 모델들은 하나의 변수에 하나의 값을 갖고, 다른 변수들 끼리는 독립적인 모델을 모델링 하였습니다. 하지만 서로 다른 데이터들끼리 시너지 효과를 볼수 있습니다. 즉 각각 실행하고, 2개 이상의 데이터를 동시에 쓰는 경우 더 높은 효과를 볼수 있습니다. 이를 Modeling interaction 이라고 합니다.
그리고 이러한 방법은 Hierarchy for interaction 이라고 반드시 단일 term을 사용 한 후 넣어줘야한다는 규칙이 있습니다. 이를 어길 경우 각각의 관계를 파악하기 어렵고, Modeling의 일관성이 깨진다고 합니다.
Feature selection은 선형 회귀 모형에서 불필요한 특성을 제거해 XTXX^TXXTX의 역행렬 계산을 안정화하고 과적합을 예방하기 위한 핵심 절차입니다. 대표적인 방법을 정리하면 다음과 같습니다.
베스트 서브셋 셀렉션(Best subset selection, O(2p)O(2^p)O(2p))
ppp개의 특성 중 kkk개를 고르는 모든 조합 (pk)\binom p k(kp)을 평가하여 가장 좋은 부분집합을 찾습니다. 예컨대
**전진 단계별 선택(Forward stepwise )
초기에는 절편만 있는 모델(y=0.8)에서 시작해, 매 단계마다 아직 선택되지 않은 특성 중 가장 설명력을 높이는 변수를 하나씩 추가합니다. 필요에 따라 이전에 선택한 계수들도 재조정할 수 있어 베스트 서브셋에 비해 계산 효율을 크게 개선했습니다.
후진 단계별 선택(Backward stepwise)
모든 특성으로 시작한 뒤, 한 번에 하나씩 가장 덜 기여하는 변수를 제거해 나갑니다. N>p인 경우에만 적용 가능하며, 전진 단계별과 유사한 복잡도를 가집니다.
스테이지와이즈(Stagewise selection)
전진 단계별과 마찬가지로 변수를 하나씩 선택하지만, 각 단계에서 계수 크기를 소폭만 갱신(‘fix된 크기만큼 increment’)하도록 고정시킴으로써 변수 선택과 계수 추정이 동시에 이루어지도록 설계되었습니다.
이처럼 서로 다른 개수의 특성을 골라 모형을 완성하면, 일반적으로 선택한 특성 수 KKK가 커질수록 학습 데이터 상의 성능 지표는 계속 상승합니다. 그러나 이것만으로는 실제 데이터의 ‘일반적’ 특성을 제대로 포착했다고 확신할 수 없으므로, 검증(validation) 데이터나 k-폴드 교차검증(cross-validation)을 활용해 각K에 대한 일반화 성능을 평가하고, 과적합이 가장 적고 예측력이 최대인 특성 개수를 최종적으로 결정하는 것이 바람직합니다.