[英]Ensembling the 10-fold models
我可以將 10 倍的預測集合起來並計算最終准確度。
但是,當我按照以下代碼保存模型時,它只會保存 1 倍的模型。 有這樣的10個模型。
在機器學習的世界里,有沒有像 Ensembling/Combining/Aggregating 10-fold 模型這樣的東西?
我想從 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)
常見的誤解:k-fold 只是驗證模型,而不是它的參數。
工作流程是:
注意:術語不同。 有些人稱測試集為堅持,有些人對交叉驗證集使用相同的術語。 此外,對於一次性一次性模型,您可能需要完全跳過步驟 1 和 5。
您的問題的答案是第 4 步:一旦找到最佳模型,您就可以在整個訓練集上進行訓練。
UPD:在某些情況下,使用不同的模型可以更好地處理數據集的不同部分。 在某些情況下,您甚至可以在數據集的不同分區上使用相同的模型,例如用一組線性函數來逼近多項式。 多個模型的組合然后會給你一個合奏。 但是,如果折疊是隨機的,則沒有多大意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.