Lograr un rendimiento de nivel XGBoost con la interpretabilidad y la velocidad de CART: el blog de investigación de inteligencia artificial de Berkeley




FIGS (sumas de árboles codiciosos interpretables rápidas): Un método para construir modelos interpretables mediante el crecimiento simultáneo de un conjunto de árboles de decisión en competencia entre sí.

Los recientes avances en el aprendizaje automático han dado lugar a modelos predictivos cada vez más complejos, a menudo a costa de la interpretabilidad. A menudo necesitamos interpretabilidad, particularmente en aplicaciones de alto riesgo, como en la toma de decisiones clínicas; los modelos interpretables ayudan con todo tipo de cosas, como identificar errores, aprovechar el conocimiento del dominio y hacer predicciones rápidas.

En esta entrada de blog cubriremos HIGOSun nuevo método para ajustar un modelo interpretable que toma la forma de una suma de árboles. Los experimentos del mundo real y los resultados teóricos muestran que FIGS puede adaptarse efectivamente a una amplia gama de estructuras en los datos, logrando un rendimiento de vanguardia en varios entornos, todo sin sacrificar la interpretabilidad.

¿Cómo funciona FIGS?

Intuitivamente, FIGS funciona extendiendo CART, un típico algoritmo codicioso para hacer crecer un árbol de decisiones, para considerar hacer crecer un suma de arboles simultaneamente (ver figura 1). En cada iteración, FIGS puede hacer crecer cualquier árbol existente que ya haya iniciado o iniciar un nuevo árbol; selecciona con avidez cualquier regla que reduzca más la varianza total no explicada (o un criterio de división alternativo). Para mantener los árboles sincronizados entre sí, cada árbol está hecho para predecir el derechos residuales de autor restante después de sumar las predicciones de todos los demás árboles (ver el papel para más detalles).

FIGS es intuitivamente similar a los enfoques de conjunto, como el aumento de gradiente/bosque aleatorio, pero es importante que, dado que todos los árboles crecen para competir entre sí, el modelo puede adaptarse más a la estructura subyacente de los datos. El número de árboles y el tamaño/forma de cada árbol surgen automáticamente de los datos en lugar de especificarse manualmente.



Figura 1. Intuición de alto nivel sobre cómo FIGS se ajusta a un modelo.

Un ejemplo usando FIGS

Usar FIGS es extremadamente simple. Es fácilmente instalable a través del paquete de modelos (pip install imodels) y luego se puede usar de la misma manera que los modelos estándar de scikit-learn: simplemente importe un clasificador o regresor y use el fit y predict métodos. Aquí hay un ejemplo completo de su uso en un conjunto de datos clínicos de muestra en el que el objetivo es el riesgo de lesión de la columna cervical (CSI).

from imodels import FIGSClassifier, get_clean_dataset
from sklearn.model_selection import train_test_split

# prepare data (in this a sample clinical dataset)
X, y, feat_names = get_clean_dataset('csi_pecarn_pred')
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=42)

# fit the model
model = FIGSClassifier(max_rules=4)  # initialize a model
model.fit(X_train, y_train)   # fit model
preds = model.predict(X_test) # discrete predictions: shape is (n_test, 1)
preds_proba = model.predict_proba(X_test) # predicted probabilities: shape is (n_test, n_classes)

# visualize the model
model.plot(feature_names=feat_names, filename='out.svg', dpi=300)

Esto da como resultado un modelo simple: contiene solo 4 divisiones (ya que especificamos que el modelo no debe tener más de 4 divisiones (max_rules=4). Las predicciones se hacen dejando caer una muestra en cada árbol y sumando los valores de ajuste de riesgo obtenidos de las hojas resultantes de cada árbol. Este modelo es extremadamente interpretable, ya que un médico ahora puede (i) hacer predicciones fácilmente utilizando las 4 características relevantes y (ii) examinar el modelo para asegurarse de que coincida con su experiencia en el campo. Tenga en cuenta que este modelo es solo para fines ilustrativos y logra una precisión de ~84%.



Figura 2. Modelo simple aprendido por FIGS para predecir el riesgo de lesión de la columna cervical.

Si queremos un modelo más flexible, también podemos eliminar la restricción en el número de reglas (cambiando el código a model = FIGSClassifier()), dando como resultado un modelo más grande (ver Fig. 3). Tenga en cuenta que la cantidad de árboles y cuán equilibrados surgen de la estructura de los datos; solo se puede especificar la cantidad total de reglas.



Fig. 3. Modelo ligeramente más grande aprendido por FIGS para predecir el riesgo de lesión de la columna cervical.

¿Qué tan bien se desempeña FIGS?

En muchos casos, cuando se desea la interpretabilidad, como modelado de reglas de decisión clínica, FIGS es capaz de lograr un rendimiento de última generación. Por ejemplo, la figura 4 muestra diferentes conjuntos de datos en los que FIGS logra un rendimiento excelente, especialmente cuando se limita a usar muy pocas divisiones totales.



Figura 4. FIGS predice bien con muy pocas divisiones.

¿Por qué FIGS funciona bien?

FIGS está motivado por la observación de que los árboles de decisión únicos a menudo tienen divisiones que se repiten en diferentes ramas, lo que puede ocurrir cuando hay estructura aditiva en los datos Tener varios árboles ayuda a evitar esto al separar los componentes aditivos en árboles separados.

Conclusión

En general, el modelado interpretable ofrece una alternativa al modelado de caja negra común y, en muchos casos, puede ofrecer mejoras masivas en términos de eficiencia y transparencia sin sufrir una pérdida de rendimiento.


Esta publicación se basa en dos documentos: HIGOS y G-HIGOS – todo el código está disponible a través del paquete de modelos. Este es un trabajo conjunto con Keyan Nasseri, Abhineet Agarwal, james duncan, Ömer Roneny Aaron Kornblith.

Fuente del artículo

Deja un comentario