Python implementiert ein auf PyTorch basierendes Projekt zum Convolutional Neural Network Regression Model (CNN-Regressionsalgorithmus).

Erläuterung: Dies ist ein praktisches Projekt zum maschinellen 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 _

Das als Faltungsnetzwerk bezeichnete Faltungs-Neuronale Netzwerk unterscheidet sich vom gewöhnlichen Neuronalen Netzwerk dadurch, dass die Neuronen in seiner Faltungsschicht nur den lokalen Bereich der Eingabemerkmale abdecken, mit spärlicher Konnektivität und geteilter Gewichtung. Merkmale und die darin enthaltenen Filter können Extrahieren Sie die Hauptmerkmale des Bildes. Aufgrund dieser Funktion können Faltungs-Neuronale Netze bessere Ergebnisse bei der Bilderkennung liefern.

Dieses Projekt implementiert das auf PyTorch basierende Faltungs-Neuronale-Netzwerk-Regressionsmodell.

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 ein Faltungs-Neuronales Netzwerk-Regressionsmodell

Der CNN-Regressionsalgorithmus wird hauptsächlich für die Zielregression verwendet.

6.1 Ein Modell  bauen

 

6.2 Iterationsinformationen 

 

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,9813 beträgt, was ein gutes Modell ist.

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 implementiert dieser Artikel das auf PyTorch basierende Faltungs-Neuronale-Netzwerk-Regressionsmodell und beweist schließlich, dass das von uns vorgeschlagene Modell gut funktioniert. Dieses Modell kann zur Prognose von Alltagsprodukten verwendet werden.

# 定义前向传播方法
def forward(self, x):
    x = self.pool(F.relu(self.conv1(x)))  # 卷积层、最大池化层
    x = self.pool(F.relu(self.conv2(x)))  # 卷积层、最大池化层
    # print('******************************')
    # print(x.size())
    x = x.view(-1, 32 * 2)  # 维度变换


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



# 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


 

Ich denke du magst

Origin blog.csdn.net/weixin_42163563/article/details/131930777
Empfohlen
Rangfolge