Skip to content

Проект по масштабированию признаков датасета Iris с использованием Python, Pandas, Scikit-learn, Seaborn и Plotly. Включает визуализацию данных, применение различных методов масштабирования и оценку производительности модели логистической регрессии.

License

Notifications You must be signed in to change notification settings

MindlessMuse666/features-scaling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Масштабирование признаков и обучение модели Iris MIT-License image

Проект по дисциплине: МДК 13.01 Основы применения методов искусственного интеллекта в программировании

Практическое занятие №5: Масштабирование признаков

1. Введение

В рамках данного практического занятия была выполнена задача масштабирования признаков датасета Iris с использованием библиотек Pandas, Scikit-learn, Seaborn и Plotly.

Целью работы являлось изучение влияния различных методов масштабирования на производительность модели машинного обучения и визуализация результатов масштабирования.

2. Скриншоты выполненного задания и конспекта лекции

2.1. Выполненное задание

2.1.1. Скрипт main.py

main.py

2.1.2. Скрипт data_loader.py

data_loader.py

2.1.3. Скрипт data_visualizer.py

data_visualizer.py

2.1.4. Скрипт scaler.py

scaler.py

2.1.5. Скрипт model_trainer.py

model_trainer.py

2.2. Конспект лекции

lecture-notes-1.jpg lecture-notes-2.jpg lecture-notes-3.jpg

3. Методика и подходы

3.1. Методы

В ходе работы применялись следующие методы:

  • Загрузка данных: Загрузка данных из CSV-файла с использованием Pandas.
  • Визуализация данных:
    • Диаграмма рассеяния (Plotly): Для визуализации распределения признаков до и после масштабирования.
    • Гистограммы (Matplotlib, Seaborn): Для анализа распределения признаков до и после масштабирования.
  • Масштабирование признаков: Применение StandardScaler, MinMaxScaler и RobustScaler к признакам датасета.
  • Обучение модели и оценка результатов: Обучение логистической регрессии и оценка точности на исходных и масштабированных данных.

3.2. Алгоритмы

Для обработки данных и построения графиков использовались следующие алгоритмы:

  • StandardScaler: Для стандартизации признаков.
  • MinMaxScaler: Для масштабирования признаков в диапазоне [0, 1].
  • RobustScaler: Для масштабирования признаков с учетом выбросов.
  • Логистическая регрессия: Для классификации видов Iris.

3.3. Подходы

  • Объектно-ориентированное программирование (ООП): Использована объектно-ориентированная парадигма для организации кода, разделение ответственности между классами DataLoader, DataVisualizer, Scaler и ModelTrainer.
  • Принципы SOLID, KISS и DRY: Применен подход, обеспечивающий гибкость, простоту и отсутствие дублирования кода.

3.4. Допущения и ограничения

  • Предполагается, что данные, загруженные из CSV-файла, корректны и не содержат ошибок.
  • Использована логистическая регрессия, которая может не быть оптимальной для данного набора данных.
  • Оценка производительности модели ограничена точностью (accuracy).

3.5. Инструменты, библиотеки и технологии

  • Python: основной язык программирования.
  • Pandas: для загрузки и обработки данных.
  • Scikit-learn: для машинного обучения (масштабирование, логистическая регрессия).
  • Matplotlib: для создания статических графиков.
  • Seaborn: для улучшения визуализации графиков.
  • Plotly: для создания интерактивных графиков.
  • Requests: для загрузки данных из URL.

4. Результаты

4.1. Краткое описание данных

Данные были взяты из репозитория: https://github.com/fcschmidt/knn_iris_dataset/blob/master/datasets/iris/Iris.csv. Формат данных - CSV. Набор данных содержит информацию о цветках Iris, включая длину чашелистика, ширину чашелистика, длину лепестка, ширину лепестка и вид.

4.2. Предварительная обработка данных

  • Удален столбец 'Id', как нерелевантный признак.
  • Разделение данных на признаки (X) и целевую переменную (y).
  • Масштабирование признаков с использованием StandardScaler, MinMaxScaler и RobustScaler.

4.3. Графики и диаграммы

4.3.1. Графики до масштабирования

Графики показывают распределение SepalLengthCm и SepalWidthCm до масштабирования.

Гистограммы Seaborn

Гистограмма Seaborn до масштабирования

Диаграмма рассеяния Plotly

Диаграмма рассеяния Plotly SepalLengthCm vs SepalWidthCm до масштабирования

4.3.2. Графики после StandardScaler

Графики показывают распределение признаков после масштабирования StandardScaler.

Гистограммы Seaborn

Гистограммы Seaborn после StandardScaler

Диаграмма рассеяния Plotly

Диаграмма рассеяния Plotly после StandardScaler

4.3.3. Графики после MinMaxScaler

Графики показывают распределение признаков после масштабирования MinMaxScaler.

Гистограммы Seaborn

Гистограммы Seaborn после MinMaxScaler

Диаграмма рассеяния Plotly

Диаграмма рассеяния Plotly после MinMaxScaler

4.3.4. Графики после RobustScaler

Графики показывают распределение признаков после масштабирования RobustScaler.

Гистограммы Seaborn

Гистограммы Seaborn после RobustScaler

Диаграмма рассеяния Plotly

Диаграмма рассеяния Plotly после RobustScaler

5. Анализ результатов

5.1. Точность модели на различных данных

  • Точность модели на исходных данных: 1.0000
  • Точность модели на данных, масштабированных StandardScaler: 0.9667
  • Точность модели на данных, масштабированных MinMaxScaler: 0.9000
  • Точность модели на данных, масштабированных RobustScaler: 0.9667

Точность моделей

5.2. Выводы

  • Масштабирование признаков влияет на производительность модели логистической регрессии.
  • Разные методы масштабирования (StandardScaler, MinMaxScaler, RobustScaler) могут давать разные результаты.
  • Визуализация данных помогает понять влияние масштабирования на распределение признаков.

5.3. Обсуждение возможных улучшений

  • Использовать другие модели машинного обучения для классификации Iris.
  • Применить другие методы оценки производительности модели (например, F1-score, ROC AUC).
  • Исследовать влияние других параметров масштабирования и модели на результаты.

6. Заключение

В ходе данного проекта были применены навыки масштабирования признаков, визуализации данных и обучения модели машинного обучения с использованием библиотек Python. Это позволило изучить влияние различных методов масштабирования на производительность модели и получить полезные выводы.

7. Лицензия

Этот проект распространяется под лицензией MIT - смотрите файл LICENSE для деталей.

8. Автор

Бедин Владислав (MindlessMuse666)

About

Проект по масштабированию признаков датасета Iris с использованием Python, Pandas, Scikit-learn, Seaborn и Plotly. Включает визуализацию данных, применение различных методов масштабирования и оценку производительности модели логистической регрессии.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages