Проект по дисциплине: МДК 13.01 Основы применения методов искусственного интеллекта в программировании
Практическое занятие №5: Масштабирование признаков
В рамках данного практического занятия была выполнена задача масштабирования признаков датасета Iris с использованием библиотек Pandas, Scikit-learn, Seaborn и Plotly.
Целью работы являлось изучение влияния различных методов масштабирования на производительность модели машинного обучения и визуализация результатов масштабирования.
2.1.1. Скрипт main.py
2.1.2. Скрипт data_loader.py
2.1.3. Скрипт data_visualizer.py
2.1.4. Скрипт scaler.py
2.1.5. Скрипт model_trainer.py
В ходе работы применялись следующие методы:
- Загрузка данных: Загрузка данных из CSV-файла с использованием Pandas.
- Визуализация данных:
- Диаграмма рассеяния (Plotly): Для визуализации распределения признаков до и после масштабирования.
- Гистограммы (Matplotlib, Seaborn): Для анализа распределения признаков до и после масштабирования.
- Масштабирование признаков: Применение StandardScaler, MinMaxScaler и RobustScaler к признакам датасета.
- Обучение модели и оценка результатов: Обучение логистической регрессии и оценка точности на исходных и масштабированных данных.
Для обработки данных и построения графиков использовались следующие алгоритмы:
- StandardScaler: Для стандартизации признаков.
- MinMaxScaler: Для масштабирования признаков в диапазоне [0, 1].
- RobustScaler: Для масштабирования признаков с учетом выбросов.
- Логистическая регрессия: Для классификации видов Iris.
- Объектно-ориентированное программирование (ООП): Использована объектно-ориентированная парадигма для организации кода, разделение ответственности между классами
DataLoader
,DataVisualizer
,Scaler
иModelTrainer
. - Принципы SOLID, KISS и DRY: Применен подход, обеспечивающий гибкость, простоту и отсутствие дублирования кода.
- Предполагается, что данные, загруженные из CSV-файла, корректны и не содержат ошибок.
- Использована логистическая регрессия, которая может не быть оптимальной для данного набора данных.
- Оценка производительности модели ограничена точностью (accuracy).
- Python: основной язык программирования.
- Pandas: для загрузки и обработки данных.
- Scikit-learn: для машинного обучения (масштабирование, логистическая регрессия).
- Matplotlib: для создания статических графиков.
- Seaborn: для улучшения визуализации графиков.
- Plotly: для создания интерактивных графиков.
- Requests: для загрузки данных из URL.
Данные были взяты из репозитория: https://github.com/fcschmidt/knn_iris_dataset/blob/master/datasets/iris/Iris.csv. Формат данных - CSV. Набор данных содержит информацию о цветках Iris, включая длину чашелистика, ширину чашелистика, длину лепестка, ширину лепестка и вид.
- Удален столбец 'Id', как нерелевантный признак.
- Разделение данных на признаки (X) и целевую переменную (y).
- Масштабирование признаков с использованием StandardScaler, MinMaxScaler и RobustScaler.
Графики показывают распределение SepalLengthCm и SepalWidthCm до масштабирования.
Графики показывают распределение признаков после масштабирования StandardScaler.
Графики показывают распределение признаков после масштабирования MinMaxScaler.
Графики показывают распределение признаков после масштабирования RobustScaler.
- Точность модели на исходных данных: 1.0000
- Точность модели на данных, масштабированных StandardScaler: 0.9667
- Точность модели на данных, масштабированных MinMaxScaler: 0.9000
- Точность модели на данных, масштабированных RobustScaler: 0.9667
- Масштабирование признаков влияет на производительность модели логистической регрессии.
- Разные методы масштабирования (StandardScaler, MinMaxScaler, RobustScaler) могут давать разные результаты.
- Визуализация данных помогает понять влияние масштабирования на распределение признаков.
- Использовать другие модели машинного обучения для классификации Iris.
- Применить другие методы оценки производительности модели (например, F1-score, ROC AUC).
- Исследовать влияние других параметров масштабирования и модели на результаты.
В ходе данного проекта были применены навыки масштабирования признаков, визуализации данных и обучения модели машинного обучения с использованием библиотек Python. Это позволило изучить влияние различных методов масштабирования на производительность модели и получить полезные выводы.
Этот проект распространяется под лицензией MIT - смотрите файл LICENSE для деталей.
Бедин Владислав (MindlessMuse666)
- GitHub: MindlessMuse666
- Telegram: @mindless_muse
- Gmail: mindlessmuse.666@gmail.com