Python implementa el algoritmo genético GA para optimizar el combate real del proyecto del modelo de clasificación Catboost (algoritmo CatBoostClassifier)

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 genético (GA) fue propuesto por primera vez por John Holland en los Estados Unidos en la década de 1970. Este algoritmo está diseñado y propuesto de acuerdo con la ley de evolución de los organismos en la naturaleza. Es un modelo de cálculo del proceso de evolución biológica que simula la selección natural y el mecanismo genético de la teoría de la evolución biológica de Darwin, y es un método para buscar la solución óptima simulando el proceso de evolución natural. El algoritmo convierte el proceso de resolución del problema en un proceso similar al cruce y mutación de genes cromosómicos en la evolución biológica mediante operaciones matemáticas y de simulación informática. Cuando se resuelven problemas de optimización combinatoria más complejos, en comparación con algunos algoritmos de optimización convencionales, generalmente se pueden obtener mejores resultados de optimización más rápido. El algoritmo genético se ha utilizado ampliamente en optimización combinatoria, aprendizaje automático, procesamiento de señales, control adaptativo y vida artificial y otros campos.

Este proyecto optimiza el modelo de clasificación Catboost a través del algoritmo genético GA.

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 las herramientas de Pandas

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

 

clave: 

3.2 Comprobar 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 9 variables, sin valores faltantes en los datos y un total de 1000 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

Histograma de 4.1 y variables

Use el método plot() de la herramienta Matplotlib para dibujar un histograma:

4.2 y=1 muestra x1 histograma de distribución variable

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

4.3 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 un algoritmo genético GA para optimizar el modelo de clasificación CATBOOST

Utilice principalmente el algoritmo genético GA para optimizar el algoritmo de clasificación CATBOOST para la clasificación de objetos.

6.1 Algoritmo genético GA para encontrar el valor óptimo del parámetro   

Parámetros óptimos:

6.2 Modelo de construcción de valor 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 la tasa de precisión, la tasa de precisión, la tasa de recuperación, la puntuación F1, etc.

 

En la tabla anterior se puede ver que la puntuación F1 es 0,8315, lo que indica que el modelo tiene un mejor efecto.

El código clave es el siguiente: 

 7.2 Informe de clasificación

 

Como puede verse en la figura anterior, la puntuación F1 de la clasificación 0 es 0,86; la puntuación F1 de la clasificación 1 es 0,83.

7.3 Matriz de confusión

 

Como se puede ver en la figura anterior, hay 12 muestras que en realidad son 0 y se predice que no será 0; hay 18 muestras que en realidad son 1 y se predice que no será 1, y la precisión general de la predicción es buena.

8. Conclusión y perspectiva

En resumen, este artículo utiliza el algoritmo genético GA para encontrar los valores óptimos de los parámetros del algoritmo CATBOOST para construir un modelo de clasificación y finalmente prueba que el modelo que propusimos funciona bien. Este modelo se puede utilizar para pronosticar productos cotidianos.

# 初始化种群、初始解
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=1样本x1变量分布直方图
fig = plt.figure(figsize=(8, 5))  # 设置画布大小
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
data_tmp = df.loc[df['y'] == 1, 'x1']  # 过滤出y=1的样本
# 绘制直方图  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


Para consultar y adquirir el código del proyecto, consulte la cuenta oficial a continuación. 

Supongo que te gusta

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