code-review-101-DoSomePushups

0
README.md

Анализ датасета Wine Quality (Exploratory Data Analysis)

0. Информация о рецензируемых работах

Оставлял рецензии для:

  • AnastasiaKoo
  • IlyaKonovalov
  • Dr1mzz

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

Бусыгин Степан Алексеевич РИ-150942/1 задание №8

2. Описание задания

Цель анализа

Провести комплексный анализ датасета Wine Quality (mnemoraorg/wine-quality-6k4) для выявления факторов, влияющих на качество красного вина. Датасет содержит физико-химические характеристики вин и экспертные оценки их качества.

Источник данных

  • Датасет: mnemoraorg/wine-quality-6k4
  • Платформа: Hugging Face Datasets
  • Структура: 6497 образцов красного вина с 11 физико-химическими признаками

Что анализировалось

  • Целевая переменная: Quality (оценка качества вина от 3 до 9)
  • Физико-химические признаки:
    • Fixed Acidity (фиксированная кислотность)
    • Volatile Acidity (летучая кислотность)
    • Citric Acid (лимонная кислота)
    • Residual Sugar (остаточный сахар)
    • Chlorides (хлориды)
    • Free Sulfur Dioxide (свободный диоксид серы)
    • Total Sulfur Dioxide (общий диоксид серы)
    • Density (плотность)
    • pH (pH вина)
    • Sulphates (сульфаты)
    • Alcohol (содержание алкоголя)

3. Выполненные работы

3.1 Загрузка и подготовка данных

Функция:

load_data()

Скрипт успешно загрузил датасет из Hugging Face:

✓ Датасет загружен с Hugging Face (mnemoraorg/wine-quality-6k4)

Статистика загрузки:

  • ✓ Успешно загружено 6497 строк (в 4 раза больше, чем ожидалось!)
  • ✓ 12 столбцов (11 признаков + целевая переменная quality)
  • ✓ Нет пропущенных значений
  • ✓ Все признаки численные (float64)

Примечание: Датасет содержит дополнительные образцы по сравнению с исходным UCI датасетом (6497 вместо 1599), что позволяет провести более статистически надежный анализ.

3.2 Анализ целевой переменной (Quality)

Функция:

target_analysis(df)

Распределение оценок качества:

ОценкаКоличествоПроцент
3300.5%
42163.3%
5213832.9%
6283643.7%
7107916.6%
81933.0%
950.1%

Статистика качества:

  • Среднее значение: 5.82
  • Медиана: 6.00
  • Стандартное отклонение: 0.87
  • Минимум: 3
  • Максимум: 9
  • Q1 (25-й процентиль): 5.00
  • Q3 (75-й процентиль): 6.00
  • Interquartile Range (IQR): 1.00

Выводы:

  • Большинство образцов имеют оценку 5-6 (76.6% всех образцов)
  • Распределение близко к нормальному, слегка смещено влево
  • Пик находится на оценке 6 (43.7% образцов) - мода датасета
  • Крайние значения (3 и 9) редки
  • Датасет хорошо сбалансирован между низким, средним и высоким качеством

3.3 Анализ признаков

Функция:

feature_statistics(df)

Описательная статистика физико-химических свойств:

ПризнакСреднееСтд.отклонМинМакс
Fixed Acidity7.2151.2963.80015.900
Volatile Acidity0.3400.1650.0801.580
Citric Acid0.3190.1450.0001.660
Residual Sugar5.4434.7580.60065.800
Chlorides0.0560.0350.0090.611
Free SO₂30.52517.7491.000289.000
Total SO₂115.74556.5226.000440.000
Density0.9950.0030.9871.039
pH3.2190.1612.7204.010
Sulphates0.5310.1490.2202.000
Alcohol10.4921.1938.00014.900

Ключевые наблюдения:

  • Density: наиболее стабильный признак (мало вариативности, стд = 0.003)
  • Residual Sugar: наибольшая вариативность (стд = 4.758)
  • pH: относительно узкий диапазон (2.72-4.01), типично для вина
  • Alcohol: варьируется от 8% до 14.9%, среднее 10.5%
  • Sulphates: используются как консервант, среднее 0.531 г/л

3.4 Визуализация

