将 scikit-learn SVM 模型转换为 LibSVM

Posted

技术标签:

【中文标题】将 scikit-learn SVM 模型转换为 LibSVM【英文标题】:Convert scikit-learn SVM model to LibSVM 【发布时间】:2014-07-11 03:04:46 【问题描述】:

我已经使用 scikit-learn 训练了一个 SVM (svc),数据量超过半 TB。该模型运行良好,我需要将其移植到 C,但我不想从头开始重新训练 SVM,因为这对我来说花费的时间太长。有没有办法轻松导出 scikit-learn 生成的模型并将其导入 LibSVM? scikit-learn 内部使用 LibSVM,所以理论上应该是可能的,但我无法在文档中找到任何内容。有什么建议吗?

【问题讨论】:

【参考方案1】:

有没有办法轻松导出 scikit-learn 生成的模型并导入到 LibSVM 中?

没有。 LIBSVM 的 scikit-learn 版本已被严重修改以适应 Python 环境,并且模型存储为 NumPy/SciPy 数据结构。

最好的办法是研究SVM decision function 并用C 重新实现它。支持向量可以从SVC 对象作为NumPy 数组获得,很容易转换为C 数组。

【讨论】:

重新实现决策函数似乎不是特别成问题,谢谢指点源码。

以上是关于将 scikit-learn SVM 模型转换为 LibSVM的主要内容,如果未能解决你的问题,请参考以下文章

用于文本分类的一类 SVM 模型(scikit-learn)

使用 SVM 模型和 scikit-learn 进行预测的 AttributeError

Python 元组和列表操作(作为 scikit-learn 中 SVM 模型的输入)

scikit-learn:将多输出决策树转换为 CoreML 模型

使用 scikit-learn SVM 将预测标记为概率分数预测/AUC

使用 scikit-learn 重新拟合 SVM