分类指标无法处理精度评分中连续目标和二元目标的混合

2024-04-29 16:05:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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)))

有人能帮我吗


Tags: fromtestimportdatamodeltrainbostonpredict
1条回答
网友
1楼 · 发布于 2024-04-29 16:05:32

您正在尝试对适合回归的数据集/任务执行classification。您的目标(y_训练和y_测试)是连续的值,而不是离散的类别。完整的方法需要修正

  1. 最终致密层激活应从sigmoid改变为linearrelu
  2. compile函数中,loss应该是mse
  3. 度量可以保留为空,也可以再次设置为maemse
  4. 准确度和混淆矩阵不能用于评估

你们应该了解机器学习和神经网络的一些基本主题,特别是逻辑回归和线性回归之间的区别

相关问题 更多 >