将线性 SVC 系数导出到 PMML

Exporting Linear SVC coefficients to PMML

提问人:Hannah Oosterhuis 提问时间:11/14/2023 最后编辑:Hannah Oosterhuis 更新时间:11/14/2023 访问量:20

问:

我正在尝试将线性 SVC 导出到 PMML。我创建了一个 sklearn 管道 (sklearn.pipeline.Pipeline),其中包含一个 SimpleImputer、一个标准缩放器和一个线性支持向量机 (svm.SVC(kernel=“linear”))。

我使用 sklearn2pmml.make_pmml_pipeline 函数将其转换为 PMML 管道。接下来,我可以使用 sklearn2pmml 函数导出此管道。效果很好。但是,如果我检查 PMML 文件,我发现模型是使用支持向量保存的。模型的权重或系数不存储在 PMML 文件中。

我希望这些系数能够为每个结果生成局部解释(使用系数和特征分数的点积元素)。此外,该模型现在仅输出 0 或 1 分数,而我想获得由点积产生的分数。

我试图寻找是否可以导出 SVC 的系数而不是支持向量,但只找到了一些晦涩难懂的参考,但没有找到真正的示例或应用。

有谁知道是否可以使用 sklearn2pmml 包执行此操作。或者使用不同的方法将 sklearn 模型导出到 PMML 文件?

TLDR:我尝试将线性 SVC 导出到 PMML,虽然它有效,但它只导出支持向量。我也想要模型的系数,但似乎无法弄清楚如何。

python scikit-learn pmml svc sklearn2pmml

评论

0赞 D.L 11/14/2023
缺少代码部分,该问题需要足够的代码才能获得最小的可重现示例
0赞 Ben Reiniger 11/15/2023
开箱即用吗?LinearSVC
0赞 user1808924 11/15/2023
Ben 说的是对的 - 如果你想要 beta 系数,那么你需要从基于 LibSVM 的 SVM 实现切换到基于 LIBLINEAR 的实现,比如 .你现在问的(“将支持向量转换为贝塔系数”)实际上是不可能的。SVCLinearSVC
0赞 Hannah Oosterhuis 11/16/2023
我再次尝试了 LinearSVC,它似乎确实有效,所以感谢您的建议!

答: 暂无答案