【发布时间】:2021-08-14 07:28:48
【问题描述】:
我仍在学习使用 tensorflow 进行深度学习,并且我在 LSTM 中移动了一点。我在 stabd LSTM 回归下做了几个模型。现在,我试图达到一个回归,但我想将标签值分类为大于或小于那时的分类。我已经尝试了几个现有的代码,但仍然没有明白这一点。
我的问题是关于以下代码:
model = Sequential()
model.add(LSTM(32,input_shape=(X_train.shape[1],X_train.shape[2]),return_sequences=True))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(LSTM(1))
model.add(Activation('relu'))
model.add(Dense(1))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
model.fit(scipy.stats.zscore(X_train),y_train>=0.05,epochs=10,validation_split=0.2)
p = model.predict(scipy.stats.zscore(X_test))
我的功能示例:
X_train[:2]
array([[[ 6.62364330e-04, 1.66358595e-02, 2.40295749e-02,
1.84842884e-03, 1.84842884e-02, -1.06277840e+00,
4.45218993e+01, 3.72895448e+07, 1.66694434e+04,
4.86154015e+09, 7.67031510e-03],
[ 6.62364330e-04, 1.47874307e-02, 1.66358595e-02,
3.69685767e-03, 9.24214418e-03, -1.06706125e+00,
4.10241215e+01, 1.89388276e+07, 1.49832496e+04,
5.22004803e+09, 3.62809450e-03],
[ 6.62364330e-04, 0.00000000e+00, 3.66300366e-03,
-9.15750916e-03, 0.00000000e+00, -1.06193867e+00,
4.10241215e+01, 1.09146703e+07, 1.14050891e+04,
4.27086081e+09, 2.55561368e-03]],
[[ 6.62364330e-04, 1.47874307e-02, 1.66358595e-02,
3.69685767e-03, 9.24214418e-03, -1.06706125e+00,
4.10241215e+01, 1.89388276e+07, 1.49832496e+04,
5.22004803e+09, 3.62809450e-03],
[ 6.62364330e-04, 0.00000000e+00, 3.66300366e-03,
-9.15750916e-03, 0.00000000e+00, -1.06193867e+00,
4.10241215e+01, 1.09146703e+07, 1.14050891e+04,
4.27086081e+09, 2.55561368e-03],
[ 6.62364330e-04, -1.97132616e-02, -1.79211470e-03,
-2.68817204e-02, -1.07526882e-02, -1.04563298e+00,
4.68368478e+01, 3.46075465e+07, 2.16567876e+04,
4.76705234e+09, 7.25973706e-03]]])
y_train[:2]
array([-0.01075269, -0.00359712])
y_train[:2] >= 0.05
array([False, False])
另外,请注意标签的真假比为:
np.unique(y_train>=0.05, return_counts=True)
(array([False, True]), array([164733, 4313]))
我的问题是:
- 如何在相同标签的敌人中获得最终结果(真假)
- 做错了什么?
【问题讨论】:
-
预期输出是否相互依赖(顺序)?如果不使用 LSTM 真的没有多大意义,而且如果你正在做这样的分类,不要忘记在最后一层使用激活函数作为“softmax”或“sigmoid”。
-
是的,输出是第二天的股票价格。问题上的数据只是一个例子。
标签: python tensorflow lstm