我正在运行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
这是什么问题?
谢谢。
答案 0 :(得分:0)
df中的标签缺少需要首先估算的值:
df = df.fillna(df.mean()['IndustrialP'])
此外,这是一个回归问题,需要另一个损失函数,例如MSE或MAE。
model.compile(loss="mean_squared_error", optimizer="sgd")
答案 1 :(得分:0)
这是保存R中的csv文件之后的全部提示:
username / password
历次1/50 1/1 [=============================]-0s 1ms / step-损耗:11810.6562