Java中使用WEKA库中的神经网络
来源:爱站网时间:2022-09-12编辑:网友分享
本篇文章主要介绍了Java中使用WEKA库中的神经网络内容,正在学习Java技术的朋友一定不要错过这篇文章,希望爱站技术频道小编整理的内容能帮助到你解决问题。
问题描述
嗨,我想使用WEKA库中的神经网络进行简单的培训和测试。
但是,我发现它并不是微不足道的,与库中的NaiveBayes类不同。
有人知道如何在Java代码中使用此类吗?
解决方法:
以下步骤可能会为您提供帮助:
- 添加Weka库
下载Weka。
从包中找到“ Weka.jar”并添加项目。
Java代码段
-
构建神经分类器
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.
- 神经分类器训练验证
用于评估训练数据,
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));
-
评估/预测未标记的数据
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'&'运算符的使用情况