Descifrado del algoritmo CART: desde el principio hasta la implementación de Python

Este artículo analiza en profundidad los principios básicos, los métodos de implementación y los escenarios de aplicación del algoritmo CART (árbol de clasificación y regresión). El artículo primero presenta los conocimientos básicos de los árboles de decisión y luego analiza en detalle el mecanismo de funcionamiento del algoritmo CART, incluida la selección de características y la construcción de árboles. A continuación, se demuestra la aplicación del algoritmo CART en problemas prácticos mediante códigos de ejemplo de Python y PyTorch. Finalmente, el artículo evalúa las ventajas y desventajas del algoritmo y analiza su potencial de aplicación en diferentes campos como el análisis médico, financiero y de mercado.

Siga a TechLead y comparta conocimientos multidimensionales sobre la IA. El autor tiene más de 10 años de experiencia en arquitectura de servicios de Internet, experiencia en desarrollo de productos de IA y experiencia en gestión de equipos. Tiene una maestría de la Universidad Tongji en la Universidad de Fudan, es miembro del Laboratorio de Inteligencia de Robots de Fudan y es un arquitecto senior certificado por Alibaba Cloud, un profesional en gestión de proyectos e investigación y desarrollo de productos de inteligencia artificial con ingresos de cientos de millones.

archivo

1. Introducción

El algoritmo CART (árboles de clasificación y regresión) es un modelo de árbol de decisión que se utiliza para tareas de clasificación y regresión. Este modelo fue propuesto por Breiman et al. en 1986 y ahora se ha utilizado ampliamente en diversas tareas de minería de datos y problemas de aprendizaje automático.

Antecedentes del algoritmo CART

El algoritmo CART es una extensión basada en árboles de decisión. Como modelo altamente interpretable, el modelo de árbol de decisión se ha utilizado ampliamente durante mucho tiempo. El algoritmo CART no solo tiene todas las ventajas de los árboles de decisión, sino que también introduce técnicas de optimización más avanzadas, como la impureza de Gini, la poda de árboles, etc.

Ejemplo: diagnóstico médico

En el campo del diagnóstico médico, los árboles de decisión se pueden utilizar para predecir enfermedades (etiquetas) en función de un conjunto de condiciones (características). El algoritmo CART puede optimizar aún más este proceso, evitar el sobreajuste mediante poda y mejorar la capacidad de generalización del modelo.

Escenarios de aplicación

El algoritmo CART se usa ampliamente en muchos campos, incluidos, entre otros:

  • procesamiento de datos
  • procesamiento natural del lenguaje
  • Identificación de imagen
  • Control de riesgos financieros

Ejemplo: control de riesgos financieros

En el campo del control de riesgos financieros, el algoritmo CART se puede utilizar para evaluar la calificación crediticia de un usuario. Al analizar la edad, los ingresos, los hábitos de consumo y otras características del usuario, el modelo puede predecir si el usuario corre riesgo de incumplimiento.

Definición y composición

El algoritmo CART consta básicamente de tres componentes principales:

  1. Construcción de árboles de decisión : cree un árbol de decisiones utilizando datos de entrenamiento.
  2. Poda de árboles : Prevención del sobreajuste eliminando partes de un árbol de decisión.
  3. Decisión y predicción : utilice árboles de decisión construidos y podados para la clasificación de datos o la predicción de regresión.

Ejemplo: clasificación de correo electrónico

Suponga que desea crear un clasificador de correo electrónico para distinguir el spam de los correos electrónicos legítimos. El algoritmo CART primero construye un árbol de decisión observando las características del correo electrónico (como remitente, asunto, palabras clave en el contenido del correo electrónico, etc.). Luego puede eliminar algunos nodos innecesarios o demasiado complejos en el árbol de decisión (poda) para evitar el sobreajuste. Finalmente, utilice este árbol de decisión podado para clasificar los correos electrónicos recién recibidos.


2. Conceptos básicos del árbol de decisiones

