이진 분류를위한 변수 선택 절차


29

학습 세트의 관측치보다 많은 변수 / 기능이있을 때 이진 분류에 선호 하는 변수 / 기능 선택 은 무엇입니까 ? 여기서 목표는 분류 오류를 최대한 줄이는 기능 선택 절차가 무엇인지 논의하는 것입니다.

우리는 할 수 있습니다 표기법을 수정 일관성을 위해 : 대한 ,하자 수 관찰 학습 세트를 그룹에서 . 따라서 은 학습 세트의 크기입니다. 우리는 세트 기능의 수 (기능 공간의 차원을 즉)이 될 수 있습니다. 하자 나타내고 좌표 번째의 .i{0,1}{x1i,,xnii}in0+n1=npx[i]ixRp

세부 사항을 제공 할 수없는 경우 전체 참조를 제공하십시오.

편집 (지속적으로 업데이트 됨) : 아래 답변에서 제안 된 절차

이것이 커뮤니티 위키이므로 더 많은 토론과 업데이트가있을 수 있습니다

한 가지 언급이 있습니다. 어떤 의미에서 변수 순서는 허용하지만 변수 선택은 허용하지 않는 절차를 제공합니다 (기능 수를 선택하는 방법에 대해 상당히 회피 적입니다. 모두 교차 유효성 검사를 사용한다고 생각하십니까?) 이 방향으로 답변? (이 당신이 변수의 수를 선택하는 방법에 대한 정보를 추가 할 수있는 응답 writter를 할 필요가 없습니다 위키 커뮤니티입니까? 나는이 방향 여기에 질문 openned 한 수를 선택하는 매우 높은 차원 (교차 검증을 매우 높은 차원 분류에서 사용 된 변수) )


질문입니까, 아니면 수영장입니까? 후자의 경우 커뮤니티 위키 여야합니다. 첫 번째 경우 달성하고자하는 것에 대한 자세한 정보를 제공 하시겠습니까? 예를 들어, 모두 관련성이 있거나 최소한의 최적 선택입니까? 얼마입니까? 분류 문제는 얼마나 어렵습니까?

풀 ... 많은 것은 1000 개의 피처 또는 100 개 미만의 관측치를 의미합니다.
로빈 지라드

답변:


18

가장 보편적 인 접근 방식은 벌점 화 된 로지스틱 회귀 분석으로, 로그 우도의 합과 L1-norm ( "lasso"), L2-norm ( "ridge")으로 구성된 벌칙을 최대화합니다. ( "탄력적") 또는 변수 그룹과 관련된 형벌 ( "그룹 올가미"). 이 방법에는 몇 가지 장점이 있습니다.

  1. 이론적 인 특성이 강하다. 예를 들어 Candes & Plan의이 논문을 참조 하고 압축 된 센싱과 밀접한 관련이있다.
  2. 예를 들어 Friedman-Hastie-Tibshirani 의 통계 학습 요소 (온라인에서 사용 가능)에 액세스 가능한 설명이 있습니다 .
  3. 모델에 맞는 소프트웨어를 쉽게 이용할 수 있습니다. R은 glmnet 패키지를 가지고 있으며 매우 빠르며 매우 큰 데이터 세트와 잘 작동합니다. 파이썬은 scikit-learn을 가지고 있는데 , 여기에는 L1- 및 L2- 벌리 스틱 로지스틱 회귀;
  4. 이미지 인식, 신호 처리, 생체 인식 및 재무 분야의 많은 응용 논문에서 볼 수 있듯이 실제로 실제로 잘 작동합니다.

10

나는 몇 가지 이유로 Leo Breiman & Adele Cutleer의 Random Forests 를 약간 선호합니다 .

  • 불균형 클래스 표본 크기뿐만 아니라 범주 형 및 연속 예측 변수에 대처할 수 있습니다.
  • 앙상블 / 임베디드 방법으로서, 교차 검증이 포함되며 일반화 오차를 추정 할 수있다.
  • 튜닝 매개 변수 (나무를 키우기 위해 선택된 변수의 %, 구축 된 나무 수)에는 상대적으로 민감하지 않습니다.
  • 변수의 중요도를 측정하고 변수 간의 복잡한 상호 작용을 알아낼 수 있습니다 (결과를 읽기 어려울 수 있음).

일부 저자는 SVM이나 그라디언트 부스팅 머신뿐만 아니라 성능이 저하되었다고 주장했다 (예를 들어 Cutler et al., 2009 참조).

응용 프로그램이나 장점에 대한 전체 내용은 주제에서 벗어날 수 있으므로 Hastie 등 의 통계 학습 요소를 제안합니다 . (15 장) 및 Sayes et al. 더 읽을 거리를 위해 (2007).

마지막으로 R에서 randomForest 패키지를 사용하여 훌륭하게 구현되었습니다 . 다른 R 패키지들도이를 확장하거나 사용합니다 (예 : partycaret) .

참고 문헌 :

