gpt4 book ai didi

java - 无法在 Java 代码中使用 Weka 的 PCA 过滤器

转载 作者:行者123 更新时间:2023-12-02 12:41:14 25 4
gpt4 key购买 nike

我必须在具有大量属性(1000)的数据集上用 java 实现分类器。

我的问题是当我想在数据集上使用 pca 过滤器时。我用 Weka 的“Explorer”预处理接口(interface)完成了它并且它有效(我得到了 20 个属性)。

我无法创建过滤器,控制台返回一个我不明白的错误。

这是一个使用过滤器的简单类:

import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
import weka.classifiers.bayes.NaiveBayes;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.PrincipalComponents;

public class ClassifierWithFilter{
public static void main(String args[]) throws Exception{
//load dataset
DataSource source = new DataSource("path/trainingfile.arff");
Instances trainingSet = source.getDataSet();
//set class index to the last attribute
trainingSet.setClassIndex(trainingSet.numAttributes()-1);

//filter
PrincipalComponents pca = new PrincipalComponents();
Instances newTrainingSet= Filter.useFilter(dataSet, pca);
System.out.println(newTrainingSet);

//the base classifier
NaiveBayes nb = new NaiveBayes();
nb.buildClassifier(trainingSet);
System.out.println(nb);
}
}

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: no/uib/cipr/matrix/Matrix
at weka.api.ClassifierWithFilter.main(ClassifierWithFilter.java:38)
Caused by: java.lang.ClassNotFoundException: no.uib.cipr.matrix.Matrix
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more

如果我将 3 行放在//filter 下面,错误就会消失。

我使用的是weka-3-8-1的jar包。

最佳答案

我终于找到了错误,我只是使用了以前版本的Weka包:Weka 3.6.0,错误就消失了。

关于java - 无法在 Java 代码中使用 Weka 的 PCA 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925555/

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