gpt4 book ai didi

c++ - OpenCV SVM 参数的推荐值

转载 作者:行者123 更新时间:2023-11-28 02:24:35 25 4
gpt4 key购买 nike

对 OpenCV SVM 的推荐参数有什么想法吗?我正在玩 OpenCV 示例目录中的 letter_recog.cpp,但是,SVM 精度非常差!在一次运行中我只有 62% 的准确率:

$ ./letter_recog_modified -data /home/cobalt/opencv/samples/data/letter-recognition.data  -save svm_letter_recog.xml -svm

The database /home/cobalt/opencv/samples/data/letter-recognition.data is loaded.
Training the classifier ...
data.size() = [16 x 20000]
responses.size() = [1 x 20000]

Recognition rate: train = 64.3%, test = 62.2%

默认参数为:

model = SVM::create();
model->setType(SVM::C_SVC);
model->setKernel(SVM::LINEAR);
model->setC(1);
model->train(tdata);

将其设置为 trainAuto() 没有帮助;它给了我一个奇怪的 0% 测试准确率:

model = SVM::create();
model->setType(SVM::C_SVC);
model->setKernel(SVM::LINEAR);
model->trainAuto(tdata);

结果:

Recognition rate: train = 0.0%, test = 0.0%

使用杨杰的回答更新:

$ ./letter_recog_modified -data /home/cobalt/opencv/samples/data/letter-recognition.data  -save svm_letter_recog.xml -svm
The database /home/cobalt/opencv/samples/data/letter-recognition.data is loaded.
Training the classifier ...
data.size() = [16 x 20000]
responses.size() = [1 x 20000]

Recognition rate: train = 58.8%, test = 57.5%

结果不再是 0%,但准确率比之前的 62% 差。

使用带有 trainAuto() 的 RBF 核是最差的?

$ ./letter_recog_modified_rbf -data /home/cobalt/opencv/samples/data/letter-recognition.data  -save svm_letter_recog.xml -svm
The database /home/cobalt/opencv/samples/data/letter-recognition.data is loaded.
Training the classifier ...
data.size() = [16 x 20000]
responses.size() = [1 x 20000]

Recognition rate: train = 18.5%, test = 11.6%

参数:

    model = SVM::create();
model->setType(SVM::C_SVC);
model->setKernel(SVM::RBF);
model->trainAuto(tdata);

最佳答案

我建议尝试使用 RBF 内核而不是线性内核。在很多很多情况下它是最好的选择...

关于c++ - OpenCV SVM 参数的推荐值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31178095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com