기능 선택 및 기계 학습에 대해 약간 혼란스러워하며 도움이되는지 궁금합니다. 두 그룹으로 분류되고 1000 개의 기능을 가진 마이크로 어레이 데이터 세트가 있습니다. 내 목표는 이론적으로 다른 데이터 세트에 적용하여 해당 샘플을 최적으로 분류 할 수있는 서명으로 소수의 유전자 (내 특징) (10-20)를 얻는 것입니다. 샘플 수가 많지 않기 때문에 (<100), 테스트 및 교육 세트를 사용하지 않고 견고성을 결정하는 데 도움이되는 Leave-one-out 교차 검증을 사용합니다. 나는 샘플의 각 분할에 대해 기능 선택을 수행해야한다는 것을 읽었습니다.
- 하나의 샘플을 테스트 세트로 선택
- 나머지 샘플에서 기능 선택을 수행합니다.
- 선택된 기능을 사용하여 나머지 샘플에 머신 러닝 알고리즘 적용
- 테스트 세트가 올바르게 분류되었는지 테스트
- 1로 가십시오.
이렇게하면 매번 다른 유전자를 얻을 수 있으므로 어떻게 “최종”최적의 유전자 분류기를 얻을 수 있습니까? 6 단계는 무엇입니까?
내가 최적이라는 것은 추가 연구에서 사용해야하는 유전자의 수집입니다. 예를 들어, 암 / 정상 데이터 세트가 있고 SVM에 따라 종양 유형을 분류 할 상위 10 개의 유전자를 찾고 싶다고 가정합니다. 추가 실험에서 진단 테스트로 사용할 수 있는지 확인하는 데 사용할 수있는 유전자 세트와 SVM 매개 변수를 알고 싶습니다.
답변
이것은 SNP 데이터로 작업 할 때 제가 직면 한 매우 좋은 질문입니다 … 그리고 문헌을 통해 명확한 답을 찾지 못했습니다.
LOO를 사용하든 K- 폴드 CV를 사용하든, 교차 검증 반복이 가장 외부 루프 여야하므로 다른 기능으로 끝납니다. LOO-CV에서 얻은 기능의 n- 벡터를 평가하는 일종의 투표 방식을 생각할 수 있습니다 (논문을 기억할 수는 없지만 Harald Binder 또는 Antoine Cornuéjols 의 작업을 확인하는 것이 좋습니다 ). 새로운 테스트 샘플이없는 경우 일반적으로 수행되는 작업은 최적의 교차 검증 된 매개 변수를 찾은 후 ML 알고리즘을 전체 샘플에 다시 적용하는 것입니다. 그러나이 방법으로 진행하면 과적 합이 없는지 확인할 수 없습니다 (샘플이 이미 모델 최적화에 사용 되었기 때문에).
n≪p- 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.
- Díaz-Uriarte, R., Alvarez de Andrés, S. (2006). 랜덤 포레스트를 이용한 마이크로 어레이 데이터의 유전자 선택 및 분류. BMC 생물 정보학 , 7 : 3.
- Diaz-Uriarte, R. (2007). GeneSrF 및 varSelRF : 랜덤 포레스트를 사용한 유전자 선택 및 분류를위한 웹 기반 도구 및 R 패키지. BMC 생물 정보학 , 8 :: 328
SVM에 대해 이야기하고 있으므로 불이익 을 받은 SVM을 찾을 수 있습니다 .
답변
원칙적으로:
전체 데이터 세트에 대해 훈련 된 단일 모델을 사용하여 예측을 수행하십시오 (따라서 하나의 기능 세트 만 있음). 교차 유효성 검사는 전체 데이터 집합에 대해 훈련 된 단일 모델의 예측 성능을 추정하는 데만 사용됩니다. 교차 검증을 사용하는 것은 매우 중요합니다. 각 폴드마다 기본 모델에 맞는 전체 절차를 반복해야합니다.
이 문제가 발생하는 이유를 확인하려면 사례와 기능이 모두 무작위 인 경우에만 1000 개의 이진 기능이 100 개인 이진 분류 문제를 고려하십시오. 따라서 기능과 사례간에 통계적 관계가 없습니다. 전체 데이터 세트에서 기본 모델을 학습하는 경우 사례보다 더 많은 기능이 있기 때문에 항상 트레이닝 세트에서 오류가 전혀 없습니다. “정보”기능의 하위 집합을 찾을 수도 있습니다 (우연히 상관되어 있음). 그런 다음 해당 기능 만 사용하여 교차 유효성 검사를 수행하면 임의 추측보다 나은 성능 추정치를 얻게됩니다. 그 이유는 교차 검증 절차의 각 접힘마다, 예측에 좋았 기 때문에 피처가 선택되었으므로 테스트에 사용 된 보류 사례에 대한 정보가 있기 때문입니다. 포함 된 것을 포함하여. 물론 실제 오류율은 0.5입니다.
적절한 절차를 채택하고 각 폴더에서 기능 선택을 수행하는 경우 해당 폴더에서 사용되는 기능을 선택할 때 보류 된 사례에 대한 정보가 더 이상 없습니다. 적절한 절차를 사용하면이 경우 약 0.5의 오류율을 얻게됩니다 (데이터 세트의 실현에 따라 약간 씩 다를 수 있음).
읽을만한 좋은 논문은 다음과 같습니다.
Christophe Ambroise, Geoffrey J. McLachlan, “마이크로 어레이 유전자 발현 데이터에 기초한 유전자 추출에서의 선택 편향”, PNAS http://www.pnas.org/content/99/10/6562.abstract
OP와 관련성이 높고
Gavin C. Cawley, Nicola LC Talbot, “성능 평가에서 모델 선택 및 후속 선택 바이어스에 대한 과적 합”, JMLR 11 (Jul) : 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html
이는 모델 선택에서 동일한 일이 쉽게 발생할 수 있음을 보여줍니다 (예 : SVM의 하이퍼 파라미터 조정, CV 절차의 각 반복에서 반복되어야 함).
실제로:
Bagging을 사용하고 성능 예측을 위해 bag-of-bag 오류를 사용하는 것이 좋습니다. 많은 기능을 사용하여위원회 모델을 얻을 수 있지만 실제로는 좋은 것입니다. 단일 모델 만 사용하는 경우 기능 선택 기준을 과도하게 맞추고 더 많은 수의 기능을 사용하는 모델보다 예측이 좋지 않은 모델이 생길 수 있습니다.
Alan Millers는 회귀 분석에서 부분 집합 선택에 관한 책 (통계 및 적용 확률, 제 95 권에 대한 챕터 및 홀 논문)이 예측 성능이 가장 중요한 경우에는 기능 선택을 수행하지 않는다는 충고 (221 페이지)를 제공합니다. 대신 능선 회귀를 사용하십시오. 그리고 그것은 부분 집합 선택에 관한 책에 있습니다 !!! ;영형)
답변
chl에 추가하려면 : 서포트 벡터 머신을 사용할 때 권장되는 벌칙은 탄력적 그물입니다. 이 방법은 계수를 0으로 줄이며 이론적으로 모델에서 가장 안정적인 계수를 유지합니다. 처음에는 회귀 프레임 워크에서 사용되었지만 지원 벡터 시스템과 함께 사용하기 위해 쉽게 확장되었습니다.
최초 간행물 : Zou and Hastie (2005) : 탄성 망을 통한 정규화 및 변수 선택. JRStatist.Soc. B, 67-2, 301-320 페이지
SVM을위한 탄력적 네트워크 : Zhu & Zou (2007) : 서포트 벡터 머신을위한 변수 선택 : 신경 계산 동향, 2 장 (편집자 : Chen 및 Wang)
탄성 망의 개선 Jun-Tao 및 Ying-Min (2010) : 암 분류 및 유전자 선택을위한 향상된 탄성 망 : Acta Automatica Sinica, 36-7, pp.976-981
답변
6 단계 (또는 0)로 전체 데이터 세트에서 기능 감지 알고리즘을 실행합니다.
n−1
n
답변
이것이 제가 기능을 선택하는 방법입니다. 특정 지식을 기반으로 비교할 두 가지 모델이 있다고 가정합니다. 모델 A는 1 번에서 1 번까지의 피처를 사용합니다. 모델 B는 11 번에서 11 번을 사용합니다. 20. LOO CV를 모델 A에 적용하여 샘플 외부 성능을 얻습니다. 모델 B와 동일하게 수행 한 후 비교하십시오.
답변
분류 문제에 대해 잘 모르겠지만 회귀 문제에 대한 기능 선택의 경우 Jun Shao는 Leave-One-Out CV가 점진적으로 일치하지 않습니다 . 즉, 기능의 적절한 하위 집합을 선택할 확률이 1 샘플 수가 증가합니다. 실제적인 관점에서 Shao는 Monte-Carlo 교차 검증 또는 휴가 다방면 절차를 권장합니다.