gpt4 book ai didi

使用 LibSVM 进行分类

转载 作者:行者123 更新时间:2023-11-30 17:48:43 24 4
gpt4 key购买 nike

我正在使用 LibSVM 进行一些多类分类。我使用 LibSVM 的 MATLAB 接口(interface)训练模型。然后,我以 C 语言可以识别的格式保存该模型。现在我想在 C 语言中使用 svm_predict 进行分类。我无法重现在 MATLAB 中看到的结果。事实上,无论我输入什么测试 vector (甚至是零 vector ),我都会得到相同的类输出,我认为问题在于我将测试 vector x 加载到 svm_node 结构中的方式。下面是代码片段。请告诉我这是否是正确的方法或者我是否遗漏了某些内容。

struct svm_model *libsvm_model = svm_load_model('mymodel.svm');
struct svm_node x[2001]; // this is for one feature vector of size 2000x1
int index = 1;
int i = 0;

for (i = 0; i < features.size(); i++) {
x[i].index = index;
x[i].value = features.at(i);
index = index + 1;
}

x[i+1].index = -1;
x[i+1].value = '?';

double result = svm_predict(libsvm_model, x);

最佳答案

这似乎是一个问题:

x[i+1].index = -1;
x[i+1].value = '?';

libsvm 要求 svm_node输入 vector ,该 vector 应具有正索引和 double 值。你不应该“留下”一些奇怪的空维度。

顺便说一下,你不需要index变量

for (i = 0; i < features.size(); i++) {
x[i].index = index;
x[i].value = features.at(i);
index = index + 1;
}

相当于

for (i = 0; i < features.size(); i++) {
x[i].index = i + 1;
x[i].value = features.at(i);
}

关于使用 LibSVM 进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416725/

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