Обновлён README для Учебной практике по scikit-learn

This commit is contained in:
Александр Мамаев 2026-05-24 01:24:32 +03:00
parent f76fbb15e8
commit 9bafa16ed1

View File

@ -1,11 +1,78 @@
# Лабораторная 4: scikit-learn
# Лабораторная работа 4: scikit-learn
В рамках работы использованы:
- базовый пример MLPClassifier на датасете Iris;
- пример LOF (Local Outlier Factor) из раздела Nearest Neighbors.
## Описание
## Как запустить
- python -m venv venv
- venv\Scripts\activate
- pip install -r requirements.txt
- jupyter lab
В данной лабораторной работе используется библиотека **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** позволяет находить аномальные объекты как на синтетических, так и на реальных данных.