-
[머신러닝] Interaction Feature 결합피쳐카테고리 없음 2023. 12. 26. 00:08
▶︎ 결합 피쳐(Interaction Feature)란?
→ 말 그대로 피쳐를 결합하는 것입니다. 피쳐를 결합하여 새로운 피쳐를 만들어 데이터의 특성을 더 잘 나타내어 모델의 성능을 향상시킬 수 있습니다.
예를 들어, 아파트 거래가격을 예측하는데 "아파트의 나이(현재년도-준공년도)"와 "거래 횟수"라는 피쳐가 있다고 해봅시다. 아파트 나이와 거래 횟수를 결합하여 "아파트 나이 대비 거리 횟수"라는 새로운 파생변수를 만들 수 있습니다. 새로 결합된 피쳐를 통해 "아파트 나이"와 "거래 횟수"의 상호 작용을 고려할 수 있습니다.
또한 맥주 종류와 과자 종류를 결합하여 (맥주종류+과자종류)라는 새로운 피쳐를 만들어 두 피쳐의 조합에 대한 새로운 의미를 가진 피쳐를 생성할 수 있습니다.
▶︎ 결합 피쳐 장점
→ 위의 예처럼 원래의 특성에서 얻을 수 없던 상호작용을 담은 새로운 피쳐가 생성되어 모델 성능이 높아질 수 있습니다.
▶︎ 결합 피쳐 단점
→ 위의 두 가지 예시에서, 아파트는 산술 연산을 적용하여 새로운 파생변수 하나가 만들어져 차원이 1 증가합니다. 하지만 수많은 맥주와 과자 종류가 있을 때는 차원이 맥주종류X과자종류 만큼 늘어나게 됩니다. 차원이 늘어날수록 모델은 복잡해지고, 수많은 파라미터를 학습하는데 많은 시간이 소요되며, 과적합 발생 확률이 높아집니다.
▶︎ 단점을 해결하기 위해서는 어떻게 해야할까?
: 중요한 정보를 최대한 손실하지 않으면서 차원을 축소시켜야 합니다. 차원을 줄이는데 아래와 같은 방법들이 사용됩니다.
1. 차원 축소 기법 사용
- 주성분 분석 (PCA): 주성분 분석은 특성 공간을 새로운 축으로 변환하여 데이터의 분산을 최대화하는 방식으로 차원을 축소합니다. 주성분 분석을 사용하면 더 적은 수의 주요 특성으로 데이터를 표현할 수 있습니다.
- t-SNE (t-distributed Stochastic Neighbor Embedding): 시각화를 목적으로 사용되는 t-SNE는 고차원 데이터의 구조를 유지하면서 차원을 축소하는 데 효과적입니다.2. Feature Selection
- 상관 관계 분석: 상관 관계가 높은 특성들 중 일부를 선택하여 차원을 줄일 수 있습니다. 서로 강한 선형 상관 관계가 있는 특성은 중복 정보를 포함할 가능성이 높습니다.
- 재귀적 특성 제거 (Recursive Feature Elimination, RFE): 중요하지 않은 특성을 반복적으로 제거하여 모델의 성능을 평가하고 가장 중요한 특성을 선택하는 방법입니다.3. 모델 기반 특성 선택
일부 머신러닝 모델은 feature importance를 제공합니다. 랜덤 포레스트나 그래디언트 부스팅과 같은 앙상블 모델을 사용하여 각 특성의 기여도를 확인하고 중요한 특성만 선택할 수 있습니다.4. L1 정규화 (Lasso Regression)
L1 정규화는 불필요한 특성의 가중치를 0으로 만들어 특성 선택 효과를 얻을 수 있습니다. 이는 불필요한 특성을 제거하고 차원을 축소하는 데 도움이 됩니다.▶︎ 모든 결합들이 다 의미있지도 않을 것이고, 유의성의 크기도 다를텐데 어떻게 효율적인 조합일 찾나요?
→ Domain Knowledge 활용 : 해당 문제 도메인에 대한 전문 지식을 활용하여 어떤 피처들이 서로 상호작용할 수 있는지 가정할 수 있습니다. 도메인 전문가의 조언을 듣고 결합 피쳐를 고려할 수 있습니다.
→ Tree-based 모델 활용 : 의사결정 트리 기반 모델을 활용하여 의사결정 트리의 노드에서 발생하는 분할을 통해 피처들의 상호작용을 파악할 수 있습니다. 특히 여러 개의 결정 트리를 연속적으로 구성하여 학습하는 앙상블 기법 중 하나인 그래디언트 부스팅으로 이전 트리의 잔차(residual)에 대해 학습하여 피처 간의 상호작용을 파악할 수 있습니다.
그래디언트 부스팅의 핵심 아이디어는 다음과 같습니다:
1. 첫 번째 트리 학습 : 초기에는 모델이 예측한 값과 실제 타깃 값 사이의 잔차를 최소화하는 첫 번째 트리를 학습합니다.
2. 잔차에 대한 새로운 트리 학습 : 첫 번째 트리의 예측과 실제 값 사이의 잔차에 대해 새로운 트리를 학습합니다. 이렇게 생성된 트리는 이전 트리의 예측이 설명하지 못한 부분에 대해 더 나은 예측을 수행하도록 학습됩니다.
3. 이 과정 반복 : 이러한 과정을 지정된 트리 개수나 학습률 등의 하이퍼파라미터에 도달할 때까지 반복합니다. 각 트리는 이전 트리의 잔차에 대해 학습하면서 모델이 예측력을 향상시킵니다.
이렇게 함으로써 각 트리는 이전 트리에서 설명하지 못한 상호작용이나 비선형성을 학습하게 됩니다. 그래디언트 부스팅은 피처 간의 상호작용을 잘 파악하고 모델의 성능을 높일 수 있는 강력한 기법 중 하나입니다.참조 : 이 글은 ChatGPT를 활용해 검토 후에 작성하였습니다. 혹시 지피티가 본인의 글을 이용한 거라면, 참조에 넣도록 하겠습니다!