매우 큰 데이터 세트에서 중요한 변수를 빠르게 선택하는 방법은 무엇입니까?


9

약 2,000 개의 이진 변수 / 100,000 행의 데이터 세트가 있고 단일 이진 종속 변수를 예측하려고합니다. 이 단계에서 나의 주요 목표는 예측의 정확성을 얻는 것이 아니라 이러한 변수 중 어떤 변수가 중요한 예측 변수인지 식별하는 것입니다. 최종 모델의 변수 수를 약 100으로 줄이려고합니다.

가장 중요한 변수를 얻는 비교적 빠른 방법이 있습니까? randomForest는 시간이 오래 걸리는 것 같습니다.

200,000 개의 관측 값을 모두 사용할 필요는 없으므로 표에서 샘플링이 옵션입니다.


"정확한"예측 변수보다는 "중요한"예측 결과를 설명하고 이론을 세우는 데 가장 적합한 후보를 찾고 싶습니까? 그렇다면 100 개의 설명 변수는 엄청나게 큰 숫자입니다. 단순한 예측이 아닌 이론 구축과 실제 설명은 X의 수를 10 또는 15로 줄여야 할 것입니다.
rolando2

2
@ rolando2 일부 응용 프로그램에서 100은 전혀 크지 않습니다. 예를 들어, 고속 광대역에 대한 접근성에 대한 문헌은 약 150 개의 변수 (분석 된 수백 개 중)에 해당하며, 모두 합리적입니다. 공학의 용이성 (지형, 암석 유형, 기후 등), 경제성과 관련이 있습니다. (SES 등), 인구 통계학, 지역 교통 인프라의 구조, 정치 (세금 및 사업 환경) 등에 이르기까지 많은 경제 모델이 유사하게 수백 가지의 이론적으로 중요한 변수를 포함 할 수 있다고 생각합니다.
whuber

@ whuber-나는 당신의 요점을 생각하고 있습니다 ... 많은 변수에 의해 수행되는 인과 적 (예측이 아닌) 역할을 분류하는 데 드물게 헌신적이고 재능 있고 노련한 분석가가 필요하다는 데 동의하십니까?
rolando2

@rolando는 물론입니다. 2000 개의 변수는 많은 작업입니다!
whuber

답변:


6

간단한 일 변량 필터로 시작하고 교차 검증을 사용하여 유지할 변수를 결정할 수 있습니다. R 패키지 의 sbf기능 caret은 정말 유용합니다. 당신은에 대한 자세한 내용을보실 수 있습니다 여기 19 페이지의 시작.


감사. 나는 방금 신문을 읽었으며 그것은 확실한 접근법으로 보인다. 그러나 64 비트 4MB 메모리 시스템에서 일부 메모리 문제가 발생합니다.
DevX

1
@ DevX : 데이터가 너무 많으면 샘플을 가져 와서 샘플을 기반으로 변수를 선택할 수 있습니까?
Zach

13

이것은 축소 및 변수 선택을하는 올가미 및 친구에게 적합한 문제인 것 같습니다. 통계 학습의 요소는 회귀에 대한 올가미와 탄력적 그물, 그리고이 문제와 더 관련이있는 로지스틱 회귀를 설명합니다.