Antes de comprender en profundidad el algoritmo CART, es necesario comprender primero su base: el modelo de árbol de decisión. Un árbol de decisiones es una estructura de árbol que se utiliza para tomar decisiones o predicciones. Consta de nodos y aristas y tiene un nodo raíz y múltiples nodos hoja.

¿Qué es un árbol de decisión?

Los árboles de decisión son un algoritmo popular de aprendizaje automático que se utiliza principalmente para tareas de clasificación y regresión. Toma decisiones o predicciones a través de una serie de preguntas de "sí o no". Cada nodo interno representa una característica, cada rama representa una regla de decisión y cada nodo hoja representa una salida de predicción.

Ejemplo: pronóstico del tiempo

Suponga que quiere predecir si mañana será un buen momento para salir. Es posible observar múltiples características, como el clima (soleado, nublado, lluvioso), la temperatura (alta, media, baja), etc. El árbol de decisión comenzará desde el nodo raíz, tomará una serie de decisiones basadas en estas características y finalmente dará una predicción (adecuada o no adecuada para salida) en el nodo hoja.

Cómo construir un árbol de decisión simple

Los pasos básicos para construir un árbol de decisión son los siguientes:

  1. Seleccione la mejor característica : seleccione una característica del conjunto de datos como nodo actual.
  2. Divida el conjunto de datos : divida el conjunto de datos en varios subconjuntos según los diferentes valores de las características seleccionadas.
  3. Decisión o recursividad : si un subconjunto ya contiene datos similares, márquelo como un nodo hoja; de lo contrario, cree un árbol de decisión de forma recursiva para el subconjunto.

Ejemplo: clasificación de animales

Suponga que tiene un conjunto de datos que contiene varios animales y sus características (como "tiene plumas", "puede volar", "es un mamífero", etc.). Tu tarea es construir un árbol de decisiones para clasificar estos animales.

  1. Puede comenzar segmentando el conjunto de datos según la característica "emplumada".
  2. Para el subconjunto "emplumado", puede segmentar aún más según la característica de "volar".
  3. Con el tiempo, cada nodo de la hoja contendrá animales del mismo tipo (como "pájaro" o "mamífero").

Tipos de algoritmos de árbol de decisión

Hay tres tipos principales de algoritmos de árboles de decisión:

  1. ID3 (dicotomizador iterativo 3) : utilice la ganancia de información como criterio para la selección de funciones.
  2. C4.5 : Es una versión mejorada de ID3, que utiliza la tasa de ganancia de información como criterio para la selección de funciones.
  3. CART (árboles de clasificación y regresión) : utiliza la impureza de Gini o el error al cuadrado como criterio para la selección de características y se puede utilizar tanto para tareas de clasificación como de regresión.

Ejemplo: clasificación de spam

Digamos que estás creando un clasificador de spam:

  1. Usando ID3, puede elegir como nodos aquellas palabras que tienen la mayor ganancia de información (es mejor distinguir entre spam y no spam).
  2. Con C4.5, consideraría la frecuencia de aparición de cada palabra y seleccionaría la palabra con el índice de ganancia de información más alto.
  3. Usando CART, puedes usar la impureza de Gini para medir la capacidad de clasificación de cada palabra.

A través de estas definiciones y ejemplos, podemos comprender mejor los conceptos básicos de los árboles de decisión y prepararnos para una comprensión profunda del algoritmo CART.


3. Explicación detallada del algoritmo CART

Después de comprender los conocimientos básicos de los árboles de decisión, presentaremos en detalle el algoritmo CART (árboles de clasificación y regresión). El algoritmo CART es un modelo de árbol para clasificación y regresión con alta flexibilidad y precisión.

Características y Beneficios

El algoritmo CART tiene las siguientes características destacadas:

  1. Se puede utilizar para clasificación y regresión : a diferencia de los algoritmos de árbol de decisión (como ID3, C4.5) que solo se utilizan para clasificación, CART se puede aplicar tanto a tareas de clasificación como de regresión.
  2. Estructura de árbol binario : CART siempre genera un árbol binario, es decir, cada nodo tiene dos nodos secundarios.
  3. Tecnología de poda : CART utiliza poda de complejidad de costos para evitar el sobreajuste.

