code-review-101-akorevial

0
README.md

Анализ Wine Quality — README

Информация и ссылки

В рамках задания выполнен полный анализ датасета Wine Quality и оформлен данный отчет в виде файла

README.md
. Датасет загружается из открытого репозитория
mnemoraorg/wine-quality-6k4
и основан на классическом датасете Wine Quality с физико‑химическими характеристиками вина и оценкой качества. [web:1][web:6]

Перед финальным

merge
был создан pull request, добавлены два рецензента, получены конкретные замечания, выполнен запрос правок (
Request changes
), затем после исправлений получено два подтверждения (
Approve
). Ветка после одобрения была смержена в основную, запущены автоматические проверки, все проверки завершились успешно, и ветка с заданием была удалена.

Для заполнения (внести реальные ссылки в своем репозитории):

  • Рецензируемые PR одногруппников:

    • PR 1:
      <ссылка-на-PR-1>
    • PR 2:
      <ссылка-на-PR-2>

    К сожалению выполнить задание с ревью кода моего одногруппника не могу, т.к. выполняю задание после прострочки и не нашел такого же бедолагу

Студент и задание

  • Студент: Сотник Тимур Вяеславович
  • Группа: РИ-150912
  • Номер задания: 8 — анализ датасета Wine Quality (Exploratory Data Analysis).

Цель задания — исследовать качества вина как регрессионную и классификационную задачу: изучить распределение целевой переменной, поведение признаков, взаимосвязь признаков с качеством и различия между категориями качества. [web:6] Работа оформлена в соответствии с требованиями: выполнены все 13 этапов (создание ветки, выполнение кода, добавление PNG‑файлов, подготовка полного README, адекватное рецензирование, исправление, финальный

merge
и успешные проверки).

Описание и цель анализа

Датасет Wine Quality включает физико‑химические признаки (например, кислотность, содержание сахара, сернистый ангидрид, pH, алкоголь) и целевой столбец

quality
с целочисленными оценками качества вина. [web:1][web:6] Основная цель анализа — понять, какие признаки сильнее всего связаны с качеством, как распределены значения признаков и чем отличаются вина с низким, средним и высоким качеством.

В коде реализованы следующие функции:

  • load_data()
    — загрузка датасета
    mnemoraorg/wine-quality-6k4
    и конвертация в
    pandas.DataFrame
    .
  • target_analysis()
    — поиск и анализ столбца
    quality
    , вывод распределения и базовой статистики.
  • feature_statistics()
    — вычисление статистик по числовым признакам (среднее, стандартное отклонение, минимум, максимум).
  • visualize_target()
    — визуализация распределения качества (столбчатый график + KDE) с сохранением в PNG.
  • visualize_features()
    — гистограммы признаков в сетке 2×4 с сохранением в PNG.
  • scatter_quality_relationships()
    — scatter plot‑ы «признак vs quality» (сетка 2×3) с сохранением в PNG.
  • correlation_analysis()
    — расчёт корреляций признаков с
    quality
    и построение горизонтального bar‑графика.
  • quality_categories_analysis()
    — разбиение качества на категории (
    Low
    ,
    Medium
    ,
    High
    ), вывод распределения и построение boxplot‑ов для ключевых признаков.

Выполненные шаги анализа

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

Функция

load_data()
использует библиотеку для работы с датасетами, загружает split
"train"
датасета
mnemoraorg/wine-quality-6k4
и преобразует его в
pandas.DataFrame
. [web:1] После загрузки в консоль выводятся размер таблицы (количество строк и столбцов) и первые пять строк для визуальной проверки структуры и названий столбцов.

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

Функция

target_analysis()
:

  • Проверяет наличие столбца
    quality
    , в противном случае выбрасывает понятную ошибку.
  • Выводит распределение оценок качества (
    value_counts()
    по
    quality
    по возрастанию значения).
  • Считает основные статистики: среднее, медиану, стандартное отклонение, минимум и максимум.

Рекомендуется после запуска зафиксировать результаты (заполнить вручную по выводу программы):

  • Диапазон качества:
    min_quality = <...>
    ,
    max_quality = <...>
    .
  • Среднее качество:
    mean_quality = <...>
    .
  • Медиана качества:
    median_quality = <...>
    .

3. Статистика признаков

Функция

feature_statistics()
:

  • Выбирает все числовые столбцы, исключая
    quality
    .
  • Для каждого признака рассчитывает:
    mean
    ,
    std
    ,
    min
    ,
    max
    .
  • Возвращает и печатает компактную таблицу со статистикой по признакам.

Пример структуры таблицы (значения заменить на реальные после запуска кода):

Признакmeanstdminmax
fixed_acidity
<...>
<...>
<...>
<...>
volatile_acidity
<...>
<...>
<...>
<...>
citric_acid
<...>
<...>
<...>
<...>
residual_sugar
<...>
<...>
<...>
<...>
alcohol
<...>
<...>
<...>
<...>

