91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-02
  • 語言: Python
  • 標簽: LSTM??時間序列??

資源簡介

本代碼采用python語言寫的一個LSTM時間序列來預測銷量

資源截圖

代碼片段和文件信息

from?math?import?sqrt
from?numpy?import?concatenate
from?matplotlib?import?pyplot
from?pandas?import?read_csv
import?numpy?as?np
from?pandas?import?Dataframe
from?pandas?import?concat
from?sklearn.preprocessing?import?MinMaxScaler
from?sklearn.preprocessing?import?LabelEncoder
from?sklearn.metrics?import?mean_squared_error
from?keras.models?import?Sequential
from?keras.layers?import?LSTM?Dense?DropoutActivation
from?keras?import?optimizers
from?keras?import?regularizers

#?將序列轉換為監(jiān)督學習問題
def?series_to_supervised(data?n_in=1?n_out=1?dropnan=True):
????n_vars?=?1?if?type(data)?is?list?else?data.shape[1]
????df?=?Dataframe(data)
????cols?names?=?list()?list()
????#?input?sequence?(t-n?...?t-1)
????for?i?in?range(n_in?0?-1):
????????cols.append(df.shift(i))
????????names?+=?[(‘var%d(t-%d)‘?%?(j?+?1?i))?for?j?in?range(n_vars)]
????#?forecast?sequence?(t?t+1?...?t+n)
????for?i?in?range(0?n_out):
????????cols.append(df.shift(-i))
????????if?i?==?0:
????????????names?+=?[(‘var%d(t)‘?%?(j?+?1))?for?j?in?range(n_vars)]
????????else:
????????????names?+=?[(‘var%d(t+%d)‘?%?(j?+?1?i))?for?j?in?range(n_vars)]
????#?put?it?all?togethe
????agg?=?concat(cols?axis=1)
????agg.columns?=?names
????#?drop?rows?with?NaN?values
????if?dropnan:
????????agg.dropna(inplace=True)
????return?agg


#?加載數(shù)據(jù)集
dataset?=?read_csv(‘D:\data\YA\predict2.csv‘?header=0?index_col=0)
values?=?dataset.values
values=np.log1p(values)
#?確保所有數(shù)據(jù)是浮動的
values?=?values.astype(‘float64‘)
#?歸一化特征
scaler?=?MinMaxScaler(feature_range=(0?1))
scaled?=?scaler.fit_transform(values)
#?指定滯后時間大小
n_hours?=1
n_features?=3
#?構建監(jiān)督學習問題
reframed?=?series_to_supervised(scaled?n_hours?1)
print(reframed)

#?分為訓練集和測試集
values?=?reframed.values
n_train_hours?=?int(len(dataset)?*?0.9)
train?=?values[:n_train_hours?:]
test?=?values[n_train_hours:?:]
#?分為輸入和輸出
n_obs?=?n_hours?*?n_features
train_X?train_y?=?train[:?:n_obs]?train[:?-n_features]
test_X?test_y?=?test[:?:n_obs]?test[:?-n_features]
print(train_X.shape?len(train_X)?train_y.shape)
#?重塑為3D形狀?[samples?timesteps?features]
train_X?=?train_X.reshape((train_X.shape[0]?n_hours?n_features))
test_X?=?test_X.reshape((test_X.shape[0]?n_hours?n_features))
print(train_X.shape?train_y.shape?test_X.shape?test_y.shape)

#?設計網絡
model?=?Sequential()
model.add(LSTM(128input_shape=(train_X.shape[1]?train_X.shape[2])return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(256?return_sequences=False?))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation(‘sigmoid‘))
adam?=?optimizers.Adam(lr=0.003?beta_1=0.9?beta_2=0.999?epsilon=1e-08)
model.compile(loss=‘mae‘?optimizer=adam)
#?fit?network
history?=?model.fit(train_X?train_y?epochs=200?batch_size=8?validation_data=(test_X?test_y)?shuffle=False)
#?plot?history
pyplot.plot(history.history[‘loss‘]?label=‘train‘)
pyplot.plot(history.history[‘val_loss‘]?label=‘test‘)
pyplot.legend()

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4082??2018-12-21?19:46??LSTM時間序列預測\LSTM2.py
?????文件????????4101??2018-12-21?20:03??LSTM時間序列預測\LSTM時間序列.py
?????文件????????5452??2018-12-21?19:48??LSTM時間序列預測\zxq.csv
?????目錄???????????0??2018-12-26?19:20??LSTM時間序列預測\

評論

共有 條評論