practice04/README.md

78 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа 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** позволяет находить аномальные объекты как на синтетических, так и на реальных данных.