将 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 模型