networking - 什么时候在 Weka 中使用测试和训练集?

标签 networking testing weka bayesian

我使用 Weka 已经有一段时间了,在我对它的研究中,我发现很多代码示例都使用了测试和训练集。例如,对于离散化和贝叶斯网络,它们的示例几乎总是使用测试和训练集来显示。我可能在这里缺少对数据处理的一些基本理解,但我不明白为什么情况似乎总是如此。我在一个项目中使用离散化和贝叶斯网络,对于它们两者,我没有使用测试或训练集,也不明白为什么我需要两者之一。我在 BayesNet 上执行交叉验证,所以我正在测试它的准确性。我是否误解了测试和训练集的用途???哦,请使用最简单的术语;我对数据处理领域还不是很有经验。

最佳答案

训练集和测试集背后的想法是测试泛化误差。也就是说,如果你只使用一个数据集,你可以通过简单地学习这组数据来达到完美的准确性(这就是最近邻分类器所做的,IBk 在 Weka 中)。一般来说,这不是你想要的——机器学习算法应该学习你提供的示例数据背后的一般概念。测试是否会发生这种情况的一种方法是使用单独的数据进行训练和测试。

如果您使用交叉验证,则您使用的是单独的训练集和测试集。这只是一种将整个数据集划分为训练和测试的方法。例如,如果您进行 10 折交叉验证,您的整个数据将被分成 10 个大小相等的集合。其中九个组合起来用于训练,剩下的一个用于测试。然后重复该过程,将九个不同的集合组合起来进行训练,依此类推,直到所有十个单独的分区都已用于测试。

因此,训练/测试集和交叉验证在概念上做的是同一件事,交叉验证只是采用更严格的方法,对整个数据集进行平均。

关于networking - 什么时候在 Weka 中使用测试和训练集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430051/

相关文章:

java - 对图像进行聚类以评估多样性(Weka?)

java - IP 地址转换为十进制,反之亦然

python - 一个输出网站源代码的python套接字客户端,为什么不起作用?

android - 如何防止猴子打开状态栏?

c# - 我应该模拟框架类吗

machine-learning - 如何解读weka分类结果J48

networking - 从 Kubernetes 服务访问主机 localhost

sockets - 如果我在套接字上调用 `writev`,则完整响应是在内存中创建的,还是仅在客户端中创建的?

testing - 如何在@DataProvider 方法中检索@Test 方法参数?

machine-learning - Weka 的 SimpleKMeans 聚类器中的 "seed"是什么?