有人能解释为什么增加交叉验证中的折叠数会增加每个折叠中分数的变化(或标准差)吗?
我已经记录了下面的数据。我正在研究泰坦尼克号的数据集,大约有800个实例。我使用的是StratifiedKFold和准确性评分标准。
我认为增加更多的数据会减少方差-如果我的理解是正确的,增加更多的折叠会增加提供给每一次匹配的数据量?但是,似乎越多的折叠和越少的数据在较低的标准偏差(但平均精度对每个CV保持在相同的)。
{5: {'Mean': 0.8136965664427847, 'Std': 0.015594305964595902},
15: {'Mean': 0.8239359698681732, 'Std': 0.0394725492730379},
25: {'Mean': 0.823968253968254, 'Std': 0.07380525674642965},
35: {'Mean': 0.8284835164835165, 'Std': 0.08302266965043076},
45: {'Mean': 0.8207602339181288, 'Std': 0.09361950295425485},
55: {'Mean': 0.8243315508021392, 'Std': 0.08561359961087428},
65: {'Mean': 0.8273034657650041, 'Std': 0.10483277787806128},
75: {'Mean': 0.8274747474747474, 'Std': 0.11745811393744522},
85: {'Mean': 0.8240641711229945, 'Std': 0.12444299530668741},
95: {'Mean': 0.8305263157894738, 'Std': 0.12484655607120225},
105: {'Mean': 0.8243386243386243, 'Std': 0.1399822172135676},
115: {'Mean': 0.8240683229813665, 'Std': 0.12916193497823075},
125: {'Mean': 0.8249999999999998, 'Std': 0.13334396216138908},
135: {'Mean': 0.8306878306878307, 'Std': 0.15391278842405914},
145: {'Mean': 0.8272577996715927, 'Std': 0.1552827992878498},
155: {'Mean': 0.8240860215053764, 'Std': 0.16756897617377703},
165: {'Mean': 0.8270707070707071, 'Std': 0.16212344628562209},
175: {'Mean': 0.824, 'Std': 0.16293498557341674},
185: {'Mean': 0.8278378378378377, 'Std': 0.1664272446370702},
195: {'Mean': 0.8284615384615385, 'Std': 0.17533175091718106},
205: {'Mean': 0.8265853658536585, 'Std': 0.185808841661263},
215: {'Mean': 0.8265116279069767, 'Std': 0.188431515175417},
225: {'Mean': 0.8288888888888889, 'Std': 0.17685175489623095},
235: {'Mean': 0.8294326241134752, 'Std': 0.19467536066874633},
245: {'Mean': 0.8231292517006802, 'Std': 0.2009280149561644},
255: {'Mean': 0.823202614379085, 'Std': 0.20790684270535614},
265: {'Mean': 0.8254716981132075, 'Std': 0.2109826210610222},
275: {'Mean': 0.8254545454545454, 'Std': 0.2144726806895627},
285: {'Mean': 0.8242690058479532, 'Std': 0.2182928219064767},
295: {'Mean': 0.823728813559322, 'Std': 0.22096355056065273}}
发布于 2020-02-23 19:14:58
这已经讨论了很长时间了。对于更多的理论观点,您可以找到一个很好的总结这里。
从实际的角度来看,我会如下所述。随着k的增加,发生了两件事:
从第一点开始,您可以得出结论,您的k模型变得更加相似,因为您的培训数据变得更加相似,因为您为k-th折叠中的验证集分离了更少的数据。这可能会导致模型间的差异更小。
此外,由于您正在对更多的数据进行培训,因此相对模型的复杂性(即与数据相比)会降低。在偏差-方差-权衡图中(取自[1])

这意味着我们正在向左移动,即我们用较少的模型方差来换取更多的模型偏差(请注意,这里的模型方差比计算出的折叠之间的方差或标准差更具有一般性和概念性)。这是因为随着k的增加,我们正在将一个具有恒定复杂性的模型拟合到更多的数据上,也就是说,学习训练数据变得更加困难。
然而,我们不仅仅是随着k的增加而增加我们的训练集的规模。我们还在减少验证集的大小(请参阅上面的第二点)。因此,对于我们的验证集,可能存在较高的倍数差异。如果整个数据集具有更高的方差或更多的异常值,则这可能更有意义。
[1]“统计学习的要素”,Hastie等人著
发布于 2020-02-23 18:43:31
当交叉验证中的测试集变得更小时,变化就会变得更大。
到极限情况时,当您忽略一个交叉验证(LOOCV)时,测试集中将有一个实例。有些实例将具有良好的性能,而其他实例则会非常糟糕。变化会很大。
https://datascience.stackexchange.com/questions/68564
复制相似问题