더 나은 예측 (예 : CV) 성능을 가진 분류 트리의 대안?


23

더 나은 예측력을 얻을 수있는 분류 트리의 대안을 찾고 있습니다.

내가 다루고있는 데이터에는 설명 변수와 설명 변수 모두에 대한 요소가 있습니다.

이 맥락에서 임의의 숲과 신경망을 발견 한 것을 기억합니다. 전에는 시도한 적이 없지만 그러한 모델링 작업에 대한 또 다른 좋은 후보가 있습니까 (R의 경우)?


5
신경망에 신경 쓰지 마십시오. 이것은 쓸모없는 기술입니다.

1
@mbq 아직도이 진술을지지합니까?
rhombidodecahedron 12

@rhombidodecahedron 물론, 2010 년부터 NN과 함께 플레이하면 동의합니다. 게다가 모든 DL 모델이 (아마도) 그러한 작은 크기의 데이터가있는 테이블에 무엇이든 가져올 것이라고 의심합니다.

답변:


25

Random Forests ( randomForest )를 사용해 볼 가치가 있다고 생각합니다 . 일부 참조는 관련 질문에 대한 응답으로 제공되었다 : 기능 선택 "최종"모델 기계 학습의 교차 검증을 수행 할 때 ; CART 모델을 견고하게 만들 수 있습니까? . 부스팅 / 배깅은 작은 섭동에 매우 민감한 것으로 알려진 단일 CART보다 더 안정적입니다. 일부 저자는 SVM 또는 그라디언트 부스팅 머신 뿐만 아니라 성능이 우수하다고 주장했다 (Cutler et al., 2009 참조). 나는 그들이 NN보다 확실히 뛰어나다 고 생각한다.

Boulesteix와 Strobl은 최적 분류기 선택과 오류율 추정의 부정적 편향에 대한 몇 가지 분류기의 좋은 개요를 제공합니다 . IV EAM 회의 에서 또 다른 좋은 연구에 대해 들었습니다.이 통계는 의학 통계에서 검토 중이어야합니다 .

João Maroco , Dina Silva, Manuela Guerreiro, Alexandre de Mendonça. 랜덤 포레스트는 신경망보다 성능이 뛰어나고 벡터 머신과 판별 분석 분류기를 지원합니까? 인지 불만이있는 노인 환자에서 치매로의 진화에 관한 사례 연구

캐럿 패키지 도 좋아합니다 . 문서화가 잘되어 있으며 동일한 데이터 세트에서 여러 분류기의 예측 정확도를 비교할 수 있습니다. 사용자 친화적 인 기능으로 훈련 / 테스트 샘플, 컴퓨팅 정확도 등을 관리합니다.

Friedman과 coll. 의 glmnet 패키지는 불이익을받은 GLM ( 저널 통계 소프트웨어 저널의 검토 참조)을 구현 하므로 잘 알려진 모델링 프레임 워크를 유지합니다.

그렇지 않으면 연관 규칙 기반 분류 자를 찾을 수도 있습니다 ( 머신 러닝 에 대한 CRAN 작업보기 또는 데이터 마이닝상위 10 개 알고리즘 참조).

Hervé Abdi의 판별 대응 분석 인 R (실제로 Matlab 코드)로 다시 구현할 계획 인 또 다른 흥미로운 접근법을 언급하고 싶습니다 . 초기에 많은 설명 변수 (결과적으로 코 히어 런트 블록으로 그룹화 됨)가있는 소 표본 연구에 대처하기 위해 개발되었지만 클래식 DA와 데이터 축소 기술을 효율적으로 결합한 것으로 보입니다.

참고 문헌

  1. Cutler, A., Cutler, DR 및 JR Stevens (2009). Tree-Based Methods , 암 연구 에서의 고차원 데이터 분석 , Li, X. 및 Xu, R. (eds.), pp. 83-101, Springer.
  2. Saeys, Y., Inza, I. 및 Larrañaga, P. (2007). 생물 정보학의 기능 선택 기법에 대한 검토 . 생물 정보학, 23 (19) : 2507-2517.

2
+1 좋은 답변입니다. 또한 캐럿 권장 사항에 동의합니다.
Shane

12

다른 알고리즘보다 항상 더 나은 알고리즘은 없다는 것을 명심해야합니다. Wolpert와 Macready가 말했듯이 "두 알고리즘은 가능한 모든 문제에서 성능이 평균화 될 때 동등합니다." (자세한 내용은 Wikipedia 를 참조하십시오.)

특정 응용 프로그램의 경우 "최상의"응용 프로그램은 일반적으로 가정, 처리 할 수있는 데이터 종류, 표시 할 수있는 가설 등의 관점에서 응용 프로그램과 가장 밀접하게 일치하는 응용 프로그램입니다.

따라서 다음과 같은 기준에 따라 데이터를 특성화하는 것이 좋습니다.

  • 매우 큰 데이터 세트 또는 적당한 데이터 세트가 있습니까?
  • 차원이 높습니까?
  • 변수가 수치 적이거나 (연속적이거나 불 연속적), 또는 상징적이거나 혼합 적인가?
  • 변수가 크게 독립적이거나 의존적 일 가능성이 있습니까?
  • 중복, 시끄 럽거나 관련없는 변수가있을 가능성이 있습니까?
  • 생성 된 모델을 검사하고 이해하려고합니까?

이것에 답함으로써, 일부 알고리즘을 제거하고 다른 알고리즘을 잠재적으로 관련성이있는 것으로 식별 한 다음, 유용 할 것으로 지능적으로 선택한 소수의 후보 방법으로 끝날 수 있습니다.

간단한 답변을 드리지 못해서 죄송하지만 이것이 도움이 되길 바랍니다.


2
+1 견적을 좋아합니다. ( "가능한 모든 문제에 대해 성능이 평균화 될 때 두 알고리즘 모두 동일합니다."
Assad Ebrahim

8

멀티 클래스 분류의 경우 지원 벡터 머신도 좋은 선택입니다. 나는 이것을 위해 일반적으로 R kernlab 패키지를 사용합니다.

좋은 토론은 다음 JSS 문서를 참조하십시오. http://www.jstatsoft.org/v15/i09/


@Tal 여기에 SVM RF 의 공정한 (또는 그렇게 생각합니다) 리뷰가 있습니다 : 임의의 숲과 마이크로 어레이 기반 암 분류를위한 지원 벡터 머신의 포괄적 인 비교, j.mp/ab7U8V . 나는 또한 선호 kernlab한다 e1071.
chl

2
@chl 저는이 논문이 SVM 학습 관점에서 만들어지는 동안 마음에 들지 않습니다.-확률 론적 알고리즘 (RF)을 반복하는 것은 단지 쓰레기 일뿐입니다. 또한 부록 2에서는 SVM 워크 플로를 RF에 적용하는 것이 얼마나 나쁜지를 보여줍니다. 그러나 나는 거의 항상 SVM이 커널 트릭 (일반 RF에는 없지만 일반적으로는 가질 수는 없지만) 최적화 노력이 기하 급수적으로 증가하여 RF보다 성능이 뛰어나도록 조정할 수 있음에 동의합니다.

@mbq 사실, 이것은 좋은 지적입니다.
chl

3

이미 언급했듯이 랜덤 포레스트는 자연스러운 "업그레이드"이며, 요즘 SVM은 일반적으로 권장되는 기술입니다.

SVM으로 전환하지 않는 것보다 더 자주 결과를 실망시키고 싶습니다. 임의의 나무와 같은 기술은 사용하기가 거의 쉽지 않지만 SVM은 약간 까다 롭습니다.

SVM을 처음 사용할 때이 백서를 귀중하게 여겼습니다 (벡터 클래식을 지원하기위한 실용 가이드) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

R에서는 SVM 용 e1071 패키지를 사용할 수 있으며 사실상 표준 (최소한 자유 소프트웨어) libSVM 라이브러리와 링크됩니다.


2
kernlab은 또한 최적화를 위해 libsvm을 사용하므로 훨씬 유연하지만 그 의미에는 큰 차이가 없습니다.
Shane

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