В этом репозитории я реализую и запускаю четыре вида моделей (Catboost, MLP, TabNet и ResNet) на нескольких задачах регрессии, предложенных авторами статьи. В качестве скоринга во всех датасетах используется r2_score
. В качестве сравнения я использую неинформативные признаки (для наборов данных с [1, 5, 20]_trash_features
в названии) и случайный поворот матрицы признаков (_rotated
)
В отличие от авторов, использующих случайный поиск, я использую отбор гиперпараметров с помощью Optuna
, что должно уменьшить число запусков до сходимости -- с 200 у авторов до 100 у меня. Логирование осуществляется в wandb, а также в папку images_final
.
- Установите зависимости:
pip3 install -r requirements.txt
- Выберите нужный конфиг (датасет, модель, число итераций отбора параметров) в теле файла
src/test.py
- Запустите обучение:
python3 src/test.py
- При необходимости, сгенерируйте новые данные с помощью файлов
src/make_rotation.py
,src/make_trash_features.py
, добвьте новые модели (реализуйте новые функцииobjective_XXX(trial)
вsrc/test.py
)
wine | fifa |
---|---|
![]() |
![]() |
wine | fifa |
---|---|
![]() |
![]() |
wine | fifa |
---|---|
![]() |
![]() |
wine | fifa |
---|---|
![]() |
![]() |
wine | fifa |
---|---|
![]() |
![]() |
wine | fifa |
---|---|
![]() |
![]() |
--- | --- |
---|---|
Boosting | MLP |
![]() |
![]() |
ResNet | TabNet |
![]() |
![]() |
Отчёт в wandb: https://wandb.ai/shishckova/tabular_final