python - 如何使用 GridSearchCV 获得每组参数的预测?

标签 python machine-learning neural-network regression grid-search

我正在尝试使用 GridSearchCV 和以下代码找到 NN 回归模型的最佳参数:

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 吗?

实际上,我的测试集包含一些特殊记录,我想测试模型的通用性和准确性。谢谢。

最佳答案

您可以使用自定义迭代器替换 GridSearchCV 的标准 3 倍 cv 参数,该迭代器会生成连接的训练和测试数据帧的训练和测试索引。因此,在进行 1 倍交叉验证时,您将在 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_ 字典,您将在测试集上看到指定模型参数的所有网格的指标值。

关于python - 如何使用 GridSearchCV 获得每组参数的预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602518/

相关文章:

Python 文本处理 : NLTK and pandas

r - R 中的在线机器学习

python - 将 SQLAlchemy 与复合主键和外键一起使用

python - 使用 GPR 添加新 react

python - 在 ML 分类器中编码文本

python - 神经网络中的未知错误。是因为矩阵不可交换吗?

neural-network - 双神经网络实验(一个逻辑的,一个情感的)?

java - 即使有偏差,感知器也找不到正确的线(处理)

python - 在从 Python 中的 stdin 读取数据的同时对关键事件使用react

python - 将新列添加到 DataFrame 中,其值取决于索引引用