我正在努力解决一个似乎无法解决的怪异问题。
因此,我使用KerasClassifier
和GridSearch
为我的模型构建和搜索最佳参数。这部分工作正常。
在此之后,我尝试根据测试数据进行预测,这是奇怪的事情发生的地方。
假设我的grid_search对象为grid
,而我的测试数据为X_test
,我注意到grid.best_estimator_.predict(X_test)
的结果与grid_best_estimator_.model.predict(X_test)
的结果完全不同。
有关更多背景信息,以下是grid.best_estimator_.predict(X_test)
的结果示例:
1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3,
1, 1, 1, 1, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 0, 1, 1, 1, 3, 1, 3, 3,
1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 3, 1, 1, 3,
1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1,
1, 3, 1, 1, 3, 1, 3, 1, 1, 0, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1,
1, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1,
1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
1, 3])
这是grid_best_estimator_.model.predict(X_test)
的结果:
[[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[3.47690374e-01 4.35497969e-01 9.62351710e-02 1.20576508e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[4.48489130e-01 3.48928362e-01 1.13302141e-01 8.92804191e-02]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[2.65852152e-03 2.72439304e-03 5.55709645e-04 9.94061410e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[4.16748554e-01 3.44473362e-01 1.22328281e-01 1.16449825e-01]
[1.14751011e-01 2.33341262e-01 3.13971192e-02 6.20510638e-01]
[8.30730610e-03 1.07289189e-02 1.87594432e-03 9.79087830e-01]
为了调试此错误,我尝试在grid_best_estimator_.model(X_test)
的输出上调用np.argmax()。然后尝试(result_of_best_estimator == result_of_model).all()返回False
。
那么,我想念什么吗?还是我误解了它应该如何工作?