使用K折叠交叉验证,我通常会发现使用了5折和10折。 1995年paper推荐10倍简历。但是,该结论是基于使用当时模型的小型数据集。
我只是想知道,目前使用5折和10折的做法是否仍然符合惯例?还是有其他充分的理由使用5或10折而不是说6、8、12等?
答案 0 :(得分:0)
这只是传统。这些只是人们喜欢的好数字,可以平均分配许多东西。算出的数字不错,例如每次10%和20%。如果使用8,则每个占12.5%。这个数字不好吗?
对于您的数据集来说,另一个数字可能会更好,但是找出这一点是不值得的麻烦。如果您尝试使用7倍交叉验证进行发布,那么人们会给您带来有趣的外观并变得可疑。遵守标准。
答案 1 :(得分:0)
K折交叉验证会很有用。
使用5或10既不是规范,也没有规则。您可以使用尽可能多的Folds(K = 2、3、4来进行智能猜测)。
K折叠交叉验证用于解决培训数据有限的问题。
我在书中遇到了一个示例(下面共享Francois Chollet的书示例),其中K = 4,所以这取决于您的要求。
enter code here
`k = 4
num_validation_samples = len(data) // k
np.random.shuffle(data)
validation_scores = []
for fold in range(k):
validation_data = data[num_validation_samples * fold:
num_validation_samples * (fold + 1)]
training_data = data[:num_validation_samples * fold] +
data[num_validation_samples * (fold + 1):
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
validation_scores.append(validation_score)
validation_score = np.average(validation_scores)
model = get_model()
model.train(data)
test_score = model.evaluate(test_data)`