В данном репозитории вы можете найти реализацию алгоритма для оптимизации гиперпараметров, базирующемся на объединении априорной и апостериорной информации об обучении для того или иного датасета.
В папке src
лежит основной код реализации модели. Непосредственно в файле hpo.py находится основной код для запуска обучения. Результаты расчёта метрики для вычисления схожести датасетов находится в папке metrics
. Сводная таблица по получившимся результатам представлена в файле FINAL_RESULTS.numbers.
Логи с обучения можно найти в <date-time>-training.log.
В папке optimization_results
можно найти результаты обучения и состояние оптимизатора после каждой итерации в формате /optimization_results/<maximizer>-<acquisition_function>-<model_type>/dataset_name/, где:
<maximizer> = {"random", "scipy", "differential_evolution"}
<acquisition_function> = {"ei", "log_ei", "lcb", "pi"}
<model_type> = {"gp", "gp_mcmc", "rf", "bohamiann", "dngo"}
Обучение может быть возобновлено после любой сохранённой итерации.
Графики для каждого датасета можно найти в папке png
после каждой сессии обучения.
Для запуска модели требуется python>=3.7
с соответствующим pip3
. Сперва необходимо установить RoBO.
Датасеты должны располагаться в папке ./datasets
в .csv
формате.
Список подходящих под задачу датасетов можно найти в файле datasets-links.txt
, все датасеты взяты с открытого ресурса OpenML. В файле datasets-info.csv
представлена информация по каждому датасету (число классов, признаков и др.). Скрипт для скачивания нужных датасетов реализован в файле get-datasets.py.
Для запуска модели достаточно просто запустить файл с основным кодом из корня репозитория:
python3 ./src/hpo.py
NOTE: Для запуска необходимо сначала выкачать датасеты для обучения согласно предыдущему пункту.