Java中使用WEKA库中的神经网络

来源:爱站网时间:2022-09-12编辑:网友分享
本篇文章主要介绍了Java中使用WEKA库中的神经网络内容,正在学习Java技术的朋友一定不要错过这篇文章,希望爱站技术频道小编整理的内容能帮助到你解决问题。

问题描述


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

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

有人知道如何在Java代码中使用此类吗?

解决方法:


以下步骤可能会为您提供帮助:

  1. 添加Weka库

下载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-fold验证

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

    Instances datapredict = new Instances(
    new BufferedReader(
    new FileReader()));
    datapredict.setClassIndex(datapredict.numAttributes() – 1);
    Instances predicteddata = new Instances(datapredict);
    //Predict Part
    for (int i = 0; i ));
    writer.write(predicteddata.toString());
    writer.newLine();
    writer.flush();
    writer.close();

想必这篇“Java中使用WEKA库中的神经网络”内容朋友们都大概了解清楚了吧!在我们爱站技术频道网站有很多精彩的技术文章,感兴趣的朋友可以收藏起来以备不时之需。 

上一篇:java'&'运算符的使用情况

下一篇:对象列表转换成JsonObject

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载