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