比方说,我已经建立了一个模型(例如J4.8树)并用交叉验证对其进行了评估。我如何使用此模型来分类新数据集?我知道,我可以使用“提供的测试集”选项对数据进行设置,在“更多选项”窗口中标记“输出预测”并再次运行分类。它会产生我所需要的几乎,但它似乎是一个非常奇怪的工作流程。此外,它会重新创建所有模型,这会花费不必要的时间。有没有更直接的方法来使用已建模型进行分类?如何在Weka的资源管理器中应用分类器?
5
A
回答
2
misc包中有特殊的SerializedClassifier类,它以模型文件为参数,具有模拟训练阶段。
6
这里有几种方法。
第一个
你可以使用命令行来保存和加载模型,-l和-d命令行开关可以让你做到这一点。
从秧鸡文档
-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代码的分类。这样你可以保存你的分类器并重新使用它。按照这个步骤。
- 单击更多选项按钮。
- 从打开
开始,选择输出源代码。
- 给分类器名称更有意义的名称。
这些步骤将为您的j48分类器输出java类。 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;
}
}
相关问题
- 1. 计算Weka资源管理器中的方差,四分位数
- 2. Weka资源管理器中的异常处理
- 3. 资源管理器
- 4. 在Windows资源管理器
- 5. 在Windows资源管理器
- 6. 资源管理器如何获取HAWQ中的资源?
- 7. TFS项目在源代码管理资源管理器中可见,但不在团队资源管理器中?
- 8. 如何在Eclipse包资源管理器中查看类文件?
- 9. Android中的文件资源管理器像Windows资源管理器
- 10. 资源管理器在我的应用程序中使用
- 11. 我如何“在资源管理器中打开资源管理器中的文件夹”PHP
- 12. 如何关闭Windows资源管理器?
- 13. 如何从资源管理器PSSession VM?
- 14. 如何刷新Windows资源管理器
- 15. 如何实例化资源管理器
- 16. 开发类似于Windows资源管理器的应用程序
- 17. 在资源管理器中打开
- 18. Coherence资源管理器
- 19. PyDev包资源管理器
- 20. Azure资源管理器
- 21. 资源管理器集成
- 22. Eclipse CVS资源管理器
- 23. 如何获取在资源管理器或项目资源管理器中选择的项目列表?
- 24. 资源管理器中的CSS中断
- 25. 包/导航器资源管理器中的Eclipse类导航
- 26. 如何从SL应用程序打开Windows资源管理器?
- 27. 应用WPF中的实时资源管理器中的更改
- 28. 如何在Azure资源管理器API中使用Azure Python SDK
- 29. 如何在Nuget包资源管理器中引用lib文件
- 30. 使用Azure的资源管理器
所以,我明白没有特别的按钮“分类”,这个选项似乎是最合适的。我接受这个答案。 – ffriend 2011-03-17 17:38:08