이 책의 저자는 올가미와 탄성 망을 효율적으로 구현하여 glmnet 이라는 R 패키지로 제공했습니다 . 나는 이전에이 패키지를 약 250,000 행의 데이터 행렬로 이진 데이터 분석에 사용했지만 열은 다소 적지 만 실제로는 다른 모든 열에 대해 모든 열의 회귀를 실행합니다. 데이터 매트릭스도 희소 한 경우 구현에서도이를 활용할 수 있으며이 방법이 실제로 OP 전체 데이터 세트에서 작동 할 수 있다고 생각합니다. 올가미에 대한 의견은 다음과 같습니다.

  • 올가미는 부드럽 지 않은 페널티 함수 ( -norm) 를 사용하여 변수 선택을 수행합니다. 일반적으로 일부 매개 변수는 정확히 0과 동일한 매개 변수 추정치가됩니다. 0이 아닌 모수가없는 매개 변수 수 0이 아닌 매개 변수는 축소되고 조정 매개 변수에 의해 결정됩니다. glmnet 에서 구현의 효율성은 큰 패널티의 경우 0과 다른 매개 변수가 거의 없다는 사실에 크게 의존합니다.1
  • 튜닝 파라미터의 선택은 종종 교차 검증에 의해 수행되지만, 교차 검증 단계 없이도, 방법은 페널티 파라미터에 의해 인덱스 된 선택된 선택된 변수의 양호한 시퀀스를 제공 할 수있다.
  • 단점은 변수 선택의 경우, 변수가 특히 상관 관계가 있으면 변수 선택에서 올가미가 불안정 할 수 있다는 것입니다. 이 불안정성을 개선하기 위해 보다 일반적인 탄력적 네트 페널티가 고안되었지만 문제를 완전히 해결하지는 못합니다. 적응 올가미올가미의 변수 선택을 향상시키는 또 다른 아이디어입니다.
  • 안정성 선택 은 올인과 같은 방법으로 선택한 변수의 안정성을 높이기 위해 Meinshausen과 Bühlmann이 제안한 일반적인 방법입니다. 그것은 데이터 세트의 서브 샘플에 다수의 적합을 요구하며, 따라서 훨씬 더 계산적으로 요구된다.
  • 올가미에 대한 합리적인 사고 방식은 단일 변수 모델에서 페널티 매개 변수로 매개 변수화 된 더 복잡한 모델 (모든 변수를 포함 할 필요는 없음)에 이르는 1 차원 "양호한"모델 세트를 생성하는 방법입니다. 반면, 일 변량 필터는 우수한 단일 변수 모델 만 선택하거나 주문합니다.

Python의 경우 올가미 및 탄력적 그물과 같은 scikit-learn 메소드 구현이 있습니다.


추가 된 개념으로, GWAS에서와 같은 잠재적 인 예측 인자의 급증, 수, 당신은 사전 선택이 문서에서 뭔가를 할 수있는 경우 : 게놈 넓은 협회 분석을 올가미 범 로지스틱 회귀에 의해
닉 Sabbe

@NickSabbe,이 참조에 감사드립니다. 매우 유용합니다. 실비아 리차드슨 은 GWAS의 맥락에서, 그리고 아마도 수많은 상관 된 예측 변수들과 다른 맥락에서, 예를 들어 안정성 선택과의 비교에 기초하여 베이지안 모델 선택을 권장 한다고 들었습니다 . 그러나 MCMC 계산은 정말 까다로 웠습니다.
NRH

구현하기 쉽기 때문에 Adaptive 올가미에 더 많은 스트레스를 줄 가치가 있다고 생각합니다 ( glmnetR에서 한 번이 아닌 거의 두 번의 호출 ). 또 다른 옵션은 구현하기 매우 쉬운 올가미 임계 값입니다. springer.com/gp/book/9783642201912의 섹션 2.9를 참조하십시오 .
Benjamin Christoffersen

2

각 변수에 대해 로지스틱 회귀 / 카이 제곱 연관 검정을 수행하고 p- 값이 일부 값보다 작은 값만 유지합니다 (예 : .2).


4
이 권장 사항이 어떻게 수행되는지 이해하려면 100 (예) 중요한 예측 변수가 있고 (종속 변수와 높은 상관 관계가 있음) 나머지는 종속 변수와 서로 완전히 관련이없는 경우를 고려하십시오. p- 값이 0.2보다 작은 값을 유지하면 약 100 + 0.2 * (2000-100) = 480 개의 변수로 끝나고 그 중 380 개는 가치가 없습니다. 들어 작은 데이터 셋이 방식은 때때로 빠른 초기 화면으로 사용되지만 정말 심각하게 여기 간주 할 수 없습니다.
whuber

좋은 점 @ whuber. 알파 수준을 약 100으로 유지하려면 알파 수준을 훨씬 낮게 설정해야하지만 다른 사람에 대한 조정에만 영향을 줄 수있는 변수를 놓칠 수 있습니다. 그러나 임의 포리스트와 같은 것을 실행하는 데 2000에서 480으로가는 것이 더 관리하기 쉬울 수 있습니다.
Glen

당신이 옳습니다, 제대로 작동한다면, 그러한 심사에는 장점이 있습니다. 480은 축소이지만 2000 개의 모든 원래 변수간에 높은 상관 관계가있을 수 있다는 추가적인 문제가 있습니다. 이로 인해 관련 질문에 대한 답변 중 일부에서 볼 수 있듯이 100 개의 올바른 변수 중 일부 또는 전부가 유지되지 않을 수 있습니다 .
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.