Python implementa un proyecto de modelo de regresión de red neuronal convolucional (algoritmo de regresión de CNN) basado en PyTorch

Explicación: Este es un proyecto práctico de aprendizaje automático (con datos + código + documentación + explicación en video ).Si necesita datos + código + documentación + explicación en video, puede ir directamente al final del artículo para obtenerlo.



 


1. Antecedentes del proyecto

La red neuronal convolucional, denominada red convolucional, se diferencia de la red neuronal ordinaria en que las neuronas en su capa convolucional solo cubren el rango local de características de entrada, con escasa conectividad y características de peso compartido, y los filtros en ella pueden extraer las características clave de la imagen. Debido a esta característica, las redes neuronales convolucionales pueden dar mejores resultados en el reconocimiento de imágenes.

Este proyecto implementa el modelo de regresión de red neuronal convolucional basado en PyTorch.

2. Adquisición de datos

Los datos de modelado para este tiempo provienen de Internet (compilados por el autor de este proyecto), y las estadísticas de los elementos de datos son las siguientes:

Los detalles de los datos son los siguientes (visualización parcial):

 

3. Preprocesamiento de datos

3.1 Ver datos con la herramienta  Pandas

Use el método head() de la herramienta Pandas para ver las primeras cinco filas de datos:

clave: 

 

3.2 Vista de datos faltantes

Use el método info() de la herramienta Pandas para ver la información de los datos:

 

Como se puede ver en la figura anterior, hay un total de 11 variables, ningún valor faltante en los datos y un total de 2000 datos.

clave:

3.3 Estadísticas descriptivas de datos 

Utilice el método describe() de la herramienta Pandas para ver la media, la desviación estándar, el mínimo, el cuantil y el máximo de los datos.

 

El código clave es el siguiente:  

 

4. Análisis de datos exploratorios

4.1 Histograma de y variables 

Utilice el método hist() de la herramienta Matplotlib para dibujar un histograma:

Como puede verse en la figura anterior, la variable y se concentra principalmente entre -400 y 400.

4.2 Análisis de correlación

 

Como se puede ver en la figura anterior, cuanto mayor sea el valor, más fuerte será la correlación.Un valor positivo es una correlación positiva y un valor negativo es una correlación negativa.

5. Ingeniería de funciones

5.1 Establecer datos de características y datos de etiquetas

El código clave es el siguiente:

 

5.2 División de conjuntos de datos

Use el método train_test_split() para dividir de acuerdo con el 80 % del conjunto de entrenamiento y el 20 % del conjunto de prueba. El código clave es el siguiente:

 

6. Construya un modelo de regresión de red neuronal convolucional

El algoritmo de regresión CNN se utiliza principalmente para la regresión de objetivos.

6.1  Construcción de un modelo

 

6.2 Información de iteración 

 

7. Evaluación del modelo

7.1 Indicadores y resultados de la evaluación

Los indicadores de evaluación incluyen principalmente valor de varianza explicable, error absoluto medio, error cuadrático medio, valor R cuadrado, etc.

 

En la tabla anterior se puede ver que el R cuadrado es 0,9813, que es un buen modelo.

El código clave es el siguiente:

 

7.2 Tabla de comparación de valor real y valor previsto

 

En la figura anterior se puede ver que las fluctuaciones del valor real y el valor predicho son básicamente las mismas, y el efecto de ajuste del modelo es bueno.    

8. Conclusión y perspectiva

En resumen, este artículo implementa el modelo de regresión de red neuronal convolucional basado en PyTorch y finalmente prueba que el modelo que propusimos funciona bien. Este modelo se puede utilizar para pronosticar productos cotidianos.

# 定义前向传播方法
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')

Para obtener más prácticas de proyectos, consulte la lista de colecciones de prácticas de proyectos de aprendizaje automático:

Lista de colecciones de combate reales de proyectos de aprendizaje automático


 

Supongo que te gusta

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