Ejemplo: predicción del precio de la vivienda

En la predicción del precio de la vivienda (un problema de regresión), el algoritmo CART puede construir un modelo para predecir los precios de la vivienda en función de múltiples características (como área, ubicación, edad, etc.). Al mismo tiempo, el algoritmo también se puede utilizar para problemas de clasificación, como predecir si una casa se venderá en el corto plazo.

Construya un árbol de decisiones CART

Los pasos principales para construir un árbol de decisión CART incluyen:

  1. Selección de funciones : en CART, la impureza de Gini o el error al cuadrado son criterios comunes utilizados para la selección de funciones.
  2. División de datos : el conjunto de datos se divide en dos subconjuntos según las características seleccionadas.
  3. Recursión y terminación : cree árboles de forma recursiva para subconjuntos hasta que se cumpla una determinada condición de terminación (como que el número de muestras en un nodo sea inferior a un umbral predeterminado).

Ejemplo: calificación de estudiantes

Supongamos que una escuela necesita calificar a los estudiantes en función de múltiples características (como calificaciones, asistencia, desempeño conductual, etc.). El algoritmo CART primero selecciona la característica más importante (quizás calificaciones) y luego divide el conjunto de datos en función de esta característica. Luego, el algoritmo continúa este proceso de forma recursiva en cada subconjunto.

poda de árboles

La poda de árboles es un paso muy importante en el algoritmo CART, que incluye principalmente:

  1. Parámetro de complejidad de costos : al ajustar el parámetro de complejidad de costos (generalmente representado como (\alpha)), podemos controlar la complejidad del árbol.
  2. Minimizar la función de costos : el objetivo es encontrar un subárbol óptimo obtenido minimizando la función de costos.

Ejemplo: recomendaciones de productos de comercio electrónico

En la recomendación de productos de comercio electrónico, es posible que el árbol de decisión original sea muy complejo y tenga en cuenta muchas características innecesarias del usuario. Mediante la poda, podemos eliminar algunos nodos sin importancia, lo que da como resultado un modelo más simple y fácil de interpretar, manteniendo buenos resultados de recomendación.


4. Combate real de Python

En la parte teórica, comprendemos en detalle los conceptos y características centrales del algoritmo CART. Ahora, exploremos cómo implementar el algoritmo CART a través de un ejemplo práctico específico de Python.

Descripción del escenario: Aprobación de préstamo bancario

Digamos que somos un equipo de ciencia de datos en un banco encargado de desarrollar un modelo de aprendizaje automático para aprobar automáticamente solicitudes de préstamos. Tenemos un conjunto de datos con cuatro características: ingreso anual, puntaje crediticio, años de empleo y monto del préstamo. El objetivo es predecir si el préstamo será reembolsado.

entrada y salida

  • Entrada : un conjunto de datos que contiene los ingresos anuales, la puntuación crediticia, los años de empleo y el monto del préstamo de cada solicitante.
  • Salida : Una predicción que indica si el préstamo debería aprobarse.

Preprocesamiento de datos

Antes de construir un modelo, se requiere un preprocesamiento de datos. Esto normalmente incluye relleno de nulos, normalización de datos, etc.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 加载数据
data = pd.read_csv('loan_data.csv')

# 数据预处理
scaler = StandardScaler()
data[['Annual_Income', 'Credit_Score', 'Years_in_Job', 'Loan_Amount']] = scaler.fit_transform(data[['Annual_Income', 'Credit_Score', 'Years_in_Job', 'Loan_Amount']])

# 分割数据
X = data[['Annual_Income', 'Credit_Score', 'Years_in_Job', 'Loan_Amount']]
y = data['Loan_Status']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Construcción del modelo CART.

Utilice DecisionTreeClassifierla biblioteca sklearn.treepara construir y entrenar el modelo CART.

from sklearn.tree import DecisionTreeClassifier

# 创建CART分类模型
cart_model = DecisionTreeClassifier(criterion='gini')

# 模型训练
cart_model.fit(X_train, y_train)

Evaluación del modelo

Utilice la precisión como criterio para la evaluación del modelo.

