您的位置:首页 > 移动开发 > IOS开发

opencv-ios开发笔记12 svm参数设置和自动优选

2016-09-30 16:41 288 查看
// 训练分类器
Ptr<TrainData> tData = TrainData::create(trainData, ROW_SAMPLE, trainLabels);

// 创建分类器并设置参数
/*
//K值邻近
Ptr<KNearest> model =KNearest::create();
model->setDefaultK(3);
model->setIsClassifier(true);
*/

//支持向量机
Ptr<SVM> model =SVM::create();
model->setType(SVM::C_SVC);
model->setKernel(SVM::LINEAR); //核函数

model->setC(0.1);
model->setGamma(1.0);
model->setP(0.0);

cout << endl << "当前参数 C:"<< model->getC() << " G:"<< model->getGamma() << " P:"<< model->getP() <<endl ;

// 训练分类器
model->train(tData) ;
//自动优化
// if( model->trainAuto(tData)){
// cout << endl << "优化后参数 C:"<< model->getC() << " G:"<< model->getGamma() << " P:"<< model->getP() <<endl ;
// }


经测试 准确率比只用svm的默认c、g、p参数提高了10%,说明这个自动参数优化还是有点用。
如果用opencv2的svm,可以参考文章:OpenCV中的SVM参数优化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svm opencv objective-c ios knn