Descripción
Neural Oblivious Decision Ensembles (NODE) es un repositorio de código complementario para el artículo de investigación sobre Neural Oblivious Decision Ensembles para Deep Learning en Datos Tabulares. Este proyecto se centra en el aprendizaje de ensembles profundos de árboles de decisión oblivios y diferenciables diseñados específicamente para conjuntos de datos tabulares. La innovación principal radica en la aplicación de técnicas de aprendizaje profundo a datos estructurados, un dominio tradicionalmente dominado por máquinas de gradient boosting y modelos más simples basados en árboles.
Leer más
La arquitectura de NODE permite la creación de modelos complejos basados en ensembles que pueden capturar relaciones intrincadas dentro de los datos tabulares. Al utilizar árboles de decisión diferenciables, el sistema se puede entrenar de extremo a extremo utilizando descenso de gradiente, similar a las redes neuronales estándar. Este enfoque ofrece una combinación única de la interpretabilidad y estructura de los árboles de decisión con las potentes capacidades de aprendizaje de las redes neuronales profundas.
El proyecto proporciona una implementación en Python que se puede ejecutar en máquinas con CPU y, preferiblemente, una o más GPU. Si bien es posible ejecutarlo sin GPU, es significativamente más lento. Se observa que la implementación es ineficiente en memoria y puede requerir una memoria de GPU sustancial para la convergencia. Se ha probado en distribuciones Linux x64 como Ubuntu 16.04 y se espera que funcione en otras distribuciones populares de Linux y macOS. Para sistemas Windows y x32, pueden ser necesarias modificaciones significativas, y se recomienda el uso de Docker, especialmente una versión con GPU habilitada como nvidia-docker.
Para ejecutar NODE, los usuarios deben clonar o descargar el repositorio, configurar un entorno de Python (se sugiere Anaconda) e instalar los paquetes requeridos desde `requirements.txt`. Una dependencia crítica es `torch >= 1.1`. Los usuarios también necesitarán Jupyter Notebook o una herramienta similar para trabajar con los archivos `.ipynb` proporcionados. Antes de ejecutar la primera celda en un notebook, la variable de entorno `CUDA_VISIBLE_DEVICES` debe establecerse en el índice de GPU deseado. Los notebooks descargan conjuntos de datos de Dropbox, requiriendo 1-5 GB de espacio en disco. La biblioteca muestra escenarios de aprendizaje típicos tanto para tareas de clasificación como de regresión, con información detallada de entrenamiento disponible en el artículo de investigación original.
- CategoríaPlataformas de aprendizaje automático
- Modelo de preciosCódigo abierto
- ImplementaciónNube, Autoalojado
- PlataformasLinux, macOS, Windows
Características principales de Neural Oblivious Decision Ensembles
Aprendizaje profundo en datos tabulares
Ensembles de árboles de decisión diferenciables oblivios
Entrenamiento de extremo a extremo mediante descenso de gradiente
Soporta tareas de clasificación
Soporta tareas de regresión
Aceleración por GPU para un entrenamiento más rápido
Implementación basada en Python
Código complementario para artículo de investigación
Requiere PyTorch versión 1.1 o posterior
Primeros pasos con Neural Oblivious Decision Ensembles
Clonar o descargar repositorio: Obtenga los archivos del proyecto desde GitHub.
Configurar entorno Python: Cree y active un entorno Python (por ejemplo, usando Anaconda).
Instalar dependencias: Ejecute `pip install -r requirements.txt` para instalar los paquetes necesarios, asegurándose de que la versión de PyTorch sea >= 1.1.
Configurar uso de GPU: Establezca la variable de entorno `CUDA_VISIBLE_DEVICES` a su índice de GPU deseado antes de ejecutar los notebooks.
Ejecutar notebooks: Abra y ejecute los notebooks de Jupyter proporcionados en el directorio `./notebooks/`.
Descargar conjuntos de datos: Los notebooks descargarán automáticamente los conjuntos de datos requeridos (1-5 GB).
Casos de uso de Neural Oblivious Decision Ensembles
- Clasificación de Datos Tabulares
- Regresión de Datos Tabulares
- Investigación en Aprendizaje Profundo
- Alternativas de Ingeniería de Características
- Investigación en Interpretabilidad de Modelos