Созданные графики:

  1. 08_wine_quality_target_distribution.png

    • Функция:
      visualize_target(df)
    • Столбчатая диаграмма распределения качества
    • KDE график плотности распределения
    • Показывает четкий пик на оценке 6
  2. 08_wine_quality_features_distribution.png

    • Функция:
      visualize_features(df)
    • Гистограммы для всех 11 признаков
    • На каждой отмечены среднее и медиана
    • Показывает разнообразие форм распределений
  3. 08_wine_quality_vs_features.png

    • Функция:
      scatter_quality_relationships(df)
    • 6 scatter plot графиков (первые 6 признаков vs качество)
    • Линии тренда для каждого признака
    • Визуально показывает силу связи между признаками и качеством
  4. 08_wine_quality_correlation_bars.png

    • Функция:
      correlation_analysis(df)
    • Горизонтальная диаграмма корреляций
    • Зелёные столбцы = положительная корреляция
    • Красные столбцы = отрицательная корреляция
  5. 08_wine_quality_by_category.png

    • Функция:
      quality_categories_analysis(df)
    • Box plot графики топ-3 признаков по категориям качества
    • Сравнивает характеристики вин низкого, среднего и высокого качества

4. Статистика и ключевые метрики

4.1 Общие метрики датасета

МетрикаЗначение
Размер датасета6497 образцов
Количество признаков11
Целевых переменных1 (quality)
Пропущенные значения0
Тип задачиРегрессия + Классификация

4.2 Метрики целевой переменной (Quality)

МетрикаЗначение
Mean (Среднее)5.82
Std Dev (Стд. откл.)0.87
Min3
Max9
Median (Медиана)6.00
Q15.00
Q36.00
Mode (Мода)6.00

4.3 Корреляции признаков с качеством

ПризнакКорреляцияИнтерпретация
Alcohol0.4443Средняя положительная
Citric Acid0.0855Очень слабая положительная
Free SO₂0.0555Очень слабая положительная
Sulphates0.0385Очень слабая положительная
pH0.0195Практически нет связи
Residual Sugar-0.0370Очень слабая отрицательная
Total SO₂-0.0414Очень слабая отрицательная
Fixed Acidity-0.0767Очень слабая отрицательная
Chlorides-0.2007Слабая отрицательная
Volatile Acidity-0.2657Слабая отрицательная
Density-0.3059Слабая отрицательная

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

  • Alcohol - главный позитивный предиктор (r=0.44)
  • Density - самый сильный негативный предиктор (r=-0.31)
  • Volatile Acidity - второй по силе негативный предиктор (r=-0.27)

4.4 Категоризация качества

Разделение на категории:

  • Low (3-5): 2384 образцов (36.7%)
  • Medium (6-7): 3915 образцов (60.3%)
  • High (8+): 198 образцов (3.0%)

Характеристики топ-3 признаков по категориям:

ХарактеристикаLowMediumHigh
Среднее содержание алкоголя, %9.9810.5611.42
Средняя плотность0.99650.99500.9938
Средняя летучая кислотность0.4230.3190.283

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

5.1 Главные факторы, влияющие на качество вина

  1. Содержание алкоголя (Alcohol) - ГЛАВНЫЙ ПОЗИТИВНЫЙ ФАКТОР

    • Коэффициент корреляции: +0.4443 (средняя положительная)
    • Вина с более высоким содержанием алкоголя имеют лучшие оценки
    • High quality (8+): среднее 11.42% vs Low quality (3-5): 9.98%
    • Разница: 1.44% - значительна!
  2. Плотность (Density) - ГЛАВНЫЙ НЕГАТИВНЫЙ ФАКТОР

    • Коэффициент корреляции: -0.3059 (слабая отрицательная)
    • Высокая плотность указывает на меньше алкоголя и больше сахара
    • High quality вина имеют плотность 0.9938 vs Low quality 0.9965
    • Связь опосредована через алкоголь
  3. Летучая кислотность (Volatile Acidity) - ВТОРОЙ НЕГАТИВНЫЙ ФАКТОР

    • Коэффициент корреляции: -0.2657 (слабая отрицательная)
    • Показатель уровня уксусной кислоты (браживание и окисление)
    • High quality: 0.283 г/л vs Low quality: 0.423 г/л
    • Высокое содержание ведёт к "уксусному" вкусу

5.2 Менее значимые факторы

  • Chlorides (-0.2007): хлориды - слабо отрицательный эффект
  • Citric Acid (+0.0855): лимонная кислота - очень слабо положительная

