code-review-101-DoSomePushups
Анализ датасета 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 Загрузка и подготовка данных
Функция:
Скрипт успешно загрузил датасет из Hugging Face:
✓ Датасет загружен с Hugging Face (mnemoraorg/wine-quality-6k4)
Статистика загрузки:
- ✓ Успешно загружено 6497 строк (в 4 раза больше, чем ожидалось!)
- ✓ 12 столбцов (11 признаков + целевая переменная quality)
- ✓ Нет пропущенных значений
- ✓ Все признаки численные (float64)
Примечание: Датасет содержит дополнительные образцы по сравнению с исходным UCI датасетом (6497 вместо 1599), что позволяет провести более статистически надежный анализ.
3.2 Анализ целевой переменной (Quality)
Функция:
Распределение оценок качества:
| Оценка | Количество | Процент |
|---|---|---|
| 3 | 30 | 0.5% |
| 4 | 216 | 3.3% |
| 5 | 2138 | 32.9% |
| 6 | 2836 | 43.7% |
| 7 | 1079 | 16.6% |
| 8 | 193 | 3.0% |
| 9 | 5 | 0.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 Анализ признаков
Функция:
Описательная статистика физико-химических свойств:
| Признак | Среднее | Стд.отклон | Мин | Макс |
|---|---|---|---|---|
| Fixed Acidity | 7.215 | 1.296 | 3.800 | 15.900 |
| Volatile Acidity | 0.340 | 0.165 | 0.080 | 1.580 |
| Citric Acid | 0.319 | 0.145 | 0.000 | 1.660 |
| Residual Sugar | 5.443 | 4.758 | 0.600 | 65.800 |
| Chlorides | 0.056 | 0.035 | 0.009 | 0.611 |
| Free SO₂ | 30.525 | 17.749 | 1.000 | 289.000 |
| Total SO₂ | 115.745 | 56.522 | 6.000 | 440.000 |
| Density | 0.995 | 0.003 | 0.987 | 1.039 |
| pH | 3.219 | 0.161 | 2.720 | 4.010 |
| Sulphates | 0.531 | 0.149 | 0.220 | 2.000 |
| Alcohol | 10.492 | 1.193 | 8.000 | 14.900 |
Ключевые наблюдения:
- Density: наиболее стабильный признак (мало вариативности, стд = 0.003)
- Residual Sugar: наибольшая вариативность (стд = 4.758)
- pH: относительно узкий диапазон (2.72-4.01), типично для вина
- Alcohol: варьируется от 8% до 14.9%, среднее 10.5%
- Sulphates: используются как консервант, среднее 0.531 г/л
3.4 Визуализация
Созданные графики:
-
08_wine_quality_target_distribution.png
- Функция: visualize_target(df)
- Столбчатая диаграмма распределения качества
- KDE график плотности распределения
- Показывает четкий пик на оценке 6
- Функция:
-
08_wine_quality_features_distribution.png
- Функция: visualize_features(df)
- Гистограммы для всех 11 признаков
- На каждой отмечены среднее и медиана
- Показывает разнообразие форм распределений
- Функция:
-
08_wine_quality_vs_features.png
- Функция: scatter_quality_relationships(df)
- 6 scatter plot графиков (первые 6 признаков vs качество)
- Линии тренда для каждого признака
- Визуально показывает силу связи между признаками и качеством
- Функция:
-
08_wine_quality_correlation_bars.png
- Функция: correlation_analysis(df)
- Горизонтальная диаграмма корреляций
- Зелёные столбцы = положительная корреляция
- Красные столбцы = отрицательная корреляция
- Функция:
-
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 |
| Min | 3 |
| Max | 9 |
| Median (Медиана) | 6.00 |
| Q1 | 5.00 |
| Q3 | 6.00 |
| Mode (Мода) | 6.00 |
4.3 Корреляции признаков с качеством
| Признак | Корреляция | Интерпретация |
|---|---|---|
| Alcohol | 0.4443 | Средняя положительная |
| Citric Acid | 0.0855 | Очень слабая положительная |
| Free SO₂ | 0.0555 | Очень слабая положительная |
| Sulphates | 0.0385 | Очень слабая положительная |
| pH | 0.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 признаков по категориям:
| Характеристика | Low | Medium | High |
|---|---|---|---|
| Среднее содержание алкоголя, % | 9.98 | 10.56 | 11.42 |
| Средняя плотность | 0.9965 | 0.9950 | 0.9938 |
| Средняя летучая кислотность | 0.423 | 0.319 | 0.283 |
5. Ключевые находки
5.1 Главные факторы, влияющие на качество вина
-
Содержание алкоголя (Alcohol) - ГЛАВНЫЙ ПОЗИТИВНЫЙ ФАКТОР
- Коэффициент корреляции: +0.4443 (средняя положительная)
- Вина с более высоким содержанием алкоголя имеют лучшие оценки
- High quality (8+): среднее 11.42% vs Low quality (3-5): 9.98%
- Разница: 1.44% - значительна!
-
Плотность (Density) - ГЛАВНЫЙ НЕГАТИВНЫЙ ФАКТОР
- Коэффициент корреляции: -0.3059 (слабая отрицательная)
- Высокая плотность указывает на меньше алкоголя и больше сахара
- High quality вина имеют плотность 0.9938 vs Low quality 0.9965
- Связь опосредована через алкоголь
-
Летучая кислотность (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 Практические рекомендации для производства вина
На основе анализа:
-
Для повышения качества:
- ✅ Максимизировать содержание алкоголя (сильнейший фактор влияния)
- ✅ Минимизировать летучую кислотность (<0.3 г/л для высокого качества)
- ✅ Снижать плотность (косвенно - через алкоголь)
-
Контрольные показатели для высокого качества (≥8):
- Алкоголь: 11.4% и выше
- Летучая кислотность: < 0.3 г/л
- Плотность: < 0.994
-
Целевые показатели для среднего качества (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- scatter plots и тренды08_wine_quality_vs_features.png- диаграмма корреляций08_wine_quality_correlation_bars.png- box plots по категориям08_wine_quality_by_category.png
Конфигурационные файлы:
- зависимости Python (pandas, numpy, matplotlib, seaborn, datasets)requirements.txt- этот файлREADME.md
7. Методология анализа
Используемые методы
- Описательная статистика - mean, std, min, max, quantiles, mode
- Визуальный анализ - гистограммы, KDE, box plots, scatter plots
- Корреляционный анализ - коэффициент корреляции Пирсона
- Категоризация - разделение на Low/Medium/High качество
- Линейная регрессия - для построения линий тренда
Технический стек
- 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
Автор: Бусыгин Степан