错误在Java代码中使用WEKA API:Class Attribute Not Set?
发布时间:2020-12-14 17:44:06 所属栏目:Java 来源:网络整理
导读:我试图在我的 java代码中使用weka API.我使用J48树分类在 MySQL数据库中分类我的数据集,但是我有这个错误: Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error,not in CLASSPATH?Trying to add database driver (JDBC): jdbc.idbDriver - Err
|
我试图在我的
java代码中使用weka API.我使用J48树分类在
MySQL数据库中分类我的数据集,但是我有这个错误:
Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error,not in CLASSPATH?
Trying to add database driver (JDBC): jdbc.idbDriver - Error,not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Error,not in CLASSPATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Error,not in CLASSPATH?
weka.core.UnassignedClassException: weka.classifiers.trees.j48.C45PruneableClassifierTree: Class attribute not set!
at weka.core.Capabilities.test(Capabilities.java:1086)
at weka.core.Capabilities.test(Capabilities.java:1018)
at weka.core.Capabilities.testWithFail(Capabilities.java:1297)
.....
这是我的代码: try{
DatabaseLoader loader = new DatabaseLoader();
loader.setSource("jdbc:mysql://localhost:3306/cuaca","root","491754");
loader.setQuery("select * from data_training");
Instances data = loader.getDataSet();
jTextArea1.append(data.toString());
String[] options = new String[1];
options[0] = "U"; // unpruned tree
J48 tree = new J48(); // new instance of tree
tree.setOptions(options); // set the option
tree.buildClassifier(data); // build classifier
//Evaluation eval=new Evaluation(data);
//eval.crossValidateModel(tree,data,10,new Random(1));
//jTextArea1.append(eval.toSummaryString("n HASILNYA n",false));
}catch(IOException ioe){ioe.printStackTrace();}
catch(Exception e){e.printStackTrace();}
数据集实际上出现在textarea中: @relation data_training
@attribute Tmean numeric
@attribute Tmax numeric
@attribute Td numeric
@attribute RH numeric
@attribute SLP numeric
@attribute STP numeric
@attribute Wind_ave numeric
@attribute Wind_max numeric
@attribute Hujan {Y,T}
@data
25.9,31.6,23.1,93.4,1008.5,998.2,2.6,12.9,Y
27.6,31.4,22.3,87,1009.6,999.3,0.8,3.1,T
27.4,32.6,21.9,86.1,1009.4,999.2,4.5,14.3,T
27.6,32.2,22.4,87.3,1009.1,998.9,2.4,8.2,T
我会知道为什么错误出现(Class Attribute Not Set !!) 解决方法
在将数据集传入分类器之前,您应该设置类索引.您的分类器必须知道哪个是您的结果变量.
这些行后 loader.setQuery("select * from data_training");
Instances data = loader.getDataSet();
添加以下内容: data.setClassIndex(data.numAttributes() - 1); 如果Hujan是你的类属性(结果变量) 见Api Docs for more Info (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
