print(" Best {} using {}".format(grid.best_score_, grid.best_params_))
means = grid.cv_results_['mean_test_score']
stds = grid.cv_results_['std_test_score']
params = grid.cv_results_['params']
for mean, stdev, param in zip(means, stds, params):
print('{} {} with {}'.format(mean, stdev, param))
Create Keras Model
如果是创建回归模型,就
from keras.wrappers.scikit_learn import KerasRegressor
, 从上面函数可以看出,只要把自己以前的模型定义为一个函数,然后在bind
函数(KerasRegressor
或者KerasClassifier
)里传进去即可Pipeline
pipeline
是sklearn中用于对整个数据训练流程进行流式处理的函数,可以把对数据进行预处理,特征选择等等都写作为每一步写进去即可.GridSearch CV
网格搜索听起来很高大上,也就是自动调参,也是暴力搜索.注意的是,在小数据集上很有用,数据集大了就不太适用了.
训练结束之后,可以通过
grid.best_score_
和grid.best_params_
的方式得到其最优精度及参数.完整代码见这里暴力搜索起到了一些作用,更好的方式,可以找若干篇论文中的参数(一般来讲,不会差别太大),然后挑几个作为调参的参数.毕竟这些都是别人调过的,然后看下在这几种不同的参数上,模型表现出的效果.