from sklearn.metrics import accuracy_score

# 预测
y_pred = cart_model.predict(X_test)

# 模型评估
accuracy = accuracy_score(y_test, y_pred)
print(f'Model Accuracy: {
      
      accuracy}')

Producción:

Model Accuracy: 0.88

5. Ventajas y desventajas

Después de tener un conocimiento profundo del algoritmo CART y su implementación en Python, resumamos ahora las ventajas y desventajas de este algoritmo.

ventaja

1. Alta flexibilidad

El algoritmo CART se puede aplicar tanto a problemas de clasificación como de regresión, lo que lo hace muy flexible para resolver varios tipos de problemas.

Ejemplo: diagnóstico de salud y predicción del precio de las acciones.

Por ejemplo, en problemas de clasificación médica y sanitaria, el algoritmo CART se puede utilizar para predecir si un paciente tiene una enfermedad específica. Al mismo tiempo, el algoritmo CART también se puede utilizar para la predicción del precio de las acciones (problema de regresión) en el campo financiero.

2. Fácil de entender y explicar

Dado que CART genera un modelo estructurado en árbol, los resultados del modelo suelen ser fáciles de interpretar y comprender, lo que resulta muy útil en situaciones en las que es necesario explicar las decisiones del modelo.

Ejemplo: aprobación de crédito

En un escenario de aprobación de crédito, el modelo no sólo debe ser muy preciso, sino que también debe poder explicar los motivos de la aprobación o rechazo del préstamo. El árbol de decisión generado por el algoritmo CART puede demostrar visualmente esta lógica.

3. Puede manejar valores faltantes y valores atípicos

CART es muy robusto y puede manejar eficazmente valores faltantes y valores atípicos sin la necesidad de un preprocesamiento de datos complejo.

Ejemplo: datos del sensor

En la producción industrial, los datos recopilados pueden contener valores faltantes o valores atípicos debido a posibles sensores defectuosos o ruidosos. El algoritmo CART aún puede funcionar bien en esta situación.

defecto

1. Fácil de sobreajustar

Aunque el algoritmo CART proporciona tecnología de poda, el modelo aún es propenso a sobreajustarse si los parámetros de poda no se configuran correctamente o si los datos de entrenamiento en sí son ruidosos.

Ejemplo: pronóstico del mercado de valores

En la predicción del mercado de valores, debido al mercado en constante cambio, el uso del algoritmo CART puede capturar fácilmente el ruido en los datos y provocar un sobreajuste.

2. No tan potente como otros algoritmos para relaciones no lineales.

Aunque el algoritmo CART puede capturar ciertas relaciones no lineales, su rendimiento puede no ser tan bueno como el de los algoritmos basados ​​en métodos de kernel o redes neuronales para sistemas no lineales altamente complejos.

Ejemplo: reconocimiento de imágenes

En los problemas de reconocimiento de imágenes, los algoritmos CART a menudo no funcionan tan bien como modelos más complejos, como las redes neuronales convolucionales (CNN), debido a las complejas relaciones entre píxeles.


6. Escenarios de aplicación

El algoritmo CART es popular debido a su flexibilidad y facilidad de interpretación, y tiene una variedad de escenarios de aplicación. En esta sección, exploramos estos escenarios de aplicación en detalle.

1. Diagnóstico médico

El algoritmo CART se puede utilizar para analizar los registros médicos de un paciente y predecir el riesgo de enfermedad en función de una variedad de parámetros.

Ejemplo: predicción del riesgo de enfermedad cardíaca

Al analizar la edad, la presión arterial, los niveles de colesterol y otros factores de un paciente, el algoritmo CART puede predecir el riesgo futuro de enfermedad cardíaca de un paciente. Esto es muy útil para el tratamiento preventivo temprano.

2. Control de riesgos financieros

En la industria financiera, el algoritmo CART se utiliza para evaluar el riesgo crediticio de los solicitantes de préstamos o tarjetas de crédito.

Ejemplo: modelo de calificación crediticia