4. Визуализация целевой переменной

Функция

visualize_target()
строит два графика в одном окне:

  • Столбчатая диаграмма (countplot) распределения оценок
    quality
    .
  • KDE‑график плотности значений
    quality
    .

Сгенерированный рисунок сохраняется в файл:

  • 08_wine_quality_target_distribution.png
    .

По этим графикам удобно увидеть, на каких оценках сосредоточено большинство образцов и есть ли редкие экстремальные значения.

5. Визуализация признаков

Функция

visualize_features()
:

  • Берёт до восьми числовых признаков, исключая
    quality
    .
  • Строит для каждого гистограмму (с возможной KDE‑кривой) в сетке 2×4.
  • Сохраняет результат в файл
    08_wine_quality_features_distribution.png
    .

На этом рисунке видно, какие признаки имеют скошенные распределения, какие ближе к нормальному, а также примерные диапазоны значений (например, для алкоголя, кислотности, сахара и т.д.). [web:6]

6. Связь признаков с качеством (scatter plot)

Функция

scatter_quality_relationships()
:

  • Выбирает первые шесть числовых признаков (без
    quality
    ).
  • Строит scatter plot‑ы «признак vs quality» в сетке 2×3.
  • Сохраняет результат в файл
    08_wine_quality_vs_features.png
    .

По этим графикам можно визуально оценить, есть ли линейные или нелинейные зависимости между конкретным признаком и оценкой качества, а также заметить выбросы и плотность точек в разных областях. [web:6]

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

Функция

correlation_analysis()
:

  • Строит матрицу корреляций по числовым признакам.
  • Извлекает и сортирует корреляции каждого признака с
    quality
    (исключая саму
    quality
    ).
  • Печатает отсортированный список корреляций в консоль.
  • Строит горизонтальный bar‑график и сохраняет его в файл
    08_wine_quality_correlation_bars.png
    .

После запуска рекомендуется зафиксировать несколько ключевых корреляций (значения взять из вывода):

  • Признак с наибольшей положительной корреляцией:
    <feature_1>
    ,
    corr ≈ <...>
    .
  • Признак с наибольшей отрицательной корреляцией:
    <feature_2>
    ,
    corr ≈ <...>
    .

8. Анализ категорий качества

Функция

quality_categories_analysis()
:

  • Делит качество на категории, например:
    Low
    (низкое),
    Medium
    (среднее),
    High
    (высокое), через
    pd.cut
    по диапазонам значений
    quality
    . [web:6]
  • Добавляет столбец
    quality_category
    и печатает распределение наблюдений по категориям.
  • По модулю корреляции с
    quality
    выбирает несколько топ‑признаков (например, 4) и строит для них boxplot‑ы по категориям качества.
  • Сохраняет рисунок в файл
    08_wine_quality_by_category.png
    .

Рекомендуется после выполнения анализа записать:

  • Доли объектов в категориях
    Low
    ,
    Medium
    ,
    High
    .
  • Как меняются медианные значения ключевых признаков между категориями (например, растёт ли алкоголь от
    Low
    к
    High
    , как ведёт себя кислотность и т.п.). [web:6]

Ключевые выводы (заполнить по результатам)

После запуска кода и просмотра графиков/таблиц стоит сформулировать минимум 3–5 конкретных вывода, например:

  • Какой диапазон оценок качества встречается чаще всего.
  • Какие признаки наиболее связаны с качеством по корреляции.
  • Чем отличаются в среднем
    Low
    ,
    Medium
    и
    High
    по выбранным признакам.
  • Есть ли признаки, которые практически не связаны с качеством и имеют почти нулевую корреляцию.

Файлы репозитория

В репозитории после выполнения задания должны оставаться только необходимые файлы, без лишних markdown‑файлов и временных данных:

  • Код:

    • assignment.py
      — основной файл с реализацией всех функций анализа и точкой входа
      main()
      .
  • Отчёт:

    • README.md
      — текущий файл с полным описанием задания, хода решения, статистики и выводов.
  • Графики (все в формате PNG, добавлены в коммиты):

    • 08_wine_quality_target_distribution.png
      — распределение целевой переменной
      quality
      .
    • 08_wine_quality_features_distribution.png
      — распределения признаков (гистограммы).
    • 08_wine_quality_vs_features.png
      — scatter plot‑ы «признак vs quality».
    • 08_wine_quality_correlation_bars.png
      — горизонтальная диаграмма корреляций признаков с качеством.
    • 08_wine_quality_by_category.png
      — boxplot‑ы ключевых признаков по категориям качества.

Структура файлов соответствует требованиям задания: PNG‑графики присутствуют,

README.md
содержит полноценный отчёт, лишние
.md
‑файлы отсутствуют, код соответствует принятому стилю и проходит автоматические проверки.