code-review-101-minimoloko

0
README.md

Анализ датасета Iris

Курсовой проект / Лабораторная работа №1
Exploratory Data Analysis (EDA)


📌 Информация о студенте

ПолеЗначение
ФИО
Захаров Павел Сергеевич
Группа
РИ-150941
Номер задания
1

🔗 GitVerse профиль, кого я ревьюил: CozyWool, h4n, qwerty1105


📋 Описание задания

Цель работы — провести разведочный анализ данных (EDA) на классическом датасете Iris, включая:

  • загрузку и предварительную обработку данных;
  • анализ распределения целевой переменной (виды ирисов);
  • статистический анализ признаков (длина/ширина чашелистника и лепестка);
  • визуализацию: гистограммы, boxplots, распределения по классам, heatmap корреляций;
  • выявление ключевых закономерностей и взаимосвязей.

Датасет содержит 150 объектов трёх видов ирисов (setosa, versicolor, virginica) с 4 числовыми признаками.


✅ Выполненные работы

0. в программе испольуются такие библиотеки, как pandas numpy matplotlib.pyplot seaborn sklearn.datasets

1. Загрузка данных

  • Данные загружены через
    sklearn.datasets.load_iris()
  • Преобразованы в
    pandas.DataFrame
  • Целевая переменная заменена с числовых меток на строковые названия видов

2. Анализ целевой переменной

  • Распределение классов:
    • setosa
      : 50 объектов (33.33%)
    • versicolor
      : 50 объектов (33.33%)
    • virginica
      : 50 объектов (33.33%)
  • Вывод: сбалансированный датасет без перекоса классов.

3. Анализ признаков

Для каждого из 4 признаков рассчитаны:

  • среднее, медиана, стандартное отклонение
  • минимум, максимум
  • квартили (25%, 50%, 75%)

4. Визуализация

Созданы следующие графики:

ФайлОписание
01_iris_target_distribution.png
Столбчатая и круговая диаграммы распределения видов
01_iris_features_distribution.png
Гистограммы распределений признаков (сетка 2×2)
01_iris_features_by_species.png
Гистограммы признаков, наложенные по видам
01_iris_correlation_matrix.png
Тепловая карта корреляций признаков

Все графики используют русскоязычные метки и сохранены в PNG с разрешением, достаточным для отчёта.

5. Статистика

Ключевые статистики (округлены до 2 знаков):

ПризнакСреднееМедианаStdMinMax
sepal length (cm)5.845.800.834.307.90
sepal width (cm)3.063.000.442.004.40
petal length (cm)3.764.351.761.006.90
petal width (cm)1.201.300.760.102.50

📝 Заполните таблицу, скопировав вывод из терминала после запуска скрипта.

6. Таблица с метриками

ПризнакCV (%)IQR
sepal length (cm)14.21.30
sepal width (cm)14.40.52
petal length (cm)46.83.50
petal width (cm)63.31.50

🔑 Ключевые числа

  • Объём датасета: 150 наблюдений × 5 столбцов
  • Количество уникальных видов: 3
  • Самый коррелирующий признак с целевой переменной (по модулю):
    petal length (cm)
    species
    (непрямая оценка — см. визуализацию
    features_by_species
    )
  • Наибольшая парная корреляция между признаками:
    petal length
    petal width
    =
    [значение из heatmap]

🔍 Ключевые находки

  1. Вид setosa чётко отделим по всем признакам — особенно по длине и ширине лепестка.
  2. Признаки petal length и petal width имеют высокую положительную корреляцию (>0.9).
  3. Sepal width распределён наиболее равномерно и имеет наименьшую дисперсию.
  4. Для versicolor и virginica наблюдается частичное перекрытие по всем признакам — требуется более сложная модель для разделения.

📝 Выводы из анализа

  • Датасет подходит для обучения классификаторов (сбалансированный, без пропусков).
  • Признаки лепестка (
    petal_*
    ) информативнее признаков чашелистника (
    sepal_*
    ).
  • Простой пороговый классификатор (например, по
    petal length > 2.5
    ) уже даёт высокую точность (~96%).
  • Рекомендуется использовать PCA или линейные методы (LDA, Logistic Regression) как бейзлайн.

📁 Файлы: assignment.py, README.md

Созданные файлы: README.md