gpt4 book ai didi

java - 在 Java 代码中使用 WEKA 中的神经网络类

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:53 25 4
gpt4 key购买 nike

您好,我想使用 WEKA 库中的神经网络进行简单的训练和测试。

但是,我发现它不是微不足道的,它与库中的 NaiveBayes 类不同。

谁有如何在 java 代码中使用这个类的例子?

最佳答案

以下步骤可能会对您有所帮助:

  1. 添加 Weka 库

http://www.cs.waikato.ac.nz/ml/weka/downloading.html 下载 Weka .

从包中找到“Weka.jar”并添加到项目中。

Java 代码片段

  1. 构建神经分类器

    public void simpleWekaTrain(String filepath)
    {
    try{
    //Reading training arff or csv file
    FileReader trainreader = new FileReader(filepath);
    Instances train = new Instances(trainreader);
    train.setClassIndex(train.numAttributes() – 1);
    //Instance of NN
    MultilayerPerceptron mlp = new MultilayerPerceptron();
    //Setting Parameters
    mlp.setLearningRate(0.1);
    mlp.setMomentum(0.2);
    mlp.setTrainingTime(2000);
    mlp.setHiddenLayers(“3?);
    mlp.buildClassifier(train);
    }
    catch(Exception ex){
    ex.printStackTrace();
    }
    }

另一种设置参数的方式,

    mlp.setOptions(Utils.splitOptions(“-L 0.1 -M 0.2 -N 2000 -V 0 -S 0 -E 20 -H 3?));

在哪里,

L = Learning Rate
M = Momentum
N = Training Time or Epochs
H = Hidden Layers
etc.
  1. 神经分类器训练验证

用于评估训练数据,

    Evaluation eval = new Evaluation(train);
eval.evaluateModel(mlp, train);
System.out.println(eval.errorRate()); //Printing Training Mean root squared Error
System.out.println(eval.toSummaryString()); //Summary of Training

应用 K 折验证

    eval.crossValidateModel(mlp, train, kfolds, new Random(1));
  1. 评估/预测未标记的数据

    Instances datapredict = new Instances(
    new BufferedReader(
    new FileReader(<Predictdatapath>)));
    datapredict.setClassIndex(datapredict.numAttributes() – 1);
    Instances predicteddata = new Instances(datapredict);
    //Predict Part
    for (int i = 0; i < datapredict.numInstances(); i++) {
    double clsLabel = mlp.classifyInstance(datapredict.instance(i));
    predicteddata.instance(i).setClassValue(clsLabel);
    }
    //Storing again in arff
    BufferedWriter writer = new BufferedWriter(
    new FileWriter(<Output File Path>));
    writer.write(predicteddata.toString());
    writer.newLine();
    writer.flush();
    writer.close();

关于java - 在 Java 代码中使用 WEKA 中的神经网络类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694971/

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