gpt4 book ai didi

python - LibSVM 预测不工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:39 25 4
gpt4 key购买 nike

我已经在 libsvm 的 python 实用程序中编写了我的分类器,到目前为止它运行良好。这是我如何调用 Python API 的示例:

print svmutil.svm_predict([2], [f.flatten().tolist()], libsvm_model, '-b 1')

其中 f 是 (1024,1) vector 。

我已经保存了模型,并使用 C++ API 加载了它。但是,当我尝试加载和预测相同的 vector 时,它会给出错误的结果。

cv::Mat oneCol = fcMat.row(0);
svm_node *x = (struct svm_node *) malloc(1025*sizeof(struct svm_node));
for(int i=0; i<1024; i++){
x[i].index = i;
x[i].value = (double)oneCol.at<float>(i);
}
x[1024].index = -1;


double *prob_estimates=NULL;
prob_estimates = (double *) malloc(svmModel->nr_class*sizeof(double));

double retVal = svm_predict_probability(svmModel, x, prob_estimates);
cout << retVal << endl;

for(int j=0;j<svmModel->nr_class;j++)
cout << prob_estimates[j] << endl;

在这里,我尝试从 OpenCV 对象中加载 vector 。然而,预测的模型是错误的。这里有什么问题吗?

最佳答案

for(int i=0; i<1024; i++){
x[i].index = i+1;
x[i].value = (double)oneCol.at<float>(i);
}

在 LibSVM 中,索引从 1 开始。谁知道呢:(

关于python - LibSVM 预测不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317411/

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