【问题标题】:How to use LibLINEAR with Weka in Java Project如何在 Java 项目中将 LibLINEAR 与 Weka 一起使用
【发布时间】:2018-06-09 10:02:57
【问题描述】:

我想在我的 java 代码中使用带有 Weka 包装器的 LibLINEAR。我的部分代码如下:

import weka.classifiers.functions.LibLINEAR;
import weka.core.Instances;
.
.
.   
public svmModel trainSVM(Instances trainInstances)
{    
    LibLINEAR libLsvm= new  LibLINEAR();

    libLsvm = new LibLINEAR();

    String[] a = libLsvm.getOptions();

    String svmOptions = "-S 0 -K 0 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 0.4 -E 0.011 -P 0.1 -H";

    libLsvm.setOptions(weka.core.Utils.splitOptions(svmOptions));

    libLsvm.buildClassifier(trainInstances);
}

但是我收到以下错误:

Exception in thread "main" java.lang.Exception: liblinear classes not in CLASSPATH!
at weka.classifiers.functions.LibLINEAR.buildClassifier(Unknown Source)
at opinionminingsvm.TrainSVMLibLinear.trainSVM(TrainSVMLibLinear.java:61)
at opinionminingsvm.LinearSVM_testing.main(LinearSVM_testing.java:42)

我在 NetBeans 中工作,我已将 liblinear-1.92.jar 文件添加到项目库中。 jar 文件包含weka.classifiers.functions.LibLINEAR 所需的所有类文件。但是,我仍然收到错误消息。

【问题讨论】:

    标签: java weka liblinear


    【解决方案1】:

    您可以在 shell 脚本中调用 Weka,并轻松地将其与您的 Java 代码交互。下面提供了一个示例 shell 脚本行:

         for i in {100..10};
    
    
            do
               java weka.classifiers.meta.AttributeSelectedClassifier -t $files -x $CV >> $GainRatEvalResults -E "weka.attributeSelection.GainRatioAttributeEval " -S "weka.attributeSelection.Ranker -T -1.7976931348623157E308 -N $i" -W weka.classifiers.functions.LibLINEAR -- -S 4 -C 1.0 -E 0.001 -B 1.0 -L 0.1 -I 1000
    
    done
    

    在这里,您将根据数据集 ($file) 中的增益率评估特征选择器从 100 个特征迭代到 10 个特征。请注意如何调用“lib linear”来重新分类并将结果保存到 $GainRatEvalResults。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2021-10-15
      • 1970-01-01
      相关资源
      最近更新 更多