gpt4 book ai didi

matlab - 创建交叉验证索引时随机重新排列数据点?

转载 作者:行者123 更新时间:2023-11-30 09:54:48 25 4
gpt4 key购买 nike

我有一个数据集,其中列对应于特征(预测变量),行对应于数据点。数据点以结构化方式提取,即它们被排序。我将使用 crossvalindcvpartition来自 Matlab 的分层交叉验证。

如果我使用上述函数,我还需要先随机重新排列数据点(行)吗?

最佳答案

这些函数在内部对数据进行排序,正如您在文档中看到的

Indices = crossvalind('Kfold', N, K) returns randomly generated indices for a K-fold cross-validation of N observations. Indices contains equal (or approximately equal) proportions of the integers 1 through K that define a partition of the N observations into K disjoint subsets. Repeated calls return different randomly generated partitions. K defaults to 5 when omitted. In K-fold cross-validation, K-1 folds are used for training and the last fold is used for evaluation. This process is repeated K times, leaving one different fold for evaluation each time.

但是,如果您的数据是在这种意义上结构化的,则该对象 i 有一些有关对象 i+1 的信息,那么您应该考虑不同类型的拆分。例如,如果您的数据实际上是(本地)时间序列,则典型的随机 cv 不是有效的估计技术。为什么?因为如果您的数据实际上包含至少一个元素的值(value)知识的簇 - 让您有很高的概率估计剩余元素,那么应用 CV 后您最终将获得的实际上是对执行此操作的能力的估计 - 预测 在这些集群内。因此,如果在现实生活中使用模型时您希望获得全新的集群,那么您选择的模型可以是完全随机的。换句话说 - 如果您的数据具有某种内部簇结构(或时间序列),您的分割应该通过簇分割来覆盖此功能(因此,您可以使用 K 个随机簇分割,而不是 K 个随机点分割,依此类推)。

关于matlab - 创建交叉验证索引时随机重新排列数据点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com