我目前正在尝试比较多个模型。 我制作了一个脚本,该脚本使用10倍交叉验证来评估性能,以获得最真实的性能。 我的问题是,适合什么培训和测试数据是否重要?例如我应该找到性能最好的训练和测试集并在之后重新拟合模型吗?
CV = model_selection.KFold(n_splits=K, shuffle=True)
# Split data
for train_index, test_index in CV.split(X, y):
for model in models:
# splitting up data set
X_train = X.iloc[train_index]
y_train = y.iloc[train_index]
X_test = X.iloc[test_index]
y_test = y.iloc[test_index]
model.fit(X_train, y_train)
print(model.score(X_test, y_test) * 100)
答案 0 :(得分:0)
在我看来,这个问题对Cross Validated Stack Exchange社区来说要好得多(而且有很多posts on cross validation)。
但是,由于您是在Stack Overflow上询问的... 正如用户9769953所说:的确重要。
我认为交叉验证有两个主要用途:
预期结果是您将得到不同的结果(每次折叠相同的结果应该使您对数据或模型训练过程感到怀疑)。
交叉验证的性能仅作为所有折痕结果的平均值才有意义。与“ 1倍验证”(即对正在学习的数据运行模型)相比,这对于性能而言是更现实的值,因为通常您将对模型未看到的数据运行模型。 / p>