【发布时间】:2018-12-28 22:50:22
【问题描述】:
我正在尝试在 keras 包中使用 LSTM。我将我所有的训练和测试数据标准化为 0 到 1 之间的比例。我将数组重塑为 3D 数组。但是当我运行查看结果时,我得到一个 1 的数组,而不是 1 和 0 之间的缩放值。
这是我的代码:
Input = pd.read_csv('Input.csv')
for i in range(0, len(Input['Gold Price'])):
Input['Gold Price'][i] = float(Input['Gold Price'][i].replace(',',''))
Input['DJIA'][i] = float(Input['DJIA'][i].replace(',',''))
x_train = Input[['DJIA', 'Silver Price', 'Copper Price', 'US Dollar Index',
'VIX']]
y_train = Input[['Gold Price']]
scaler = MinMaxScaler(feature_range=(0, 0.95))
scaler_x = scaler.fit(x_train)
scaler_y = scaler.fit(y_train)
x_scaled = scaler_x.transform(x_train)
y_scaled = scaler_y.transform(y_train)
x_scaled = np.reshape(x_scaled, (x_scaled.shape[0], 1, x_scaled.shape[1]))
model = Sequential()
model.add(LSTM(5, activation='relu', input_dim=5))
model.add(Dense(units=1, activation='softmax'))
model.compile(loss='mae',
optimizer='adam',
metrics=['accuracy'])
model.fit(x_scaled, y_scaled, epochs=5, batch_size=32)
Test = pd.read_csv('Test Prices Daily.csv')
for i in range(0, len(Test['DJIA'])):
Test['DJIA'][i] = float(Test['DJIA'][i].replace(',',''))
x_test = Test[['DJIA', 'Silver Price', 'Copper Price', 'US Dollar Index',
'VIX']]
scaler_x = scaler.fit(x_test)
x_scaled_test = scaler_x.transform(x_test)
x_scaled_test = np.reshape(x_scaled_test, (x_scaled_test.shape[0], 1,
x_scaled_test.shape[1]))
prediction = model.predict(x_scaled_test, batch_size=128)
【问题讨论】:
-
也许只是删除这条值得一试的行
scaler_x = scaler.fit(x_test)