我使用Weka已经有一段时间了,在我对它的研究中,我发现很多代码示例都使用了测试和训练集。例如,对于离散化和贝叶斯网络,它们的示例几乎总是使用测试和训练集显示的。我可能在这里错过了对数据处理的一些基本理解,但我不明白为什么总是这样。我在一个项目中使用离散化和贝叶斯网络,对于这两个项目,我都没有使用测试或训练集,也不明白为什么我需要这样做。我正在对BayesNet执行交叉验证,所以我正在测试它的准确性。我是否误解了测试和训练集的用途?哦,请使用最简单的术语;我在数据处理领域仍然不是很有经验。
发布于 2013-01-22 16:07:44
训练数据是指用于“构建模型”的数据。例如,如果您使用算法J48 (树分类器)对实例进行分类,则训练数据将用于生成树,该树将表示应该是概念的泛化的“学习概念”。这意味着学习的规则、生成的树、调整后的神经网络或其他任何东西将能够获得新的(看不见的)实例并正确地对它们进行分类(“学习的概念”不依赖于训练数据)。
测试集是将用于测试模型是否正确地学习了概念的数据的百分比(它独立于训练数据)。
在WEKA中,您可以运行将数据集分割为训练数据(在J48的情况下构建树)和测试数据(测试模型,以确定概念是否已被学习)的执行。例如,您可以将60%的数据用于训练,40%用于测试(确定训练和测试需要多少数据是数据挖掘的关键问题之一)。
但我建议您快速查看交叉验证,这是一种在WEKA中实现的健壮的测试方法。这里已经很好地解释过了:https://stackoverflow.com/a/10539247/1565171
如果你有更多的问题,请留言。
https://stackoverflow.com/questions/14430051
复制相似问题