Как получить желаемый результат, используя KerasRegressor и конвейер sklearn? - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу вставить модель Keras в конвейер scikit-learn, но когда я использую pipe.score, я в замешательстве.Вот код:

from keras import models
from keras import layers
from keras.wrappers.scikit_learn import KerasRegressor  
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

def build_model():
    model = models.Sequential()
    model.add(
        layers.Dense(
            64, activation='relu', input_shape=(train_data.shape[1], )))
    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
    return model


model = KerasRegressor(
    build_fn=build_model, epochs=90, batch_size=1, verbose=0)

pipe_network = Pipeline([('scl', StandardScaler()), ('clf', model)])
pipe_network.fit(train_data, train_targets)

Оценка модели:

pipe_network.score(test_data, test_targets)
>>> -12.813292971994802

Какой счет?Я хочу получить результат, например, вывод функции оценки. Как это сделать?

stdsc = StandardScaler()
train_data_std = stdsc.fit_transform(train_data)
test_data_std = stdsc.transform(test_data)

network = build_model()
network.fit(train_data_std, train_targets, epochs=90, batch_size=1, verbose=0)

network.evaluate(test_data_std, test_targets)
>>> [12.681396334779029, 2.479423579047708]

Спасибо за внимание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...