【发布时间】:2019-11-17 16:17:33
【问题描述】:
我已经应用了这4种方法:
- 训练和测试集。
- K 折交叉验证。
- 留一个十字架
- 验证。重复随机测试训练拆分。
“训练和测试集”方法的准确度很高,但其余方法的准确度相同,但低于第一种方法。
【问题讨论】:
标签: python validation testing split training-data
我已经应用了这4种方法:
“训练和测试集”方法的准确度很高,但其余方法的准确度相同,但低于第一种方法。
【问题讨论】:
标签: python validation testing split training-data
Train and Test Sets 和 Cross Validation 在特定情况下使用,Cross Validation 用于比较不同的模型。准确度如果您使用更大的训练数据,总是会增加,这就是为什么有时 Leave One Out Cross 比 K-fold Cross Validation 表现更好,这取决于您的数据集大小,有时取决于您的算法另一方面,Train and Test Sets 通常在您不比较不同模型时使用,并且如果运行交叉验证的时间要求不值得,则意味着不需要进行交叉验证 在这种情况下。在大多数情况下,首选交叉验证,但是,您应该选择什么方法?这通常取决于您在训练数据时的选择,例如您处理数据和算法的方式,例如您使用 随机森林 训练数据通常不需要进行 交叉验证,但您可以当您使用 Out of Bag estimate 时,如果需要更多您通常不会在 随机森林 中进行 交叉验证,请执行此操作。
【讨论】:
训练模型包括调整模型准确性以及模型泛化。如果模型没有泛化,它可能是 Underfit 或 Overfit 模型。
在这种情况下,模型在训练数据上的表现可能会更好,但在测试或未知数据上的准确性可能会降低。
我们使用训练数据来提高模型的准确性。随着训练数据大小的增加,模型的准确性也可能会增加。
同样,我们使用不同的训练样本来泛化模型。
因此,Train-Test 拆分方法取决于可用数据的大小和用于模型设计的算法。
第一个 train-test 方法具有固定大小的训练和测试数据。因此,在每次迭代中,我们使用相同的训练数据来训练模型并使用相同的测试数据来评估模型的准确性。
第二个 k-fold 方法具有固定大小的训练和测试数据,但在每次迭代中,测试和训练数据都会发生变化。因此,无论数据大小如何,它都可能是一种更好的方法。
留一法仅在数据量较小的情况下才有用。在这里,我们使用几乎全部数据进行训练。因此模型的训练精度会更好,但可能不是通用模型。
Randomised Train-test 方法也是训练和测试模型性能的好方法。在这里,我们每次随机选择训练和测试数据。因此,如果数据量较小,它可能会比 Leave one out 方法执行得更好。
最后,每种拆分方法都有一些优点和缺点。所以这取决于你哪种分割方法对你的模型有好处。它还取决于数据大小,数据选择意味着我们在拆分时如何从样本中选择数据。
【讨论】: