# Лабораторная работа 4: scikit-learn ## Описание В данной лабораторной работе используется библиотека **scikit-learn** для решения двух задач: 1. Базовый пример классификации с помощью `MLPClassifier` на датасете **Iris**. 2. Обнаружение выбросов с помощью метода **Local Outlier Factor (LOF)**: - на синтетических данных (`make_moons` + искусственно добавленные выбросы), - на реальном датасете **Credit Card Fraud** из OpenML. ## Цель работы Изучить базовые возможности библиотеки **scikit-learn** и применить её: - для построения модели классификации, - для решения задачи обнаружения аномалий. ## Выполненные задания ### 1. Классификация с помощью MLPClassifier - Загружен стандартный датасет **Iris**. - Выполнено разбиение выборки на обучающую и тестовую части. - Обучена модель `MLPClassifier`. - Получены метрики качества с помощью `classification_report`. ### 2. Исследование влияния `max_iter` - Проверено, как изменение параметра `max_iter` влияет на обучение модели. - Сравнены результаты при меньшем числе итераций и при `max_iter = 2500`. - Сделан вывод о том, что увеличение числа итераций позволяет модели лучше сходиться, но на простом датасете Iris заметный прирост качества обычно невелик. ### 3. Обнаружение выбросов методом LOF на синтетических данных - Сгенерирован датасет `make_moons`. - Добавлены искусственные выбросы. - Данные масштабированы с помощью `StandardScaler`. - Обучен `LocalOutlierFactor`. - Построены графики исходных и предсказанных выбросов. ### 4. Обнаружение выбросов методом LOF на реальных данных - Загружен датасет **Credit Card Fraud** из OpenML. - Выбраны числовые признаки. - Выполнено масштабирование признаков. - Применён `LocalOutlierFactor`. - Для визуализации использован `PCA` до двух компонент. ## Используемые библиотеки - `scikit-learn` - `numpy` - `pandas` - `matplotlib` - `openml` ## Структура проекта - `week4_scikit_learn.ipynb` — основной Jupyter Notebook с выполнением лабораторной работы. - `README.md` — описание проекта. ## Запуск 1. Установить необходимые библиотеки: ```bash pip install scikit-learn numpy pandas matplotlib openml notebook ``` 2. Запустить Jupyter Notebook: ```bash jupyter notebook ``` 3. Открыть файл: ```bash week4_scikit_learn.ipynb ``` ## Краткий вывод В ходе работы были изучены базовые инструменты библиотеки **scikit-learn** для задач классификации и обнаружения выбросов. Было показано, что `MLPClassifier` хорошо работает на датасете Iris, а метод **LOF** позволяет находить аномальные объекты как на синтетических, так и на реальных данных.