使用神经网络预测新观测值的输出

时间:2020-11-02 14:41:31

标签: python tensorflow keras neural-network prediction

我已经使用Python的Keras包构建了一个神经网络。我的网络的目标是预测房屋价格。这是我的训练数据集的样子。

    Price   Beds    SqFt    Built   Garage  FullBaths   HalfBaths   LotSqFt
    485000  3       2336    2004    2       2.0          1.0        2178.0
    430000  4       2106    2005    2       2.0          1.0        2178.0
    445000  3       1410    1999    1       2.0          0.0        3049.0

...

假设我要分析一些新房子。例如,我想用

  • 4张床
  • 2500平方英尺
  • 建于2001年
  • 3个完整浴室
  • 1个半澡
  • 3452英尺的平方英尺

如何将这些值输入到我的网络中以接收预测的价格。另外,有没有办法让网络报告某种类型的置信度指示器?

作为参考,这是我的网络当前的样子。

from keras.models import Sequential
from keras.layers import Dense

N = 16

model = Sequential([
    Dense(N, activation='relu', input_shape=(7,)),
    Dense(1, activation='relu'),
])

model.compile(optimizer='sgd',
              loss='mse',
              metrics=['mean_squared_error'])

hist = model.fit(X_train, Y_train,
          batch_size=32, epochs=100,
          validation_data=(X_val, Y_val))

model.evaluate(X_test, Y_test)[1]

提前谢谢!

1 个答案:

答案 0 :(得分:1)

为此,您需要使用here中所述的model.predict()

model.predict()以一批输入x作为参数。在您的情况下,您只有1个输入,因此您可以将其编写为:

x = [[4, 2500, 2001, 0, 3, 1, 3452]] # Assumes 0 garages
print(model.predict(x)[0]) # Print the first (only) result