将我的数据拆分为 60/40 比 80/20 更好

Splitting my data into 60/40 is better than 80/20

提问人:Nawal Daftardar 提问时间:11/14/2023 更新时间:11/14/2023 访问量:35

问:

我正在使用 WEKA 使用分类(SMO 算法)来训练我的数据。 这是我的数据集:在线购物者意向数据集

问题是,当我使用拆分验证并将数据拆分为 60/40 时,准确率为 87.7129%,而当我将其拆分为 80/20 时,准确率为 87.1452%。 [这是60/40分割的截图](https://i.stack.imgur.com/JI4H5.png) [这是80/20拆分的截图](https://i.stack.imgur.com/kv1Mb.png)

我很困惑,因为据我所知,我知道 80% 的拆分应该比 60% 的拆分更好。 我能做些什么来解决这个问题?

机器学习 拆分 人工智能 分类 WEKA

评论

0赞 Chih-Hao Liu 11/14/2023
造成这种情况的原因可能有很多,通常源于数据分发问题。我建议你使用交叉验证来循环访问多个训练/测试拆分,并对结果求平均值,以提供更可靠的性能估计。
1赞 Dr. Snoopy 11/14/2023
这不是编程问题...

答:

1赞 Vishesh Thakur 11/14/2023 #1

一个常见的误解是,更大的训练集总是会带来更好的模型性能。虽然拥有更多数据通常可以帮助模型学习,但 80/20 的拆分并不总是优于 60/40 的拆分。

模型在测试集上的性能由多种因素决定,包括模型的复杂性、测试集的代表性以及数据中的固有噪声。如果你的 60/40 拆分恰好导致测试集更能代表整体数据分布,或者它只是包含噪声较小的示例,那么它很可能会带来更高的准确性。

对模型性能进行更可靠的估计的一种方法是使用交叉验证。这涉及将数据拆分为“k”个子集,并训练/测试模型“k”次,每次使用不同的子集作为测试集,其余数据作为训练集。然后,所有“k”个试验的平均性能将用作模型真实性能的估计值。