Rasgele ağaçlar ve diğer sınıflandırıcılar üzerinde denemek için OpenCV letter_recog.cpp örneği kullanıyorum. Bu örnekte altı sınıflandırıcı - rastgele ağaçlar, artırma, MLP, kNN, naif Bayes ve SVM uygulamaları vardır. Eğitim ve test için ikiye böldüğüm 20000 örnek ve 16 özelliğe sahip UCI harf tanıma veri kümesi kullanılır. SVM ile ilgili deneyimim var, bu yüzden tanıma hatasını hızlı bir şekilde% 3,3'e ayarladım. Bazı deneylerden sonra ne oldu:
UCI harf tanıma:
- RTrees -% 5.3
- Takviye -% 13
- MLP -% 7.9
- kNN (k = 3) -% 6.5
- Bayes -% 11.5
- SVM -% 3,3
Kullanılan parametreler:
RTrees - max_num_of_trees_in_the_forrest = 200, max_depth = 20, min_sample_count = 1
Boost - boost_type = GERÇEK, zayıf_sayısı = 200, ağırlık_trim_ oranı = 0,95, maks_depth = 7
MLP - yöntem = BACKPROP, param = 0.001, max_iter = 300 (varsayılan değerler - denemek için çok yavaş)
kNN (k = 3) - k = 3
Bayes - hiçbiri
SVM - RBF çekirdeği, C = 10, gama = 0.01
Bundan sonra aynı parametreleri kullandım ve önce degrade özelliklerini (vektör boyutu 200 öğeleri) çıkararak Rakamlar ve MNIST veri kümelerinde test ettim:
Rakamlar:
- RTrees -% 5.1
- Artış -% 23.4
- MLP -% 4.3
- kNN (k = 3) -% 7,3
- Bayes -% 17.7
- SVM -% 4,2
MNIST:
- RTrees -% 1.4
- Boost - bellek yetersiz
- MLP -% 1.0
- kNN (k = 3) -% 1,2
- Bayes -% 34.33
- SVM -% 0,6
SVM ve kNN dışındaki tüm sınıflandırıcılara yeniyim, bu ikisi için sonuçların iyi göründüğünü söyleyebilirim. Peki ya diğerleri? Rasgele ağaçlardan daha fazlasını bekliyordum, MNIST kNN'de daha iyi doğruluk verir, nasıl daha yükseğe çıkılacağına dair bir fikir var mı? Boost ve Bayes çok düşük doğruluk sağlar. Sonunda, bu sınıflandırıcıları çoklu bir sınıflandırıcı sistemi yapmak için kullanmak istiyorum. Herhangi bir tavsiye?