WEKAGUIを使用して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);
。この例外の理由が見つかりませんでした。誰かが私を正しい方向に向けてくれたら幸いです。