Самостоятельная работа после занятия · неделя 10
Кластеризация
3 430 новостей
Самостоятельно примените идеи недели к реальным текстовым данным: постройте иерархическое разбиение и K-means, сравните решения и объясните найденные группы через данные. Цель — не «угадать правильные кластеры», а провести воспроизводимый и осторожный анализ.
✓ Главное правило: красивый кластер — гипотеза, а не истина
FOREIGN POLICY?war · iraq · military · president
ELECTION?kerry · bush · campaign · vote
OR SOMETHING ELSE?the algorithm does not know the headline
NO
LABELS
FOUND
3 430документов
1 545слов-признаков
0target-переменных
2 методасравнить обязательно
Перед началом
Данные взяты из задания MIT OpenCourseWare курса The Analytics Edge. Это исторический корпус публикаций Daily Kos 2004 года. Политическое содержание здесь — только материал для анализа текста; домашняя работа посвящена методам кластеризации, а не политическим оценкам.
Важно. Файл уже находится в формате Bag of Words: каждая строка — документ, каждый столбец — слово, значение — сколько раз оно встретилось. Поэтому основную работу можно выполнить в обычном Orange без Text add-on.
Маршрут работы
Не пытайтесь сделать всё одним большим workflow. Идите по шагам и после каждого шага спрашивайте: «что именно сейчас означает похожесть?»
01
РазведкаОткройте данные и проверьте, что вы получили
Загрузите dailykos.csv через File. Подключите Data Info и Data Table.
File → Data Info
File → Data Table
- Убедитесь, что объектов примерно 3 430, а признаков — примерно 1 545.
- Проверьте, что target отсутствует.
- Посмотрите названия 10–15 столбцов: это слова, а значения — частоты.
✍️ Запишите одним предложением: что в этой таблице является объектом, а что признаком?
02
HierarchicalПостройте дерево новостей
Данные уже представлены как Bag of Words, поэтому следующий шаг — определить расстояние между документами и построить дендрограмму.
File → Distances (Cosine) → Hierarchical Clustering
- В Distances выберите Cosine: для Bag of Words нам важен профиль слов, а не только абсолютная длина текста.
- В Hierarchical Clustering начните с Average linkage.
- Посмотрите несколько разрезов дерева: 2, 3 и 7 кластеров, как в исходном задании. Можно проверить и другие варианты.
📸 Сохраните скриншот дендрограммы с тем разрезом, который кажется вам наиболее содержательным. Подпишите: почему именно этот уровень? Не называйте его «истинным» числом кластеров.
03
LinkageПроверьте, насколько дерево зависит от вашего выбора
Не меняя данные и метрику, переключите Average на Complete linkage.
- Сильно ли изменилась структура?
- Какие ветви «держатся», а какие перестраиваются?
- Какое дерево проще содержательно объяснить?
⚠️ Не пишите «Average лучше» или «Complete правильнее». Напишите: какая логика объединения оказалась полезнее именно для этих данных и почему.
04
K-meansТеперь попробуйте быстрый метод на всех данных
Вернитесь к исходному File и подключите K-Means. Включите нормализацию и попросите Orange сравнить несколько значений k.
File → K-Means (From 2 to 9 clusters, Normalize ON)
- Normalize columns здесь означает стандартизацию числовых столбцов: Orange приводит каждый признак к среднему 0 и стандартному отклонению 1. Это не TF-IDF и не нормализация длины документа.
- Запишите, какое
k получает лучший Silhouette среди проверенных. - Посмотрите не только на победителя: есть ли рядом значения с почти таким же score?
- Выберите одно k для дальнейшей интерпретации. Это может быть лучший Silhouette — но вы должны объяснить выбор.
✍️ Ответьте: почему «самый высокий Silhouette» — это кандидат, а не доказательство истинного числа кластеров?
05
ИнтерпретацияДайте кластерам смысл, а не только цвет
После кластеризации в данных появляется признак Cluster. Как и в старой версии домашней работы, используйте его как временную целевую переменную только после того, как кластеры уже построены, чтобы понять, какие слова характеризуют отдельные группы.
K-Means → Select Columns (Cluster → Target) → Logistic Regression → Nomogram
- В Select Columns перенесите Cluster в Target.
- Подключите Logistic Regression, а затем Nomogram.
- Выберите один из кластеров и посмотрите, какие слова сильнее связаны с принадлежностью к нему.
- Попробуйте осторожно описать смысл нескольких кластеров. Если интерпретация неубедительна — так и напишите.
💡 Формулировка уровня «кластер 2 похож на внешнюю политику: среди характерных слов …» лучше, чем «кластер 2 = война». Важно: Logistic Regression + Nomogram здесь помогают объяснить уже полученные метки Cluster; даже высокая точность такой модели не доказывает, что эти группы — объективные классы мира.
06
Silhouette plotНайдите пограничные документы
Подключите Silhouette Plot к результату K-Means. Найдите объекты с низким или отрицательным silhouette.
K-Means → Silhouette Plot
- Сделайте скриншот.
- Выберите несколько слабых объектов.
- Ответьте: это «ошибка алгоритма» или сигнал, что документы находятся между темами?
🕵️ В хорошей кластеризации самый интересный объект иногда тот, который плохо сидит в своём кластере.
Сравните два метода
Это ключевой кусок домашней работы. Не нужно объявлять победителя — нужно понять, что каждый метод показывает по-своему.
Hierarchical
- сначала дерево, потом разрез;
- видно отношения и уровни;
- не нужно заранее фиксировать k;
- чувствителен к метрике и linkage;
- на больших данных тяжёлый.
K-means
- сначала выбираем k;
- быстро работает на большом массиве;
- получаем фиксированное разбиение;
- можно сравнить k через silhouette;
- любит компактные группы и зависит от масштаба.
Финальный вопрос: если Hierarchical и K-Means дали разные группы, кто из них ошибся? Ответьте 3–5 предложениями. Помните: здесь меняется не только алгоритм — иерархический маршрут использует cosine distance, а K-means работает с центрами и стандартизованными столбцами. Поэтому это сравнение двух рабочих процедур, а не «чистый эксперимент», где поменялось только название алгоритма.
Что сдавать
Ваша работа должна быть воспроизводимой: другой человек должен открыть workflow и понять ход анализа без дополнительных объяснений.
1. Workflow Orange (.ows)Один аккуратный файл. Подпишите виджеты или расположите их так, чтобы маршрут читался слева направо.
2. ДендрограммаСкрин выбранного разреза + 2–3 предложения, почему он полезен.
3. K-Means + SilhouetteСкрин сравнения k и Silhouette Plot. Укажите выбранное k.
4. Интерпретация8–12 предложений: что отличает кластеры, что оказалось неожиданным, чему вы не доверяете без дополнительной проверки.
Не сдавайте: только красивые скриншоты без объяснения, «Silhouette сказал k=… значит это истина», или список кластеров без описания того, какие признаки сделали их похожими.
Как выглядит сильная работа
Проверяйте не количество скриншотов, а качество аналитического решения. Минимум — воспроизводимый workflow и вывод, который можно защитить словами.
Технически сделаноWorkflow открывается, маршруты Hierarchical и K-means воспроизводятся, настройки понятны.
Похожесть объясненаВы написали, какие признаки и расстояние определяют «близость» документов и почему это разумно.
Есть проверка альтернативыСравнены хотя бы два linkage и несколько k; Silhouette используется как диагностика, а не как приговор.
Есть осторожная интерпретацияОбъяснены минимум два кластера и назван хотя бы один пограничный объект, сомнение или ограничение.
Справка по виджетам
Если забыли, где какая кнопка — ниже официальная документация Orange. Это не дополнительные задания, а шпаргалка.
Бонус · если хочется ещё
Возьмите знакомый файл SMS из недели 7 и попробуйте не использовать метку spam/ham при кластеризации. Сначала спрячьте её в Meta или Ignore, постройте группы, а уже потом верните метку для внешней проверки.