Есть несколько способов это сделать.
Первый
Вы можете использовать командную строку для сохранения и загрузки вашей модели, переключатели командной строки -l и -d позволяют вам сделать это.
Из Weka Docs
-l
Sets model input file. In case the filename ends with '.xml',
a PMML file is loaded or, if that fails, options are loaded
from the XML file.
-d
Sets model output file. In case the filename ends with '.xml',
only the options are saved to the XML file, not the model.
Второй
Кроме того, после создания модели используйте второй щелчок, чтобы сохранить и загрузить модель. См
Третий
Также вы можете генерировать Java-код для вашего классификатора. Таким образом, вы сохраняете свой классификатор и снова используете его. Выполните следующие действия.
- Нажмите кнопку Дополнительные параметры.
- Из открытого , выберите выходной исходный код.
- Дайте Имени классификатора более значимое имя.
Эти шаги выведут классы Java для вашего классификатора j48. Ниже класс WekaJ48ForIris создан weka для использования с набором данных Iris. Возможно, вам придется изменить его, чтобы сделать его более полезным.
class WekaJ48ForIris {
public static double classify(Object[] i)
throws Exception {
double p = Double.NaN;
p = WekaJ48ForIris.N26a305890(i);
return p;
}
static double N26a305890(Object []i) {
double p = Double.NaN;
if (i[3] == null) {
p = 0;
} else if (((Double) i[3]).doubleValue() <= 0.6) {
p = 0;
} else if (((Double) i[3]).doubleValue() > 0.6) {
p = WekaJ48ForIris.N18c079301(i);
}
return p;
}
static double N18c079301(Object []i) {
double p = Double.NaN;
if (i[3] == null) {
p = 1;
} else if (((Double) i[3]).doubleValue() <= 1.7) {
p = WekaJ48ForIris.N4544b022(i);
} else if (((Double) i[3]).doubleValue() > 1.7) {
p = 2;
}
return p;
}
static double N4544b022(Object []i) {
double p = Double.NaN;
if (i[2] == null) {
p = 1;
} else if (((Double) i[2]).doubleValue() <= 4.9) {
p = 1;
} else if (((Double) i[2]).doubleValue() > 4.9) {
p = WekaJ48ForIris.N3a0872863(i);
}
return p;
}
static double N3a0872863(Object []i) {
double p = Double.NaN;
if (i[3] == null) {
p = 2;
} else if (((Double) i[3]).doubleValue() <= 1.5) {
p = 2;
} else if (((Double) i[3]).doubleValue() > 1.5) {
p = 1;
}
return p;
}
}