Descrição
Neural Oblivious Decision Ensembles (NODE) é um repositório de código suplementar para o artigo de pesquisa sobre Neural Oblivious Decision Ensembles para Deep Learning em Dados Tabulares. Este projeto foca no aprendizado de ensembles profundos de árvores de decisão oblivias e diferenciáveis, especificamente projetadas para conjuntos de dados tabulares. A inovação central reside na aplicação de técnicas de deep learning a dados estruturados, um domínio tradicionalmente dominado por máquinas de gradient boosting e modelos mais simples baseados em árvores.
Ler mais
A arquitetura do NODE permite a criação de modelos complexos baseados em ensembles que podem capturar relações intrincadas em dados tabulares. Ao utilizar árvores de decisão diferenciáveis, o sistema pode ser treinado de ponta a ponta usando gradiente descendente, semelhante às redes neurais padrão. Essa abordagem oferece uma combinação única da interpretabilidade e estrutura das árvores de decisão com as poderosas capacidades de aprendizado das redes neurais profundas.
O projeto fornece uma implementação em Python que pode ser executada em máquinas com CPU e, preferencialmente, uma ou mais GPUs. Embora seja possível executar sem GPU, é significativamente mais lento. A implementação é notada por ser ineficiente em termos de memória e pode exigir memória de GPU substancial para convergência. É testada em distribuições Linux x64 como Ubuntu 16.04 e espera-se que funcione em outras distribuições Linux populares e macOS. Para sistemas Windows e x32, modificações significativas podem ser necessárias, e o uso de Docker, especialmente uma versão habilitada para GPU como nvidia-docker, é recomendado.
Para executar o NODE, os usuários precisam clonar ou baixar o repositório, configurar um ambiente Python (Anaconda é sugerido) e instalar os pacotes necessários de `requirements.txt`. Uma dependência crítica é `torch >= 1.1`. Os usuários também precisarão do Jupyter Notebook ou de uma ferramenta semelhante para trabalhar com os arquivos `.ipynb` fornecidos. Antes de executar a primeira célula em um notebook, a variável de ambiente `CUDA_VISIBLE_DEVICES` deve ser definida para o índice da GPU desejada. Os notebooks baixam conjuntos de dados do Dropbox, exigindo 1-5 GB de espaço em disco. A biblioteca demonstra cenários de aprendizado típicos para tarefas de classificação e regressão, com informações detalhadas de treinamento disponíveis no artigo de pesquisa original.
- CategoriaPlataformas de machine learning
- Modelo de preçosCódigo aberto
- ImplantaçãoNuvem, Auto-hospedado
- PlataformasLinux, macOS, Windows
Recursos principais de Neural Oblivious Decision Ensembles
Deep learning em dados tabulares
Ensembles de árvores de decisão oblivias e diferenciáveis
Treinamento de ponta a ponta via gradiente descendente
Suporta tarefas de classificação
Suporta tarefas de regressão
Aceleração por GPU para treinamento mais rápido
Implementação baseada em Python
Código suplementar para artigo de pesquisa
Requer PyTorch versão 1.1 ou posterior
Primeiros passos com Neural Oblivious Decision Ensembles
Clonar ou baixar o repositório: Obtenha os arquivos do projeto do GitHub.
Configurar ambiente Python: Crie e ative um ambiente Python (por exemplo, usando Anaconda).
Instalar dependências: Execute `pip install -r requirements.txt` para instalar os pacotes necessários, garantindo que a versão do PyTorch seja >= 1.1.
Configurar uso de GPU: Defina a variável de ambiente `CUDA_VISIBLE_DEVICES` para o seu índice de GPU desejado antes de executar os notebooks.
Executar notebooks: Abra e execute os notebooks Jupyter fornecidos no diretório `./notebooks/`.
Baixar conjuntos de dados: Os notebooks baixarão automaticamente os conjuntos de dados necessários (1-5 GB).
Casos de uso de Neural Oblivious Decision Ensembles
- Classificação de Dados Tabulares
- Regressão de Dados Tabulares
- Pesquisa em Deep Learning
- Alternativas de Engenharia de Features
- Pesquisa em Interpretabilidade de Modelos







