임의의 나무와 다른 분류자를 실험하기 위해 OpenCV letter_recog.cpp 예제를 사용하고 있습니다. 이 예제에는 랜덤 트리, 부스팅, MLP, kNN, 순진한 베이 즈 및 SVM의 6 가지 분류 기가 구현되어 있습니다. 20000 개의 인스턴스와 16 개의 기능이 포함 된 UCI 문자 인식 데이터 세트가 사용되며 교육 및 테스트를 위해 절반으로 나눕니다. SVM에 대한 경험이 있으므로 인식 오류를 3.3 %로 빠르게 설정했습니다. 몇 가지 실험 후 내가 얻은 것은 다음과 같습니다.
UCI 문자 인식 :
- RTrees-5.3 %
- 부스트-13 %
- MLP-7.9 %
- kNN (k = 3)-6.5 %
- 베이 즈-11.5 %
- SVM-3.3 %
사용 된 매개 변수 :
RTrees-max_num_of_trees_in_the_forrest = 200, max_depth = 20, min_sample_count = 1
부스트-boost_type = REAL, weak_count = 200, weight_trim_rate = 0.95, max_depth = 7
MLP-method = BACKPROP, param = 0.001, max_iter = 300 (기본값-실험하기에는 너무 느림)
kNN (k = 3)-k = 3
베이 즈-없음
SVM-RBF 커널, C = 10, 감마 = 0.01
그 후 동일한 매개 변수를 사용하고 그라디언트 기능을 먼저 추출하여 Digits 및 MNIST 데이터 세트에서 테스트했습니다 (벡터 크기 200 요소).
숫자 :
- RTrees-5.1 %
- 부스트-23.4 %
- MLP-4.3 %
- kNN (k = 3)-7.3 %
- 베이 즈-17.7 %
- SVM-4.2 %
MNIST :
- RTrees-1.4 %
- 부스트-메모리 부족
- MLP-1.0 %
- kNN (k = 3)-1.2 %
- 베이 즈-34.33 %
- SVM-0.6 %
나는 SVM과 kNN을 제외한 모든 분류 자에 익숙하지 않다.이 두 가지에 대해 결과가 좋아 보인다고 말할 수있다. 다른 사람들은 어떻습니까? 랜덤 트리에서 더 많은 것을 기대했는데 MNIST kNN에서 더 나은 정확성을 제공합니다. 부스트와 베이는 매우 낮은 정확도를 제공합니다. 결국이 분류기를 사용하여 다중 분류기 시스템을 만들고 싶습니다. 어떤 충고?