如何在Scikit-learn管道中访问回归器的权重

3

我使用了Keras回归器对数据进行回归。我使用了Scikit-learn包装器和Pipeline来首先标准化数据,然后将其拟合到Keras回归器中。就像这样:

from sklearn.grid_search import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.cross_validation import cross_val_score
from sklearn.cross_validation import KFold
from sklearn.externals import joblib
import cPickle
import pandas as pd
import os
from create_model import *

estimators = []
estimators.append(('standardize', StandardScaler()))
estimators.append(('mlp', KerasRegressor(build_fn=create_model, nb_epoch=50,         batch_size=5, verbose=0, neurons = 1)))
pipeline = Pipeline(estimators)

我使用GridSearchCV进行最佳匹配的网格搜索,并将最佳拟合结果保存在一个变量中:

batch_size = [60, 80, 100, 200]
epochs = [2, 4, 6, 8, 10, 50]
neurons = np.arange(3,10,1)
optimizer = ['sgd', 'adam', 'rmsprom']
activation = ['relu', 'tanh']
lr = [0.001, 0.01, 0.1]
param_grid = dict(mlp__neurons = neurons, mlp__batch_size = batch_size, mlp__nb_epoch = epochs, mlp__optimizer = optimizer, mlp__activation = activation, mlp__learn_rate = lr)
grid = GridSearchCV(estimator=pipeline, param_grid=param_grid, cv = kfold,scoring='mean_squared_error')
grid_result = grid.fit(X, Y)
clf = []
clf = grid_result.best_estimator_  

clf变量在管道中定义了两个进程。我的问题是如何通过get_params函数提取最佳拟合(clf)的keras回归器的权重和偏差?

clf.get_params()

我找不到关于这个的好文档。

1个回答

1

weights = KerasRegressor模型.layers[0].get_weights()[0] biases = KerasRegressor模型.layers[0].get_weights()[1]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接