我正在使用OpenCV letter_recog.cpp示例来对随机树和其他分类器进行实验。此示例具有六个分类器的实现-随机树,boosting,MLP,kNN,朴素贝叶斯和SVM。使用具有20000个实例和16个功能的UCI字母识别数据集,我将其分为两半进行训练和测试。我具有SVM的经验,因此我迅速将其识别错误设置为3.3%。经过一些试验,我得到的是:
UCI字母识别:
- RTrees-5.3%
- 提升-13%
- MLP-7.9%
- kNN(k = 3)-6.5%
- 贝叶斯-11.5%
- 支持向量机-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,gamma = 0.01
之后,我使用相同的参数并通过首先提取梯度特征(向量大小为200个元素)对Digits和MNIST数据集进行了测试:
位数:
- RTrees-5.1%
- 提升-23.4%
- MLP-4.3%
- kNN(k = 3)-7.3%
- 贝叶斯-17.7%
- 支持向量机-4.2%
MNIST:
- RTrees-1.4%
- 加速-内存不足
- MLP-1.0%
- kNN(k = 3)-1.2%
- 贝叶斯-34.33%
- 支持向量机-0.6%
对于SVM和kNN以外的所有分类器,我都是陌生的,对于这两个分类器,我可以说结果似乎不错。那别人呢 我期望从随机树中获得更多,在MNIST kNN上可以提供更好的准确性,有什么想法如何使其更高?Boost和Bayes的准确性非常低。最后,我想使用这些分类器构建一个多分类器系统。有什么建议吗?