Анализ и визуализация данных на языке R

Алгоритм k-средних и интеграция с PowerBI

В лекции рассматривается практическая реализация алгоритма кластеризации K-средних на примере датасета с химическими характеристиками белого вина. Автор демонстрирует полный цикл работы: от загрузки и предобработки данных (замена разделителей, нормализация) до непосредственного применения алгоритма и интерпретации результатов с помощью тепловых карт (heatmap). Особое внимание уделяется критической ошибке — выбору количества кластеров «на глаз» (по числу категорий качества) — и её исправлению с помощью метода «локтя» (анализа суммы квадратов расстояний до центров кластеров). В итоге показывается, как правильно определить оптимальное число кластеров (3–4) и содержательно проанализировать полученные группы по химическим параметрам и экспертному качеству.

Основные мысли

1. Алгоритм K-средних работает на расстояниях — данные обязательно нужно нормализовать (привести к единой шкале), иначе признаки с большими числовыми значениями («сотни») подавят малозначимые («десятые доли»).
2. Нельзя выбирать количество кластеров по известному целевому признаку (например, качеству вина). Кластеризация может выявить иную структуру (класс вина: эконом, средний, премиум), а не заданную экспертом оценку.
3. Оптимальное число кластеров определяется через график «локтя» — там, где резкое падение суммы квадратов расстояний до центров сменяется пологим участком (в лекции это 3–4 кластера, а не 7).
4. Нормализация — обязательный технический этап перед кластеризацией, иначе результаты будут некорректными («нечестными»).
5. Интерпретация кластеров идёт через сравнение средних значений признаков (например, в кластере №2 — повышенное содержание сахара и хлоридов, но пониженное качество).
Показывать лекцию целиком
Краткое изложение

Вводные данные:
• Датасет о белом вине: 11 химических характеристик (оксиды, сахар, хлориды, сульфаты, плотность, pH, алкоголь и др.) + столбец «качество» — экспертная оценка (от 3 до 9).
• Задача: разбить вина на кластеры, не используя столбец качества.

Шаг 1. Загрузка и предобработка в Power BI:
• Замена точки на запятую, смена типа данных на десятичное число.
• Сначала автор ошибочно решает взять 7 кластеров — по количеству оценок качества (3–9). Это «читерство», намеренно неверный шаг для демонстрации.

Шаг 2. Нормализация (ключевое действие):
• Без нормализации алгоритм учитывает только признаки с большими числами.
• Создаётся функция Normalize, применяется к столбцам 1–11 (столбец качества не трогаем).

Шаг 3. Запуск K-средних:
• Код из двух строк: kmeans и добавление результата (fit$cluster) как нового столбца.
• При k=7 кластеры не показывают явной структуры — все средние значения признаков примерно одинаковы.

Шаг 4. Определение правильного числа кластеров (метод «локтя»):
• Для k от 2 до 15 считается сумма квадратов расстояний до центров кластеров.
• График: резкое падение до 3–4 кластеров, затем «почти прямая линия».
• Вывод: оптимально 3 или 4 кластера, а не 7.

Шаг 5. Повторная кластеризация (k=3) и интерпретация:
• Появляется чёткая структура:
o Кластер 1: высокие оксиды, низкие хлориды.
o Кластер 2: высокое содержание сахара (в 3 раза больше) и хлоридов.
o Кластер 3: низкие показатели по обоим параметрам.
• Анализ качества: в кластере 2 — в среднем качество выше, в кластере 3 — ниже, но в каждом кластере встречаются вина всех оценок (кроме высшей в 3-м кластере).

Итог: лекция показывает, что одна простая команда kmeans требует обязательной нормализации и осмысленного выбора числа кластеров через анализ «локтя», иначе выводы будут ошибочными.

Выводы

1. Нормализация данных — не техническая мелочь, а краеугольный камень K-средних. Без неё алгоритм бесполезен.
2. Нельзя подгонять число кластеров под известную разметку. Кластеризация ищет скрытые, а не заданные закономерности. В примере качество (7 градаций) не совпало с естественной структурой данных (3–4 кластера).
3. Метод «локтя» (сумма квадратов расстояний) — простой и эффективный инструмент выбора k. Точка перегиба графика даёт компромисс между плотностью кластеров и их количеством.
4. Интерпретация кластеров ведётся через сравнение средних значений признаков. Тепловые карты (heatmap) позволяют наглядно увидеть, какой кластер за что «отвечает» (например, сладкие вина или вина с высокими оксидами).
5. Даже в правильных кластерах может не быть полной гомогенности по целевому признаку (качество): внутри одного кластера встречаются разные оценки, но средние различаются.

Вопросы для самопроверки

1. Почему перед применением алгоритма K-средних данные обязательно нужно нормализовать? Что произойдёт, если этого не сделать?
2. В лекции автор сначала выбрал 7 кластеров. Почему это решение было ошибочным? Какой принцип при выборе количества кластеров он нарушил?
3. Опишите суть метода «локтя» (elbow method). Как по графику суммы квадратов расстояний определить оптимальное число кластеров?
4. Какие признаки позволили содержательно различить 3 кластера после повторного запуска алгоритма? Приведите пример различий между кластерами.
5. Связан ли номер кластера напрямую с экспертным качеством вина? Какой вывод об этом можно сделать из лекции?
6. Зачем автор при интерпретации использовал тепловую карту (heatmap) со средними значениями, а не, например, точечную диаграмму?
7. Какие этапы включает полный цикл кластеризации на примере Power BI и языка R?
8. Что означает фраза «сотни перебивают расстояние в десятых долях» в контексте работы K-средних?
9. Почему в кластере №3 не оказалось вин с самым высоким качеством (9), хотя в других кластерах они есть?
10. Можно ли использовать столбец «качество» как один из признаков для кластеризации? Почему автор этого не делает?
Вернуться к учебному плану