首页 > 解决方案 > 神经网络; 模型结果有问题

问题描述

我正在运行 NN 来预测国家的工业生产。

我的数据如下:(由 R 生成)

structure(list( Word1 = c("0", "0", "0"), Word2 = c("15", "15",  "13"), Word3 = c("1", "1", "1"), Word4 = c("0", "0", "0"), Word5 = c("0", "0", "0"), IndustrialP = c(107.35586
, NA_real_, 113.66342
)), row.names = c(NA, 3L), class = "data.frame")

我将数据拆分如下:

y=df.IndustrialP
X=df.drop('IndustrialP', axis=1)
split = int(len(df)*0.8)
X_train, X_test, y_train, y_test = X[:split], X[split:], y[:split], y[split:]

型号代码如下:

import tensorflow as tf

model = Sequential([
    Dense(32, activation='relu', input_shape=(5,)),
    Dense(32, activation='relu'),
    Dense(1, activation='sigmoid'),
])
model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=20, epochs=50)

不幸的是,我正在接受loss: nan - accuracy: 0.0000e+00所有迭代

这里会有什么问题?

谢谢。

标签: pythontensorflow

解决方案


您的 df 中的标签缺少需要首先估算的值:

df = df.fillna(df.mean()['IndustrialP'])

此外,这是一个回归问题,需要另一个损失函数,例如 MSE 或 MAE。

model.compile(loss="mean_squared_error", optimizer="sgd")

推荐阅读