我使用 WEKA gui 训练并创建了一个 J48 模型。我将模型文件保存到我的计算机上,现在我想用它来分类我的 Java 代码中的单个实例。我想得到属性“集群”的预测。我要做的是:
public void classify(double lat, double lon, double co)
{
// Create attributes to be used with classifiers
Attribute latitude = new Attribute("latitude");
Attribute longitude = new Attribute("longitude");
Attribute carbonmonoxide = new Attribute("co");
// Create instances for each pollutant with attribute values latitude, longitude and pollutant itself
inst_co = new DenseInstance(4);
// Set instance's values for the attributes "latitude", "longitude", and "pollutant concentration"
inst_co.setValue(latitude, lat);
inst_co.setValue(longitude, lon);
inst_co.setValue(carbonmonoxide, co);
inst_co.setMissing(cluster);
Classifier cls_co = (Classifier) weka.core.SerializationHelper.read("/CO_J48Model.model");//load classifier from file
// Test the model
double result = cls_co.classifyInstance(inst_co);
}
但是,我在行上得到一个 IndexArrayOutofBoundsException inst_co.setValue(latitude, lat);
。我找不到此异常的原因。如果有人能指出我正确的方向,我将不胜感激。