Python implementiert den HBA-Hybrid-Bat-Intelligence-Algorithmus, um den Projektkampf mit dem zyklischen neuronalen Netzwerk-Regressionsmodell (LSTM-Regressionsalgorithmus) zu optimieren

Erläuterung: Dies ist ein praktisches Projekt für maschinelles Lernen (mit Daten + Code + Dokumentation + Videoerklärung). Wenn Sie Daten + Code + Dokumentation + Videoerklärung benötigen, können Sie diese direkt am Ende des Artikels abrufen.



 


1. Projekthintergrund _

Der Fledermausalgorithmus ist ein heuristischer Suchalgorithmus, der 2010 von Professor Yang auf der Grundlage der Schwarmintelligenz vorgeschlagen wurde und eine effektive Methode zur Suche nach der globalen optimalen Lösung darstellt. Basierend auf der iterativen Optimierung wird der Algorithmus mit einer Reihe zufälliger Lösungen initialisiert, sucht dann iterativ nach der optimalen Lösung und generiert durch Zufallsflug um die optimale Lösung lokale neue Lösungen, um die lokale Suchgeschwindigkeit zu erhöhen. Der Algorithmus zeichnet sich durch eine einfache Implementierung und wenige Parameter aus.

Angesichts der Mängel des grundlegenden Bat-Algorithmus wie langsame Konvergenzgeschwindigkeit, leichtes Fallen in das lokale Optimum und geringe Lösungsgenauigkeit wird ein Hybrid-Bat-Algorithmus in Kombination mit lokaler Suche vorgeschlagen, um uneingeschränkte Optimierungsprobleme zu lösen. Der Algorithmus verwendet die chaotische Sequenz, um die Position und Geschwindigkeit des Schlägers zu initialisieren, was den Grundstein für die Vielfalt der globalen Suche legt; integriert die Powell-Suche, um die lokale Suchfähigkeit des Algorithmus zu verbessern und die Konvergenzgeschwindigkeit zu beschleunigen; verwendet die Mutation Strategie, um zu verhindern, dass der Algorithmus bis zu einem gewissen Grad in das lokale Optimum fällt. Hervorragend.

Dieses Projekt optimiert das rekurrente neuronale Netzwerk-Regressionsmodell durch den HBA-Hybrid-Bat-Intelligence-Algorithmus.

2. Datenerfassung _

Die Modellierungsdaten für diesen Zeitraum stammen aus dem Internet (zusammengestellt vom Autor dieses Projekts), und die Statistiken der Datenelemente lauten wie folgt:

Die Datendetails lauten wie folgt (Teilanzeige):

 

3. Datenvorverarbeitung

3.1 Daten  mit dem Pandas -Tool anzeigen

Verwenden Sie die head()-Methode des Pandas-Tools, um die ersten fünf Datenzeilen anzuzeigen:

Schlüsselcode:

 

3.2 Datenansicht fehlt

Verwenden Sie die info()-Methode des Pandas-Tools, um Dateninformationen anzuzeigen:

Wie aus der obigen Abbildung ersichtlich ist, gibt es insgesamt 11 Variablen, keine fehlenden Werte in den Daten und insgesamt 2000 Daten.

Schlüsselcode:

3.3 Daten deskriptive Statistik 

Verwenden Sie die Methode discover() des Pandas-Tools, um den Mittelwert, die Standardabweichung, das Minimum, das Quantil und das Maximum der Daten anzuzeigen.

Der Schlüsselcode lautet wie folgt:

 

4. Explorative Datenanalyse

4.1 Histogramm von y-Variablen 

Verwenden Sie die hist()-Methode des Matplotlib-Tools, um ein Histogramm zu zeichnen:

Wie aus der obigen Abbildung ersichtlich ist, konzentriert sich die y-Variable hauptsächlich zwischen -400 und 400.

4.2 Korrelationsanalyse

Wie aus der obigen Abbildung ersichtlich ist, ist die Korrelation umso stärker, je größer der Wert ist. Ein positiver Wert ist eine positive Korrelation und ein negativer Wert ist eine negative Korrelation.