5.3 Практически не влияющие факторы

  • pH (+0.0195): pH - практически нет корреляции
  • Residual Sugar (-0.0370): сахар - практически нет корреляции
  • Total SO₂ (-0.0414): общий SO₂ - минимальное влияние
  • Free SO₂ (+0.0555): свободный SO₂ - минимальное влияние

5.4 Распределение качества

Вывод о качестве датасета:

  • ✅ Датасет хорошо сбалансирован (76.6% вин среднего качества, 36.7% низкого)
  • ✅ Достаточный размер (6497 образцов) для надежной статистики
  • Нет пропусков - чистые данные
  • ⚠️ Небольшой дисбаланс: мало очень плохих вин (0.5%) и очень хороших (3.0%)
  • Два класса (5 и 6) доминируют - это целевой рынок (средние вина)

5.5 Практические рекомендации для производства вина

На основе анализа:

  1. Для повышения качества:

    • Максимизировать содержание алкоголя (сильнейший фактор влияния)
    • Минимизировать летучую кислотность (<0.3 г/л для высокого качества)
    • ✅ Снижать плотность (косвенно - через алкоголь)
  2. Контрольные показатели для высокого качества (≥8):

    • Алкоголь: 11.4% и выше
    • Летучая кислотность: < 0.3 г/л
    • Плотность: < 0.994
  3. Целевые показатели для среднего качества (6-7):

    • Алкоголь: 10.5-10.6%
    • Летучая кислотность: 0.32 г/л
    • Плотность: 0.9950

5.6 Качество анализа

Сильные стороны:

  • Датасет большого размера обеспечивает статистическую надежность
  • Отсутствие пропусков упрощает анализ
  • Четкая связь между алкоголем и качеством
  • Хорошо определены негативные факторы (плотность, летучая кислотность)

Ограничения:

  • Корреляции относительно слабые - другие факторы влияют на качество
  • Субъективность экспертных оценок (оценки даны экспертами, не единой метрикой)
  • Географическое происхождение, сорт винограда не учтены
  • Отсутствие информации о методе производства

6. Файлы

Исходный код:

  • assignment.py
    - основной скрипт с функциями анализа

Графики (PNG, 300 DPI):

  • 08_wine_quality_target_distribution.png
    - распределение целевой переменной
  • 08_wine_quality_features_distribution.png
    - гистограммы признаков
  • 08_wine_quality_vs_features.png
    - scatter plots и тренды
  • 08_wine_quality_correlation_bars.png
    - диаграмма корреляций
  • 08_wine_quality_by_category.png
    - box plots по категориям

Конфигурационные файлы:

  • requirements.txt
    - зависимости Python (pandas, numpy, matplotlib, seaborn, datasets)
  • README.md
    - этот файл

7. Методология анализа

Используемые методы

  1. Описательная статистика - mean, std, min, max, quantiles, mode
  2. Визуальный анализ - гистограммы, KDE, box plots, scatter plots
  3. Корреляционный анализ - коэффициент корреляции Пирсона
  4. Категоризация - разделение на Low/Medium/High качество
  5. Линейная регрессия - для построения линий тренда

Технический стек

  • Python 3.x
  • pandas - манипуляция данными
  • numpy - численные вычисления
  • matplotlib - визуализация
  • seaborn - продвинутая визуализация
  • datasets (Hugging Face) - загрузка датасета

Параметры графиков

  • DPI: 300 (высокое качество для печати)
  • Размер шрифта: 10-13 pt (читаемость)
  • Цветовая схема: контрастная (для доступности)
  • Включены легенды и метки осей

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

Анализ датасета Wine Quality (mnemoraorg/wine-quality-6k4, 6497 образцов) выявил, что содержание алкоголя является главным предиктором качества красного вина (r=0.44), за ним следуют плотность (r=-0.31) и летучая кислотность (r=-0.27).

Датасет показал четкое разделение между низким, средним и высоким качеством, что позволяет:

  • 🍇 Производителям вина оптимизировать процесс ферментации
  • 📊 Data Scientists использовать его для построения моделей предсказания качества
  • 🔬 Исследователям изучать влияние физико-химических факторов на качество напитков

Качество датасета: ОТЛИЧНОЕ - большой размер, чистые данные, хорошая балансировка, четкие паттерны.


Дата анализа: 2025-11-25
Размер датасета: 6497 образцов (mnemoraorg/wine-quality-6k4)
Платформа: Hugging Face Datasets
Автор: Бусыгин Степан