我正在从boston_Housing学习神经网络,但收到一个我不知道这意味着什么的错误。
from keras.datasets import boston_housing
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
(x_train, y_train), (x_test, y_test) = boston_housing.load_data()
neural_model = Sequential([
Dense(2, input_shape=(13,), activation="relu"),
Dense(1, activation="sigmoid")
])
neural_model.summary()
neural_model.compile(SGD(lr = .003), "binary_crossentropy", \
metrics=["accuracy"])
np.random.seed(0)
run_hist_1 = neural_model.fit(x_train, y_train, epochs=40,\
validation_data=(x_test, y_test), \
verbose=True, shuffle=False)
print("Training neural network...\n")
print('Accuracy over training data is ', \
accuracy_score(y_train, neural_model.predict_classes(x_train))
print('Accuracy over testing data is ', \
accuracy_score(y_test, neural_model.predict_classes(x_test)))
conf_matrix = confusion_matrix(y_test, neural_model.predict_classes(x_test))
print(conf_matrix)
我收到此错误:
Classification metrics can't handle a mix of continuous and binary targets at
this point print('Accuracy over testing data is ', \
---> 29 accuracy_score(y_test, neural_model.predict_classes(x_test)))
有人可以帮我吗?
您正在尝试对适合回归的数据集/任务进行classification
。您的目标(y_train和y_test)是连续值,而不是离散类别。完整的方法需要更正。
sigmoid
更改为linear
或relu
compile
功能中,loss
应为mse
mae
或mse
。您应该查看机器学习和神经网络的一些基本主题,特别是逻辑回归和线性回归之间的区别。