Python implementiert den genetischen GA-Algorithmus zur Optimierung des BP-Regressionsmodells für neuronale Netzwerke (BP Neural Network Regression Algorithm) im Projektkampf

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 genetische Algorithmus (GA) wurde erstmals in den 1970er Jahren von John Holland in den USA vorgeschlagen. Dieser Algorithmus wurde gemäß dem Evolutionsgesetz von Organismen in der Natur entworfen und vorgeschlagen. Es handelt sich um ein Berechnungsmodell des biologischen Evolutionsprozesses, das die natürliche Selektion und den genetischen Mechanismus von Darwins biologischer Evolutionstheorie simuliert, und es ist eine Methode zur Suche nach der optimalen Lösung durch Simulation des natürlichen Evolutionsprozesses. Der Algorithmus wandelt den Lösungsprozess des Problems mithilfe von Mathematik und Computersimulationsoperationen in einen Prozess um, der dem Crossover und der Mutation von Chromosomengenen in der biologischen Evolution ähnelt. Bei der Lösung komplexerer kombinatorischer Optimierungsprobleme können im Vergleich zu einigen herkömmlichen Optimierungsalgorithmen in der Regel schneller bessere Optimierungsergebnisse erzielt werden. Genetische Algorithmen werden häufig in den Bereichen kombinatorische Optimierung, maschinelles Lernen, Signalverarbeitung, adaptive Steuerung und künstliches Leben sowie in anderen Bereichen eingesetzt.

Dieses Projekt optimiert das BP-Regressionsmodell des neuronalen Netzwerks durch den genetischen GA-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:

 

6. Konstruieren Sie einen genetischen GA-Algorithmus, um das Regressionsmodell des neuronalen BP-Netzwerks zu optimieren

Der genetische GA-Algorithmus wird hauptsächlich zur Optimierung des BP-Regressionsalgorithmus für neuronale Netze für die Zielregression verwendet.

6.1 Genetischer GA-Algorithmus zur Ermittlung des optimalen Parameterwerts   

Optimale Parameterwerte:

 

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,9984 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 genetischen GA-Algorithmus verwendet, um den optimalen Parameterwert des BP-Algorithmus für neuronale Netzwerke zu finden, um das Regressionsmodell zu erstellen, und schließlich beweist, dass das von uns vorgeschlagene Modell gut funktioniert. Dieses Modell kann zur Prognose von Alltagsprodukten verwendet werden.

# 初始化种群、初始解
Sol = np.zeros((N_pop, d))  # 初始化位置
Fitness = np.zeros((N_pop, 1))  # 初始化适用度
for i in range(N_pop):  # 迭代种群
    Sol[i] = np.random.uniform(Lower_bound, Upper_bound, (1, d))  # 生成随机数
    Fitness[i] = objfun(Sol[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')

 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/132041058
Recomendado
Clasificación