Add model selection: GridSearchCV vs HalvingGridSearchCV with 5 plots

This commit is contained in:
Антон Репин 2026-05-07 17:44:47 +03:00
parent d58c14e105
commit 6801b3408c
2 changed files with 515 additions and 1 deletions

105
README.md
View File

@ -1 +1,106 @@
\# Сравнение GridSearchCV и HalvingGridSearchCV для подбора гиперпараметров SVM
\## Описание проекта
В рамках задания по теме «Искусственные нейронные сети: первые шаги» выполнено сравнение двух методов подбора гиперпараметров для классификатора SVM:
\- \*\*GridSearchCV\*\* полный перебор всех комбинаций гиперпараметров.
\- \*\*HalvingGridSearchCV\*\* итеративный отсев неперспективных комбинаций (Successive Halving).
\## Используемые алгоритмы и данные
\### Алгоритмы
\- `SVC` метод опорных векторов из библиотеки scikit-learn.
\- `GridSearchCV` полный перебор с кросс-валидацией.
\- `HalvingGridSearchCV` итеративный подбор гиперпараметров.
\### Данные
1\. \*\*Синтетические\*\* сгенерированы через `make\_classification` (1000 образцов, 20 признаков).
2\. \*\*Реальные\*\* встроенный датасет Wine (178 образцов, 13 признаков, 3 класса).
\## Результаты работы
\### Синтетические данные
\- \*\*HalvingGridSearchCV\*\* выполнился за \~1.2 секунды.
\- \*\*GridSearchCV\*\* выполнился за \~4.8 секунды.
\- Ускорение: \~4 раза.
\### Реальные данные (Wine)
\- \*\*HalvingGridSearchCV\*\* выполнился за \~0.8 секунды.
\- \*\*GridSearchCV\*\* выполнился за \~0.25 секунды.
\- На малом датасете GridSearchCV может быть быстрее, но Halving показывает сопоставимое качество за меньшее количество итераций.
\### Ключевые выводы
\- HalvingGridSearchCV значительно ускоряет подбор параметров на больших сетках.
\- При малом объёме данных преимущество может быть не таким заметным.
\- Тепловые карты позволяют наглядно сравнить области оптимальных параметров.
\## Графики и визуализация
В ноутбуке `week4\_model\_selection.ipynb` построены:
\- Тепловые карты для синтетических данных (Halving и GridSearch)
\- Тепловые карты для датасета Wine (Halving и GridSearch)
\- Столбчатая диаграмма сравнения времени выполнения
\## Файлы в репозитории
\- `week4\_model\_selection.ipynb` основной Jupyter Notebook с кодом и анализом.
\- `requirements.txt` список зависимостей для воспроизведения окружения.
\- `.gitignore` исключённые файлы (виртуальное окружение, кеши).
\- `README.md` описание проекта.
\## Запуск проекта
1\. Клонировать репозиторий:
```bash
git clone https://git.vyatsu.ru/stud203996/scikit\_learn\_lab.git
cd scikit\_learn\_lab

409
week4_scikit_learn.ipynb Normal file

File diff suppressed because one or more lines are too long