我可以集成10倍的预测,并计算出最终的准确率。
然而,当我在下面的代码中保存模型时,它只保存了一个1折的模型。这样的模型有10种。
在机器学习的世界里,有没有像集成/组合/聚合10倍模型这样的东西?
我想从10个模型(从10折获得)中制作最终模型,以便使用新数据进行预测。
有可能吗?
ypred_all = np.ones((y.shape))
EnsembledModel = []
kfolds = KFold(n_splits=10)
for train, test in kf.split(x):
train_x = features[train]
train_y = labels[train]
test_x = features[test]
test_y = labels[test]
model = clf.fit(train_x, train_y)
dump(model, 'model.joblib')
EnsembledModel.append (model) ##???
ypred = model.predict(test_x)
ypred_all[test] = ypred
final_accuracy = accuracy_score(y, ypred_all)
final_model = ...EnsembledModel ##??
final_predict = final_model.predict(x_new)发布于 2019-12-05 00:00:39
常见的误解:K-折叠只是为了验证模型,而不是它的参数。
工作流程是:
注意:术语是不同的。有些人称测试集为抗拒测试集,有些人使用相同的术语来表示交叉验证集。此外,对于一次性使用的一次性模型,您可能希望完全跳过步骤1和5。
你的问题的答案是第4步:一旦你找到了最好的模型,你就可以在整个训练集上进行训练。
更新:在某些情况下,使用不同的模型可以更好地处理数据集的不同部分。在某些情况下,您甚至可以在数据集的不同分区上使用相同的模型,例如,使用一组线性函数来近似多项式。多个模型的组合将给你一个整体。然而,如果折叠是随机的,那就没有多大意义了。
https://stackoverflow.com/questions/59178865
复制相似问题