Cutler, A., Cutler, DR 및 JR Stevens (2009). 암 연구 에서의 고차원 데이터 분석에서 트리 기반 방법, Li, X. 및 Xu, R. (eds.), pp. 83-101, Springer.

Saeys, Y., Inza, I. 및 Larrañaga, P. (2007). 생물 정보학의 기능 선택 기법에 대한 검토. 생물 정보학 , 23 (19) : 2507-2517.


7

대도시 스캔 / MCMC

  • 시작을 위해 무작위로 몇 가지 기능을 선택하고 분류기 만 훈련시키고 오류를 얻으십시오.
  • 이 작업 세트를 임의로 변경하십시오. 하나의 기능을 제거하거나 다른 기능을 임의로 추가하거나 일부 기능을 현재 사용되지 않는 기능으로 바꾸십시오.
  • 새로운 분류기를 훈련시키고 오류를 얻는다. dE새 세트의 오류에서 이전 세트의 오류를 뺀 차이를 저장 하십시오.
  • 확률 min(1;exp(-beta*dE))로이 변경 사항을 승인하십시오. 그렇지 않으면 거부하고 다른 임의 변경 사항을 시도하십시오.
  • 오랫동안 반복하고 마지막으로 전 세계적으로 가장 작은 오류를 달성 한 작업 세트를 반환하십시오.

더 현명한 beta매개 변수 제어로 확장 할 수 있습니다 . 더 간단한 방법은 beta시간이 지남에 따라 온도 를 높이면 (물리적으로 온도가 낮아짐) 변동을 줄이고 알고리즘을 최소로 유도 할 때 시뮬레이션 어닐링을 사용하는 것 입니다. 더 어려운 것은 복제본 교환 을 사용하는 입니다.


5

일반화 성능에만 관심이있는 경우 기능 선택을 수행하지 않고 정규화를 대신 사용하는 것이 좋습니다 (예 : 능선 회귀). 기계 학습 커뮤니티에서 기능 선택에 대한 몇 가지 공개 적인 문제 가 있었으며 , 기능 선택보다는 정규화에 의존하는 방법은 일반적으로 더 좋지는 않지만 적어도 성능도 우수합니다.


3

욕심 앞으로 선택.

이 방법의 단계는 다음과 같습니다.

  • 학습 및 검증 세트가 있는지 확인하십시오
  • 다음을 반복하십시오
    • 아직 선택되지 않은 각 단일 기능과 이전에 선택한 모든 기능으로 분류자를 훈련시킵니다.
    • 결과가 향상되면 성능이 가장 뛰어난 기능을 추가하고 절차를 중지하십시오.

분류기를 어떻게 "훈련"합니까? 아마도 이것은 훈련 세트에서 수행됩니다. SVM (Support Vector Machine) 인 경우 훈련 중에 시도해야 할 몇 가지 매개 변수가 있습니다. 각 검증 (테스트) 세트에 대해 테스트됩니까? 아니면 k- 폴드 교차 검증을 사용하고 있습니까? 성능을 확인하기 위해 유효성 검사 (테스트) 세트를 몇 번 사용하고 있습니까? 이는 아마도 정확성입니다. pedantic은 유감이지만, 답변이 잘못 정의되어 있으며 과적 합의 위험이 있습니다.
Thylacoleo

@Thylacoleo 이것은 매우 조잡하고 기본적이고 탐욕스러운 방법입니다. 종종 유효성 검사 세트를 실행 동안 동일하게 유지하지만 원하는 것은 괜찮습니다.
피터 Smit

2

거꾸로 제거.

전체 세트로 시작한 후 나머지 피쳐에 대해 분류기를 반복적으로 학습하고 중요도가 가장 낮은 피쳐를 제거하고 분류기 오류가 급격히 증가하거나 허용 할 수없는 수준이되면 중지합니다.

중요도는 각 기능을 반복적으로 제거하여 분류자가 생성하는 경우 (예 : 임의 포리스트의 경우와 같이) 오류 증가 또는 분류기에서 적용된 오류를 확인하여 얻을 수도 있습니다.


2
그러나 문제는 관측치보다 더 많은 변수가 있다고 말합니다. 따라서 전체 세트로 시작할 수 없습니다.
Rob Hyndman

뭐가 문제 야?

2
관측치보다 더 많은 변수가있는 모형을 적합 할 수 없습니다. 모수 추정에 대한 자유도가 충분하지 않습니다.
Rob Hyndman

1
피셔의 F 계산에서는 같은 F를 계산 (n - k - p) / (k - 1) * ...n관찰의 수, k클래스 (여기서는 2)의 수와 p변수의 수. n - 2 - p < 0when n < p + 2(이 경우에 해당)로 이어집니다 F < 0. 그게 문제가되지 않습니까?
Matthieu

3
정규화 또는 완전 베이지안 회귀 분석을 통해 전체 예측 변수 세트를 사용하여 고유 한 솔루션을 얻을 수 있습니다.
Scortchi - 분석 재개 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.