分裂测试和交叉验证之间的分数差异很大(10%)

2024-09-30 10:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个分类问题: 2500行。 25000列 88个不同的班级分布不均

然后发生了一件非常奇怪的事情:

当我运行一打不同的分离测试列车时,我的分数总是在60%左右

当我运行交叉验证时,我总是得到50%左右的分数。 屏幕如下:enter image description here 此外,它与阶级的不平等分布无关,因为当我在TTS上放置stratifiy=y时,我保持在60%左右,当我放置stratifiedfold时,我保持在50%左右

要记住哪个分数?为什么不同?对我来说,简历只是一系列的测试列车的拆分,彼此之间有不同的拆分,所以没有什么可以证明这样的分数差异是合理的


Tags: 证明屏幕分类差异事情交叉分数tts
2条回答

简短回答:将shuffle=True添加到您的KFold: 交叉分数(森林、X、y、cv=KFold(随机数=True))

详细回答:连续的TrainTestSplit与经典KFold交叉验证之间的区别在于,在列车和测试集之间的拆分之前,TTS中存在混合。 分数的差异可能是由于数据集的排序方式有偏差。 因此,只需将shuffle=True添加到您的KFold(或分层折叠,这就是您所需要做的)

第一个代码示例返回5个值,然后学习4/5的数据,并在1/5有效。 第二个样本在5/6学习,在1/6有效,结果更好

也许你可以试着做for k in range(5),看看你在分数上是否还有很大的差异

相关问题 更多 >

    热门问题