0

我試圖找到NN迴歸模型採用GridSearchCV與下面的代碼的最佳參數:如何使用GridSearchCV獲取每組參數的預測值?

param_grid = dict(optimizer=optimizer, epochs=epochs, batch_size=batches, init=init 
grid = GridSearchCV(estimator=model, param_grid=param_grid, scoring='neg_mean_squared_error') 
grid_result = grid.fit(input_train, target_train) 

pred = grid.predict(input_test) 

據我瞭解,grid.predict(input_test)使用最佳參數來預測給定的輸入設置。有什麼方法可以使用測試集來評估每組參數的GridSearchCV嗎?

實際上,我的測試集包含一些特殊記錄,我想測試模型的一般性和準確性。謝謝。

回答

0

您可以使用自定義迭代器替換GridSearchCV的標準3倍cv參數,該自定義迭代器可生成級聯列車和測試數據幀的列車和測試索引。在結果,在1倍交叉驗證you'l培養上input_train對象模型並測試擬合模型上input_test對象:

def modified_cv(input_train_len, input_test_len): 
    yield (np.array(range(input_train_len)), 
      np.array(range(input_train_len, input_train_len + input_test_len))) 

input_train_len = len(input_train) 
input_test_len = len(input_test) 
data = np.concatenate((input_train, input_test), axis=0) 
target = np.concatenate((target_train, target_test), axis=0) 
grid = GridSearchCV(estimator=model, 
        param_grid=param_grid, 
        cv=modified_cv(input_train_len, input_test_len), 
        scoring='neg_mean_squared_error') 
grid_result = grid.fit(data, target) 

通過訪問grid_result.cv_results_字典,you'l參見上測試集您的指標值所有指定模型參數的網格。

+0

謝謝@ eduard-ilyasov。它工作完美。 – saleh

相關問題