서포트 벡터 머신을위한 기능 선택


9

내 질문은 세 가지입니다

"Kernelized"지원 벡터 머신과 관련하여

  1. 변수 / 기능 선택이 바람직합니다. 특히 과적 합을 방지하기 위해 매개 변수 C를 정규화하고 커널을 SVM에 도입하는 주된 동기는 문제의 차원을 높이는 것입니다.
  2. 첫 번째 질문에 대한 답이 "아니오"라면, 어떤 조건에서 답을 명심해야합니까?
  3. 파이썬의 scikit-learn 라이브러리에서 SVM의 기능 감소를 가져 오려고 시도한 좋은 방법이 있습니까? SelectFpr 방법을 사용해 보았고 다른 방법에 대한 경험이있는 사람들을 찾고 있습니다.

1
초기 기능이 최고 품질로 시작되지 않는 한 기능 선택은 항상 도움이 될 것입니다. Sklearn은 RFE의 일부인 다양한 기능 선택 라이브러리 ( scikit-learn.org/stable/modules/feature_selection.html )를 제공합니다.
David

1
컨텍스트에 대해서는 언급하지 않았습니다. 비즈니스 컨텍스트에있는 경우 모델에 남아있는 모든 기능을 일정 수준에서 유지 보수해야합니다. 변수가 많을수록 문자 비용이 발생합니다. 예를 들어 더 많은 데이터 수집 노력, DBA 시간 및 프로그래밍 시간이 필요합니다. 이 고려 사항은 Kaggle comp 또는 이와 유사한 경우에 적용되지 않으며 데이터 세트에서 사용 가능한 200 가지 기능을 추가로 사용하면 성능이 0.01 % 향상됩니다.
Robert de Graaf

답변:


3

개인적으로 기능 선택을 두 가지로 나누고 싶습니다.

  • 감독되지 않은 기능 선택
  • 감독 기능 선택

감독되지 않은 기능 선택 은 최소 중복 기능 범위를 선택하거나 중복성이 거의없는 기능을 생성하는 클러스터링 또는 PCA와 같은 것입니다. 감독 기능 선택 은 가장 예측력이 높은 기능을 선택하는 Lasso와 같은 기능입니다.

나는 개인적으로 내가 감독 기능 선택이라고 부르는 것을 선호합니다. 따라서 선형 회귀를 사용할 때는 올가미를 기준으로 피처를 선택합니다. 신경망에서 sparseness를 유도하기위한 유사한 방법이 존재한다.

그러나 실제로 커널을 사용하는 방법으로 어떻게 할 것인지 알지 못하므로 감독되지 않은 기능 선택이라고 부르는 것을 사용하는 것이 좋습니다.

편집 : 당신은 또한 정규화에 대해 물었다. 우리는 유한 샘플로 작업하기 때문에 정규화가 주로 도움이된다고 생각하므로 훈련 및 테스트 분포는 항상 약간 씩 다르므로 모델이 과적 합되지 않기를 원합니다. 기능 선택을 피할 필요가 없는지 확실하지 않습니다 (실제로 너무 많은 경우). 피처를 선택하거나 더 작은 하위 집합을 만드는 것은 피처를 더욱 강력하게 만들고 모델이 가짜 상관 관계로부터 배우지 않도록하는 데 도움이된다고 생각합니다. 따라서 정규화는 도움이되지만 완전한 대안인지는 확실하지 않습니다. 그러나 나는 이것에 대해 충분히 생각하지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.