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
El algoritmo bat es un algoritmo de búsqueda heurística propuesto por el profesor Yang basado en inteligencia de enjambre en 2010, y es un método efectivo para buscar la solución óptima global. Basado en la optimización iterativa, el algoritmo se inicializa en un conjunto de soluciones aleatorias y luego busca iterativamente la solución óptima y genera nuevas soluciones locales mediante un vuelo aleatorio alrededor de la solución óptima para mejorar la velocidad de búsqueda local. El algoritmo tiene las características de implementación simple y pocos parámetros.
En vista de los defectos del algoritmo bat básico, como la velocidad de convergencia lenta, la facilidad para caer en el óptimo local y la baja precisión de la solución, se propone un algoritmo bat híbrido combinado con búsqueda local para resolver problemas de optimización sin restricciones. El algoritmo utiliza la secuencia caótica para inicializar la posición y la velocidad del murciélago, lo que sienta las bases para la diversidad de la búsqueda global; integra la búsqueda de Powell para mejorar la capacidad de búsqueda local del algoritmo y acelerar la velocidad de convergencia; utiliza la mutación estrategia para evitar que el algoritmo caiga hasta cierto punto en el óptimo local.
Este proyecto optimiza el modelo de regresión de la red neuronal de BP a través del algoritmo de inteligencia de murciélago híbrido HBA.
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 características
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 el algoritmo de optimización de murciélago híbrido HBA para optimizar el modelo de regresión de la red neuronal BP
Utilice principalmente el algoritmo de optimización de murciélago híbrido HBA para optimizar el algoritmo de regresión de la red neuronal BP para la regresión objetivo.
6.1 Parámetros óptimos buscados por el algoritmo de optimización de murciélago híbrido HBA
Parámetros óptimos:
6.2 Modelo de construcción de valor de parámetro óptimo
6.3 Información resumida del modelo de parámetros óptimos
6.4 Estructura de red del modelo de parámetros óptimos
6.5 Curva de pérdida del conjunto de prueba del conjunto de entrenamiento del modelo de parámetro óptimo
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,9948, lo que significa que el modelo funciona bien.
El código clave es el siguiente:
7.2 Cuadro comparativo de valor real y valor previsto
De 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 documento utiliza el algoritmo de optimización inteligente de murciélago híbrido HBA para encontrar el valor de parámetro óptimo del algoritmo de red neuronal BP para construir un modelo de regresión y, finalmente, demuestra que el modelo que propusimos funciona bien. Este modelo se puede utilizar para pronosticar productos cotidianos.
# 开始迭代
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')
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