deephub|保证评估模型的稳定性,5种常用的交叉验证技术( 二 )


n次交叉验证/k次交叉验证
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
总有需要大量的数据来训练模型,将测试数据集的一部分可以离开不理解的模型数据的模式可能会导致错误,也可能导致增加欠拟合模型的测试数据 。 为了克服这个问题 , 有一种交叉验证技术 , 它为模型的训练提供了充足的数据 , 也为验证留下了充足的数据 。 K折叠交叉验证正是这样做的 。
n次交叉验证涉及的步骤:
1.基于N-fold分割你的整个数据集 。
1.对于数据集中的每n次折叠 , 在数据集的N-1次折叠上构建模型 。 然后 , 对模型进行检验 , 检验n次折叠的有效性
1.在预测中记录每次迭代的错误 。 重复这个步骤 , 直到每一个n-fold都作为测试集
1.你的N个记录错误的平均值被称为交叉验证错误 , 它将作为模型的性能度量 。
例如:
假设数据有100个数据点 。 基于这100个数据点 , 你想预测下一个数据点 。 然后可以使用100条记录进行交叉验证 。 假设折叠次数(N)=10 。
1.100个数据点被分成10个桶 , 每个桶有10条记录 。
1.在这里 , 根据数据和N值创建了10个折叠 。 现在 , 在10次折叠中 , 9次折叠会被用作你的训练数据并在10次折叠
1.测试你的模型 。 迭代这个过程 , 直到每次折叠都成为您的测试 。 计算你在所有折叠上选择的度规的平均值 。 这个度量将有助于更好的一般化模型 , 并增加模型的稳定性 。
交叉验证(LOOCV)
在这种方法中 , 我们将现有数据集中的一个数据点放在一边 , 并在其余数据上训练模型 。 这个过程迭代 , 直到每个数据点被用作测试集 。 这也有它的优点和缺点 。 让我们来看看它们:
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
我们利用所有的数据点 , 因此偏差会很低
我们根据数据集中可用的数据点的数量重复n次交叉验证过程 , 这会导致更高的执行时间和更高的计算量 。
由于我们只对一个数据点进行测试 , 如果该测试数据点是一个离群点 , 可能会导致较高的误差% , 因此我们不能基于这种技术对模型进行推广 。
分层n倍交叉验证
在某些情况下 , 数据可能有很大的不平衡 。 对于这类数据 , 我们使用了不同的交叉验证技术 , 即分层n次交叉验证 , 即每一次交叉验证都是平衡的 , 并且包含每个类的样本数量大致相同 。 分层是一种重新安排数据的技术 , 以确保每一褶都能很好地代表数据中出现的所有类 。
例如 , 在关于个人收入预测的dataset中 , 可能有大量的人低于或高于50K 。 最好的安排总是使数据在每个折叠中包含每个类的几乎一半实例 。
CrossValidationfortimeseries
将时间序列数据随机分割为折叠数是行不通的 , 因为这种类型的数据是依赖于时间的 。 对这类数据的交叉验证应该跨时间进行 。 对于一个时间序列预测问题 , 我们采用以下方法进行交叉验证 。
时间序列交叉验证的折叠以向前链接的方式创建 。
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
例如 , 假设我们有一个时间序列 , 显示了一家公司2014年至2019年6年间的年汽车需求 。 折叠的创建方式如下:
Train1—[2014]
Test1—[2015]
Train2–[2014,2015]
Test2—[2016]….soon
deephub|保证评估模型的稳定性,5种常用的交叉验证技术
文章图片
我们逐步地选择一个新的列车和测试集 。 我们选择一个列车集 , 它具有最小的观测量来拟合模型 。 逐步地 , 我们在每个折叠中改变我们的列车和测试集 。
总结【deephub|保证评估模型的稳定性,5种常用的交叉验证技术】在本文中 , 我们讨论了过拟合、欠拟合、模型稳定性和各种交叉验证技术 , 以避免过拟合和欠拟合 。 我们还研究了不同的交叉验证技术 , 如验证方法、LOOCV、n次交叉验证、n次分层验证等等 。


推荐阅读