首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java项目中结合使用LibLINEAR和Weka

如何在Java项目中结合使用LibLINEAR和Weka
EN

Stack Overflow用户
提问于 2018-06-06 19:11:58
回答 1查看 151关注 0票数 0

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

代码语言:javascript
复制
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);
}

然而,我得到了以下错误:

代码语言:javascript
复制
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所需的所有类文件。然而,我仍然得到了错误。

EN

回答 1

Stack Overflow用户

发布于 2018-06-09 09:26:20

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

代码语言:javascript
复制
     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线性”如何被调用来改革分类并将结果保存到$GainRatEvalResults上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50718985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档