【发布时间】:2020-11-22 04:36:00
【问题描述】:
我有一系列相关的 X 变量,我想用它们来预测 Y,其中 X 在每个系列之间略有不同。
if train=='A':
pred = df[['X1','X2','X3','X4','X5','X6','X7','X8','Y']]
elif train=='B':
pred = df[['X1','X2','X3','X4','X5','X6','X7','X8','Y']]
elif train=='C':
pred = df[['X1','X2','X3b','X4','X5','X6','X7','X8','Y']]
elif train=='D':
pred = df[['X1','X2','X3b','X4','X5','X6','X7','X8','Y']]
elif train == 'E':
pred = df[['X1','X2b','X3b','X4','X5','X6','X7','X8','Y']]
然后我尝试为上面的所有向量预测y,依次为'A'、'B'、'C'、'D'、'E'传递pred:
....
X = pred.drop(axis=1, columns=['Y'])
# normalize data
X = X.astype('float32') / 255.
y = pred['Y']
# normalize data
y = y.astype('float32') / 255.
network = Sequential()
network.add(Dense(8, input_shape=(8,), activation='relu'))
network.add(Dense(6, activation='relu'))
network.add(Dense(6, activation='relu'))
network.add(Dense(4, activation='relu'))
network.add(Dense(1, activation='relu'))
network.compile('adam', loss='mse', metrics=['mae'])
network.fit(X, y, epochs=2)
y_hat = network.predict(X, verbose=1)
然而,大多数时候,预测会失败,y_hat 会生成一个 0.000 数组:
[[0.]
[0.]
[0.]
[0.]
[0.]
[0.]
[0.]
..]]
除非train == 'D',当网络预测一个有意义的数组时,像这样:
[[0.00562879]
[0.00741612]
[0.0066563 ]
[0.00720819]
[0.00596035]
[0.00612469]
[0.00808392]
....]]
关于为什么我的keras 模型预测仅适用于“D”变量,总是在第四次迭代中以及如何解决这个问题的任何想法?对我来说毫无意义
PS:
如果我只为“D”运行模型,它也不起作用。所以看起来模型在第四次迭代后“流行起来”......所以我认为它与一些初始化过程有关......
【问题讨论】:
标签: pandas tensorflow keras