gpt4 book ai didi

java - 如何在 Java 中获取 LibSVM 分类器的权重?

转载 作者:行者123 更新时间:2023-11-30 09:22:36 25 4
gpt4 key购买 nike

我在Java中使用LibSVM,如下:

LibSVM classifier = new LibSVM();
classifier.setCost(C);

我有兴趣获取权重 w和参数 b来自分类器,从而表征线性核情况下的分离超平面:

w^T x + b = 0

我见过some other questions建议如何在 MATLAB 或其他语言中执行此操作。但是,我不清楚如何在 Java 中执行此操作。如果您选择 documentation你找到方法getWeights()通过读取名称,应该返回一个权重列表。然而,因为:

  • 返回类型不是我期望的类型(我期望类似 double[] 的类型,而不是单个 String )
  • Javadoc 不清楚(引用:“获取类 i 的参数 C 到weight[i]*C,对于 C-SVC(默认为 1)。”)

尚不清楚这些是否是权重wb我正在寻找。

我见过here另一位用户也有同样的问题,但他没有找到问题的答案。

谢谢。

最佳答案

在您提供的文档中,它说 getWeights() 返回的字符串是包含权重的字符串(由空格分隔的 double )。

所以这应该有效:

String a = classifier.getWeights();
String[] weightsString = a.split(' ');
double[] weights = new double[a.length];
for(int i =0; i< a.length; i++)
weights[i] = Double.valueOf(weightsString[i]);

关于java - 如何在 Java 中获取 LibSVM 分类器的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com