Описание
Neural Oblivious Decision Ensembles (NODE) — это дополнительный репозиторий кода для исследовательской статьи о Neural Oblivious Decision Ensembles для глубокого обучения на табличных данных. Этот проект фокусируется на обучении глубоких ансамблей неявных, дифференцируемых деревьев решений, специально разработанных для табличных наборов данных. Основная инновация заключается в применении методов глубокого обучения к структурированным данным — области, традиционно доминируемой градиентными бустинговыми машинами и более простыми древовидными моделями.
Читать далее
Архитектура NODE позволяет создавать сложные ансамблевые модели, которые могут улавливать тонкие взаимосвязи в табличных данных. Используя дифференцируемые деревья решений, систему можно обучать сквозным образом с помощью градиентного спуска, аналогично стандартным нейронным сетям. Этот подход предлагает уникальное сочетание интерпретируемости и структуры деревьев решений с мощными возможностями обучения глубоких нейронных сетей.
Проект предоставляет реализацию на Python, которую можно запускать на машинах с ЦП и, предпочтительно, с одним или несколькими ГП. Хотя запуск без ГП возможен, он значительно медленнее. Отмечается, что реализация неэффективна по памяти и может требовать значительного объема памяти ГП для сходимости. Она протестирована на дистрибутивах Linux x64, таких как Ubuntu 16.04, и ожидается, что будет работать на других популярных дистрибутивах Linux и macOS. Для систем Windows и x32 могут потребоваться существенные модификации, и рекомендуется использовать Docker, особенно версию с поддержкой ГП, такую как nvidia-docker.
Для запуска NODE пользователям необходимо клонировать или скачать репозиторий, настроить среду Python (рекомендуется Anaconda) и установить необходимые пакеты из `requirements.txt`. Критически важной зависимостью является `torch >= 1.1`. Пользователям также понадобится Jupyter Notebook или аналогичный инструмент для работы с предоставленными файлами `.ipynb`. Перед выполнением первой ячейки в блокноте необходимо установить переменную окружения `CUDA_VISIBLE_DEVICES` на желаемый индекс ГП. Блокноты загружают наборы данных из Dropbox, требуя 1-5 ГБ дискового пространства. Библиотека демонстрирует типичные сценарии обучения как для задач классификации, так и для регрессии, с подробной информацией об обучении, доступной в оригинальной исследовательской статье.
- КатегорияПлатформы машинного обучения
- Модель ценообразованияОткрытый код
- РазвёртываниеОблако, На своём сервере
- ПлатформыLinux, macOS, Windows
Основные функции Neural Oblivious Decision Ensembles
Глубокое обучение на табличных данных
Ансамбли неявных дифференцируемых деревьев решений
Сквозное обучение с помощью градиентного спуска
Поддержка задач классификации
Поддержка задач регрессии
Ускорение на ГП для более быстрого обучения
Реализация на Python
Дополнительный код для исследовательской статьи
Требуется PyTorch версии 1.1 или новее
Начало работы с Neural Oblivious Decision Ensembles
Клонировать или скачать репозиторий: Получите файлы проекта с GitHub.
Настроить среду Python: Создайте и активируйте среду Python (например, с помощью Anaconda).
Установить зависимости: Выполните `pip install -r requirements.txt` для установки необходимых пакетов, убедившись, что версия PyTorch >= 1.1.
Настроить использование ГП: Установите переменную окружения `CUDA_VISIBLE_DEVICES` на желаемый индекс ГП перед запуском блокнотов.
Запустить блокноты: Откройте и выполните предоставленные Jupyter блокноты в директории `./notebooks/`.
Скачать наборы данных: Блокноты автоматически скачают необходимые наборы данных (1-5 ГБ).
Варианты использования Neural Oblivious Decision Ensembles
- Классификация табличных данных
- Регрессия табличных данных
- Исследования в области глубокого обучения
- Альтернативы инжинирингу признаков
- Исследования интерпретируемости моделей







