- Задача: бинарная классификация на синтетических данных (
sklearn.make_classification) - Модель:
RandomForestClassifier - Поиск гиперпараметров: ручной
GridSearchпо сетке - Валидация:
StratifiedKFold
Логируются:
- Датасет (объединённый
X+yв CSV) - Гиперпараметры каждой модели
- Метрики: accuracy, ROC AUC (по фолдам и усреднённые значения)
- Лучшая модель (pickle/joblib)
- Таблица результатов всех запусков (CSV)
- ROC/PR-кривые по кросс-валидации (PNG)
Основной код генерации данных, обучения и кросс-валидации общий (src/common_experiment.py), а различается только обвязка логирования для каждого инструмента.
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtsrc/common_experiment.py: общая логика - генерация данных, валидация, оптимизация гиперпараметров, сохранение артефактов (датасет, метрики, кривые, лучшая модель).src/run_mlflow.py: запуск эксперимента с логированием в MLflow.src/run_clearml.py: запуск с логированием в ClearML.src/run_comet.py: запуск с логированием в Comet ML.artifacts/: локальные артефакты
- Установить зависимости (см.
requirements.txt). - Запустить локальный MLflow:
mlflow ui
mlflow server --host 127.0.0.1 --port 8085Запуск эксперимента:
cd src
python run_mlflow.py- Установить и запустить ClearML Server или использовать облачный.
- Сконфигурировать ClearML CLI:
clearml-initЗапуск эксперимента:
cd src
python run_clearml.py- Зарегистрироваться в Comet ML и создать API key в настройках аккаунта.
- Добавить переменные окружения (например, в
.envв корне проекта):
COMET_API_KEY=your_comet_api_key
COMET_WORKSPACE=your_workspace_name
COMET_PROJECT_NAME=synthetic-experiments- Установить зависимости (включая
comet-ml):
pip install -r requirements.txtЗапуск эксперимента:
cd src
python run_comet.py