【发布时间】:2017-10-23 06:42:13
【问题描述】:
我是机器学习的新手,我正在尝试使用 Keras 来执行回归任务。我已经根据this 示例实现了这段代码。
X = df[['full_sq','floor','build_year','num_room','sub_area_2','sub_area_3','state_2.0','state_3.0','state_4.0']]
y = df['price_doc']
X = np.asarray(X)
y = np.asarray(y)
X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=.2)
def baseline_model():
model = Sequential()
model.add(Dense(13, input_dim=9, kernel_initializer='normal',
activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
model.compile(loss='mean_squared_error', optimizer='adam')
return model
estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100, batch_size=100, verbose=False)
kfold = KFold(n_splits=10, random_state=seed)
results = cross_val_score(estimator, X_train, Y_train, cv=kfold)
print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std()))
prediction = estimator.predict(X_test)
accuracy_score(Y_test, prediction)
运行代码时出现此错误:
AttributeError: 'KerasRegressor' object has no attribute 'model'
如何在 KerasRegressor 中正确“插入”模型?
【问题讨论】:
-
你能发布完整的堆栈跟踪吗?
-
你在哪里拟合估计器?
-
@AbhishekThakur
cross_val_score适合并为估算器评分。 -
@VivekKumar 是的,但要
predict在另一个数据上,他需要再次fit模型。对于这一行prediction = estimator.predict(X_test) -
@Simone 请添加错误的完整堆栈跟踪,以便我们了解此错误发生在哪一行。在此之前,我们无法提供帮助。
标签: machine-learning scikit-learn neural-network regression keras