在C++中使用 Matlab SVM 模型



我在Matlab中使用libsvm创建了一个SVM模型。我无法在进行预测的代码中创建模型,因此我需要保存模型并在以后使用它。我想在我的C++代码中使用该模型进行预测。我知道如何使用 svmpredict 在 matlab 本身中进行预测,但我想保存 matlab 中创建的模型并将其用于预测C++。所有人的拳头,可能吗?如果是这样,如何将模型保存在 matlab 中并在C++中重新调用它?

一种选择是将模型学习的参数保存在csv文件中。从 svmtrain 返回的模型是一个结构体。此结构的元素之一是模型参数。然后,您可以将其读取到C++文件中。

然而,这似乎是多余的,因为libSVM已经用C编写了,因此,被调用的预测函数正在用C语言调用。

如果您只需要能够预测C++代码中的值,那么您可以做的一件事就是在 matlab 中提取模型参数并将其用于C++代码中的预测。

您可能已经知道,您可以通过替换所需的值并根据符号进行预测来手动进行预测。

此答案包含有关在 RBF 内核的情况下要提取哪些参数以及如何进行预测的信息。

最新更新