Обновлён README для Учебной практике по scikit-learn
This commit is contained in:
parent
f76fbb15e8
commit
9bafa16ed1
85
README.md
85
README.md
@ -1,11 +1,78 @@
|
|||||||
# Лабораторная 4: scikit-learn
|
# Лабораторная работа 4: scikit-learn
|
||||||
|
|
||||||
В рамках работы использованы:
|
## Описание
|
||||||
- базовый пример MLPClassifier на датасете Iris;
|
|
||||||
- пример LOF (Local Outlier Factor) из раздела Nearest Neighbors.
|
|
||||||
|
|
||||||
## Как запустить
|
В данной лабораторной работе используется библиотека **scikit-learn** для решения двух задач:
|
||||||
- python -m venv venv
|
|
||||||
- venv\Scripts\activate
|
1. Базовый пример классификации с помощью `MLPClassifier` на датасете **Iris**.
|
||||||
- pip install -r requirements.txt
|
2. Обнаружение выбросов с помощью метода **Local Outlier Factor (LOF)**:
|
||||||
- jupyter lab
|
- на синтетических данных (`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** позволяет находить аномальные объекты как на синтетических, так и на реальных данных.
|
||||||
Loading…
Reference in New Issue
Block a user