擅长:python、mysql、java
<p>事实证明,问题源于多种来源的组合:</p>
<p>虽然train_test_split()方法中的shuffle=True首先正确地洗牌提供的数据,然后将其分割为所需的部分,但Kfold方法中的shuffle=True只会导致随机构建的折叠,但是<strong>折叠中的数据保持有序</p>
<p>由于这篇文章,文档指出了这一点:
<a href="https://github.com/scikit-learn/scikit-learn/issues/16068" rel="nofollow noreferrer">https://github.com/scikit-learn/scikit-learn/issues/16068</a></p>
<p>现在,在学习过程中,我的自定义train函数再次对train数据应用shuffle,这只是为了确保,但它不会对测试数据进行shuffle。此外,如果没有给出参数,model.evaluate()默认为batch_size=32,这与有序测试数据相匹配,导致验证精度不一致。测试数据确实存在缺陷,因为它包含大量“难以预测”的条目,这些条目由于排序而聚集在一起,似乎它们降低了结果的平均准确性。正如TC Arlen所指出的那样,如果对所有N个褶皱进行完整的扫描,最终可能会给出更精确的估计,但我预计仅进行一次扫描后会得到更接近的结果,这导致了这个问题的发现</p>