收藏 分享(赏)

java调用Weka中神经网络的算法(从数据库中取数据).docx

上传人:nacm35 文档编号:6084570 上传时间:2019-03-26 格式:DOCX 页数:3 大小:23.13KB
下载 相关 举报
java调用Weka中神经网络的算法(从数据库中取数据).docx_第1页
第1页 / 共3页
java调用Weka中神经网络的算法(从数据库中取数据).docx_第2页
第2页 / 共3页
java调用Weka中神经网络的算法(从数据库中取数据).docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、本文中使用的 weka 版本为 3.6 版本,参阅的 API 也是 3.6 的相关的包(weka.jar,weka-src.jar,libsvm.jar.wlsvm.jar)可以在以下链接下载:http:/ Eclipse 项目中导入 weka 包,本文中使用 BP 神经网络的算法,只用添加 weka.jar 即可,若要使用 libsvm 的算法,还需要添加 libsvm.jar 包源代码如下:java view plaincopy1. import java.io.File; 2. import java.io.IOException; 3. 4. 5. import weka.classi

2、fiers.functions.MultilayerPerceptron; 6. import weka.core.Attribute; 7. import weka.core.FastVector; 8. import weka.core.Instance; 9. import weka.core.Instances; 10. import weka.core.converters.ArffLoader; java view plaincopy1. public class Test2 2. 3. public static void main(String args) throws IOE

3、xception 4. /便于测试,用数组保存一些数据,从数据库中取数据是同理的 5. /二维数组第一列表示当月的实际数据,第二列是上个月的数据,用于辅助对当月数据的预测的 6. /二维数组的数据用于测试集数据,为了展示两种 weka 载入数据的方法,将训练集数据从 arff 文件中读取 7. double a = -0.93,-0.995,-0.93,-0.93,-0.93,-0.93,-0.95,-0.93,-0.93,-0.95, 8. -0.95,-0.93,-0.93,-0.95,-0.93,-0.93,-0.95,-0.93,-0.9,-0.95, 9. -0.92,-0.9,-0

4、.575,-0.92,-0.23,-0.575; 10. 11. /读入训练集数据 12. File inputFile = new File(“G:weka3.6Weka-3-6datatrain.arff“);/该文件见源代码最后的分享链接,可以下载后将路径替换掉 13. ArffLoader atf = new ArffLoader(); 14. try 15. atf.setFile(inputFile); 16. catch (IOException e1) 17. e1.printStackTrace(); 18. 19. Instances instancesTrain = at

5、f.getDataSet(); 20. instancesTrain.setClassIndex(0);/设置训练数据集的类属性,即对哪个数据列进行预测(属性的下标从 0 开始) 21. 22. /读入测试集数据 23. FastVector attrs = new FastVector(); 24. 25. Attribute ratio = new Attribute(“CUR“,1);/创建属性,参数为属性名称和属性号,但属性号并不影响 FastVector 中属性的顺序 26. Attribute preratio = new Attribute(“PRE“,2); 27. 28. a

6、ttrs.addElement(ratio);/向 FastVector 中添加属性,属性在 FastVector 中的顺序由添加的先后顺序确定。 29. attrs.addElement(preratio); 30. 31. Instances instancesTest = new Instances(“bp“,attrs,attrs.size();/创建实例集,即数据集,参数为名称,FastVector 类型的属性集,以及属性集的大小(即数据集的列数) 32. 33. instancesTest.setClass(ratio);/设置数据集的类属性,即对哪个数据列进行预测 34. 35.

7、 for(int k=0;k13;k+) 36. Instance ins = new Instance(attrs.size();/创建实例,即一条数据 37. ins.setDataset(instancesTest);/设置该条数据对应的数据集,和数据集的属性进行对应 38. ins.setValue(ratio, ak0);/设置数据每个属性的值 39. ins.setValue(preratio, ak1); 40. instancesTest.add(ins);/将该条数据添加到数据集中 41. 42. 43. MultilayerPerceptron m_classifier =

8、 new MultilayerPerceptron();/创建算法实例,要使用其他的算法,只用把类换做相应的即可 44. 45. try 46. m_classifier.buildClassifier(instancesTrain); /进行训练 47. catch (Exception e) 48. e.printStackTrace(); 49. 50. 51. for(int i = 0;i13;i+)/测试分类结果 52. /instancesTest.instance(i)获得的是用模型预测的结果值,instancesTest.instance(i).classValue()获得的是测试集类属性的值 53. /此处是把预测值和实际值同时输出,进行对比 54. try 55. System.out.println(m_classifier.classifyInstance(instancesTest.instance(i)+“,“+instancesTest.instance(i).classValue(); 56. catch (Exception e) 57. e.printStackTrace(); 58. 59. 60. System.out.println(“bp success!“); 61. 62. 63. Train.arff 文件下载链接:http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医学治疗 > 神经内外科

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报