C# LibSVMsharp 库中的 LIBSVM“决策值”

Posted

技术标签:

【中文标题】C# LibSVMsharp 库中的 LIBSVM“决策值”【英文标题】:LIBSVM 'decision values' in C# LibSVMsharp library 【发布时间】:2015-11-27 07:10:36 【问题描述】:

据我了解,在命令行上训练 SVM 时,您可以使用 -b 0(默认)或 -b 1 指定 -b 参数以分别启用“决策值”或“概率估计”。我正在使用带有 5 个类的基于 C-SVC 的多类问题的 LIBSVM。我可以在 C# 库中使用

获得概率估计
testset.PredictProbability(model, out estimations);

预测后,我可以在“估计”输出对象中看到 5 个概率估计。我的理解是 5 类模型应该有 10 个决策值,即一个用于 1 类与 2 类,另一个用于 1 类与 3 类,依此类推。如何获得“决策值”?

【问题讨论】:

【参考方案1】:

通过 libsvm API 公开了三个预测函数。预测,用概率预测和用值预测。目前无法同时获得概率估计和决策值。

可以通过调用PredictValues函数返回决策值。它们确实会以 X 类与 Y 类的形式进行分类,因为多类 SVM 是通过一对一的方法执行的。这导致 k*(k-1)/2 个分类器被训练(一个分离每对类)。这些是 SVM 使用的原始决策值。另一方面,概率是每个类的估计概率,因此当然每个类只包含一个值。

【讨论】:

以上是关于C# LibSVMsharp 库中的 LIBSVM“决策值”的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 libsvm 导入到 R

带有 IKVM 的 C# 中 Weka 的 LIbSVM

LibSVM之C# Wrapper

C# 标准库中的 B-tree 类? [关闭]

同一个 COM 库中的 C++ 和 c# 类

无法将char转换为c#中类库中的项目