El banco utiliza el algoritmo CART para analizar los ingresos anuales del solicitante, los años de trabajo, el historial crediticio anterior, etc., para predecir la probabilidad de incumplimiento. En base a esto, el banco puede decidir si aprueba la solicitud de préstamo o tarjeta de crédito.

3. Análisis de mercado

El algoritmo CART también se utiliza ampliamente en el análisis de mercado, especialmente en sistemas de recomendación y segmentación de clientes.

Ejemplo: recomendaciones personalizadas

Los sitios web de comercio electrónico utilizan el algoritmo CART para analizar el historial de compras de los usuarios, el comportamiento de navegación de la página, etc., y recomendar productos que es más probable que compren.

4. Protección de los recursos naturales

El algoritmo CART también tiene aplicaciones potenciales en ciencias ambientales y gestión de recursos naturales.

Ejemplo: Evaluación del hábitat de vida silvestre

Al analizar factores como el tipo de suelo, las condiciones climáticas, la cubierta vegetal y más, el algoritmo CART puede evaluar la idoneidad de un área como hábitat para una vida silvestre específica.

5. Producción industrial

En producción industrial, el algoritmo CART se puede utilizar para optimizar procesos de producción, detección de fallos, etc.

Ejemplo: control de calidad de la producción.

Al analizar varios datos de sensores en la línea de producción en tiempo real, el algoritmo CART puede predecir si el producto tendrá problemas de calidad y realizar ajustes oportunos.


7. Resumen

Después de una discusión detallada en los capítulos anteriores, no es difícil encontrar que el algoritmo CART es un algoritmo de aprendizaje automático muy potente y flexible. Se puede aplicar a problemas de clasificación y regresión, tiene buena interpretabilidad y tiene amplias aplicaciones en diversas industrias.

Sin embargo, vale la pena señalar que ningún algoritmo es una solución milagrosa. Aunque el algoritmo CART funciona bien en algunos aspectos, también tiene sus limitaciones, como su tendencia a sobreajustarse y sus limitaciones a la hora de abordar problemas complejos no lineales. Por lo tanto, al seleccionar un algoritmo, debemos realizar una evaluación integral basada en escenarios y necesidades de aplicación específicos.

  1. Compensación entre interpretabilidad y complejidad : en aplicaciones del mundo real, especialmente en dominios de alto riesgo o alto valor (por ejemplo, atención médica, finanzas, etc.), la interpretabilidad de un modelo puede ser tan importante como su desempeño predictivo. El algoritmo CART proporciona una forma de equilibrar ambos de forma eficaz.

  2. Ingeniería de funciones basada en datos : la ingeniería de funciones tradicional a menudo se basa en el conocimiento y la experiencia del dominio, mientras que el algoritmo CART brinda un fuerte soporte para la toma de decisiones basada en datos al seleccionar automáticamente características importantes y puntos de división.

  3. La base de los métodos de conjunto : el algoritmo CART se utiliza a menudo como base de los métodos de conjunto (como bosques aleatorios y árboles de aumento de gradiente), lo que demuestra aún más su eficacia y escalabilidad para abordar diversos problemas complejos.

  4. Sensibilidad a datos desequilibrados : aunque el algoritmo CART tiene sus ventajas, es particularmente sensible a datos desequilibrados, lo que puede ser un problema en algunos escenarios de aplicación. Por lo tanto, antes de utilizar el algoritmo CART, es muy necesario preprocesar adecuadamente los datos o utilizar indicadores de evaluación adecuados.

Siga a TechLead y comparta conocimientos multidimensionales sobre la IA. El autor tiene más de 10 años de experiencia en arquitectura de servicios de Internet, experiencia en desarrollo de productos de IA y experiencia en gestión de equipos. Tiene una maestría de la Universidad Tongji en la Universidad de Fudan, es miembro del Laboratorio de Inteligencia de Robots de Fudan y es un arquitecto senior certificado por Alibaba Cloud, un profesional en gestión de proyectos e investigación y desarrollo de productos de inteligencia artificial con ingresos de cientos de millones.

Supongo que te gusta

Origin blog.csdn.net/magicyangjay111/article/details/133556940
Recomendado
Clasificación