5. Feature-Engineering

5.1 Erstellen Sie Funktionsdaten und Etikettendaten

Der Schlüsselcode lautet wie folgt:

5.2 Datensatzaufteilung

Verwenden Sie die Methode train_test_split (), um nach 80 % Trainingssatz und 20 % Testsatz zu dividieren. Der Schlüsselcode lautet wie folgt:

5.3 Vergrößerung der Datenprobengröße

Die Datenform des Datenbeispiels nach dem Hinzufügen von Dimensionen:

6. Konstruieren Sie den HBA-Hybrid-Fledermaus-Optimierungsalgorithmus, um das LSTM-Regressionsmodell zu optimieren

Verwenden Sie hauptsächlich den HBA-Hybrid-Fledermaus-Optimierungsalgorithmus, um den LSTM-Regressionsalgorithmus für die Zielregression zu optimieren.

6.1 Optimale Parameter, die mit dem HBA-Hybrid-Fledermaus-Optimierungsalgorithmus gesucht wurden   

Optimale Parameter:

6.2 Optimales Parameterwert-Konstruktionsmodell

 

6.3 Zusammenfassende Informationen zum optimalen Parametermodell

  

 6.4 Netzwerkstruktur des optimalen Parametermodells

6.5 Optimale Parametermodell-Trainingssatz-Testsatz-Verlustkurve 

 

7. Modellbewertung

7.1 Bewertungsindikatoren und Ergebnisse

Zu den Bewertungsindikatoren gehören hauptsächlich der erklärbare Varianzwert, der mittlere absolute Fehler, der mittlere quadratische Fehler, der R-Quadrat-Wert usw.

 Aus der obigen Tabelle ist ersichtlich, dass das R-Quadrat 0,9876 beträgt, was bedeutet, dass das Modell gut funktioniert.

Der Schlüsselcode lautet wie folgt:

7.2 Vergleichstabelle von tatsächlichem Wert und vorhergesagtem Wert

 

Aus der obigen Abbildung ist ersichtlich, dass die Schwankungen des tatsächlichen Werts und des vorhergesagten Werts grundsätzlich gleich sind und der Modellanpassungseffekt gut ist.

8. Fazit und Ausblick

Zusammenfassend lässt sich sagen, dass dieser Artikel den intelligenten HBA-Hybrid-Bat-Optimierungsalgorithmus verwendet, um den optimalen Parameterwert des LSTM-Algorithmus für wiederkehrende neuronale Netze zu finden, um ein Regressionsmodell zu erstellen, und schließlich beweist, dass das von uns vorgeschlagene Modell gut funktioniert. Dieses Modell kann zur Prognose von Alltagsprodukten verwendet werden.

# 开始迭代
t = 0
for t in range(N_gen):
    print('***********************当前迭代次数为:', t + 1, '******************************')

    # 对所有蝙蝠/位置进行循环
    for i in range(N_pop):
        Q[i] = np.random.uniform(Qmin, Qmax)  # 生成随机数
        v[i] = v[i] + (Sol[i] - best) * Q[i]  # 速度
        S[i] = Sol[i] + v[i]  # 位置


# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ
 
# 提取码:thgk
 
# *****************************************************************************


# y变量分布直方图
fig = plt.figure(figsize=(8, 5))  # 设置画布大小
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
data_tmp = df['y']  # 过滤出y变量的样本
# 绘制直方图  bins:控制直方图中的区间个数 auto为自动填充个数  color:指定柱子的填充色
plt.hist(data_tmp, bins='auto', color='g')
plt.xlabel('y')

 Weitere Projektpraxis finden Sie in der Liste der Praxissammlungen für maschinelles Lernen:

Liste der tatsächlichen Kampfsammlungen maschineller Lernprojekte


Supongo que te gusta

Origin blog.csdn.net/weixin_42163563/article/details/131760138
Recomendado
Clasificación