国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

粒子群算法PSO優(yōu)化LSTM超參數(shù)

這篇具有很好參考價值的文章主要介紹了粒子群算法PSO優(yōu)化LSTM超參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

  1. LSTM 航空乘客預測單步預測的兩種情況。 簡單運用LSTM 模型進行預測分析。
  2. 加入注意力機制的LSTM 對航空乘客預測采用了目前市面上比較流行的注意力機制,將兩者進行結合預測。
  3. 多層 LSTM 對航空乘客預測 簡單運用多層的LSTM 模型進行預測分析。
  4. 雙向LSTM 對航空乘客預測雙向LSTM網絡對其進行預測。
  5. MLP多層感知器 對航空乘客預測簡化版 使用MLP 對航空乘客預測
  6. CNN + LSTM 航空乘客預測采用的CNN + LSTM網絡對其進行預測。
  7. ConvLSTM 航空乘客預測采用ConvLSTM 航空乘客預測
  8. LSTM的輸入格式和輸出個數(shù)說明 中對單步和多步的輸入輸出格式進行了解釋
  9. LSTM 單變量多步預測航空乘客簡單版
  10. LSTM 單變量多步預測航空乘客復雜版
  11. LSTM 多變量單步預測空氣質量(1—》1) 用LSTM 前一個數(shù)據(jù)點的多變量預測下一個時間點的空氣質量
  12. LSTM 多變量單步預測空氣質量(3 —》1) 用LSTM 前三個數(shù)據(jù)點的多變量預測下一個時間點的空氣質量
  13. 麻雀算法SSA優(yōu)化LSTM超參數(shù)
  14. 蟻群算法ACO優(yōu)化LSTM超參數(shù)

本文主要是采用粒子群算法PSO優(yōu)化LSTM超參數(shù)

PSO

pip3 install pyswarm

LSTM

def build_model(neurons1, neurons2, dropout):
    X_train, y_train, X_test, y_test = process_data()
    # X_train, y_train = create_dataset(X_train, y_train, steps)
    # X_test, y_test = create_dataset(X_test, y_test, steps)
    nb_features = X_train.shape[2]
    input1 = X_train.shape[1]
    model1 = Sequential()
    model1.add(LSTM(
        input_shape=(input1, nb_features),
        units=neurons1,
        return_sequences=True))
    model1.add(Dropout(dropout))

    model1.add(LSTM(
        units=neurons2,
        return_sequences=False))
    model1.add(Dropout(dropout))

    model1.add(Dense(units=1))
    model1.add(Activation("linear"))
    model1.compile(loss='mse', optimizer='Adam', metrics='mae')
    return model1, X_train, y_train, X_test, y_test

優(yōu)化超參數(shù)

if __name__ == '__main__':
 if __name__ == '__main__':
    '''
    神經網絡第一層神經元個數(shù)
    神經網絡第二層神經元個數(shù)
    dropout比率
    batch_size
    '''
    UP = [150, 15, 0.5, 16]
    DOWN = [50, 5, 0.05, 8]

    # # 開始優(yōu)化
    pso_ = pso(training, lb=DOWN, ub = UP)
    pso_.run()
    print('best_params is ', pso_.gbest_x)
    print('best_precision is', 1 - pso_.gbest_y)

    # 訓練模型  使用ssa找到的最好的神經元個數(shù)
    neurons1 = int(pso_.gbest_x[0])
    neurons2 = int(pso_.gbest_x[1])
    dropout = pso_.gbest_x[2]
    batch_size = int(pso_.gbest_x[3])
    # neurons1 = 64
    # neurons2 = 64
    # dropout = 0.01
    # batch_size = 32
    model, X_train, y_train, X_test, y_test = build_model(neurons1, neurons2, dropout)
    history1 = model.fit(X_train, y_train, epochs=150, batch_size=batch_size, validation_split=0.2, verbose=1,
                         callbacks=[EarlyStopping(monitor='val_loss', patience=9, restore_best_weights=True)])
    # 測試集預測
    y_score = model.predict(X_test)
    # 反歸一化
    y_score = scaler.inverse_transform(y_score.reshape(-1, 1))
    y_test = scaler.inverse_transform(y_test.reshape(-1, 1))

    print("==========evaluation==============\n")
    from sklearn.metrics import mean_squared_error
    from sklearn.metrics import mean_absolute_error #平方絕對誤差
    import math

    MAE = mean_absolute_error(y_test, y_score)
    print('MAE: %.4f ' % MAE)
    RMSE = math.sqrt(mean_squared_error(y_test, y_score))
    print('RMSE: %.4f ' % (RMSE))
  
    # MAPE和SMAPE
    def mape(y_true, y_pred):
        return np.mean(np.abs((y_pred - y_true) / y_true)) * 100


    def smape(y_true, y_pred):
        return 2.0 * np.mean(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true))) * 100

    MAPE = mape(y_test, y_score)
    print('MAPE: %.4f ' % MAPE)

    SMAPE = smape(y_test, y_score)
    print('SMAPE: %.4f ' % SMAPE)

總結

粒子群算法優(yōu)化,也算是比較老點的算法,但其仍然具有一定的價值

備注:
需要源代碼和數(shù)據(jù)集,或者想要溝通交流,請私聊,謝謝.文章來源地址http://www.zghlxwxcb.cn/news/detail-466096.html

到了這里,關于粒子群算法PSO優(yōu)化LSTM超參數(shù)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包