Обучение без учителя
Кластеризация k-means и DBSCAN, PCA и LDA, t-SNE/UMAP и поиск аномалий на автоэнкодерах.
17 вопросов
JuniorТеорияОчень частоКак пошагово работает k-means и какую величину уменьшает каждый его шаг?
Как пошагово работает k-means и какую величину уменьшает каждый его шаг?
k-means чередует два шага — приписать каждую точку к ближайшему центроиду, затем сдвинуть центроид в среднее своих точек. Оба шага уменьшают одну и ту же величину, сумму квадратов расстояний внутри кластеров, поэтому прогон сходится к локальному оптимуму.
Типичные ошибки
- ✗Считают, что k-means сходится к глобальному оптимуму
- ✗Путают обновление центроида по среднему с обновлением по медиане
- ✗Думают, что два шага оптимизируют разные величины
Уточняющие вопросы
- →Что останавливает цикл и может ли величина расти между итерациями?
- →Почему итоговое разбиение зависит от стартовых центроидов?
JuniorТеорияОчень частоКак выбирают k для k-means и почему излом на графике так часто неоднозначен?
Как выбирают k для k-means и почему излом на графике так часто неоднозначен?
Строят график инерции по k и ищут излом либо считают silhouette для каждого k и берут максимум. Инерция монотонно падает с ростом k, поэтому на гладких данных резкого излома нет и его читают субъективно; silhouette даёт вместо этого сравнимое число.
Типичные ошибки
- ✗Ждать, что у инерции будет минимум на верном k: она падает с ростом k и становится
0, когда каждая точка — отдельный кластер, поэтому ищут излом, а не минимум. - ✗Ждать, что silhouette растёт с k так же, как падает инерция: если разрезать настоящую группу пополам, её точки окажутся рядом с соседним кластером, и оценка упадёт.
Уточняющие вопросы
- →Что говорит о точке значение silhouette около нуля?
- →Как ограничение бизнеса на число сегментов изменит выбор k?
JuniorТеорияЧастоЧто произойдёт при запуске этой программы?
Что произойдёт при запуске этой программы?
predict бросает AttributeError: у этого класса нет метода predict
Типичные ошибки
- ✗Ждать, что новая точка попадёт в ближайший кластер: дерево слияний строится только из точек обучения, поэтому метода
predictу класса нет; метки даютfit_predictиlabels_. - ✗Ждать
NotFittedError: модель обучена иlabels_заполнен; вызов падает раньше любой проверки, потому что методаpredictв классе нет вовсе.
Уточняющие вопросы
- →Как приписать новых клиентов к сегментам, найденным агломеративной кластеризацией?
- →У какого класса кластеризации в scikit-learn есть метод
predictи с чем он сравнивает новую точку?
JuniorТеорияЧастоЧто задают eps и min_samples в плотностном алгоритме DBSCAN и какая точка считается шумом?
Что задают eps и min_samples в плотностном алгоритме DBSCAN и какая точка считается шумом?
eps задаёт радиус окрестности, а min_samples — сколько точек должно в неё попасть, чтобы точка считалась core. Core-точки и их соседи образуют кластеры; точка, которая не core и не лежит в пределах eps от core-точки, помечается шумом.
Типичные ошибки
- ✗Меняют местами смысл eps и min_samples
- ✗Считают, что каждая точка попадает в какой-то кластер
- ✗Думают, что шум определяется расстоянием до центроида
Уточняющие вопросы
- →Как рост eps меняет число кластеров и количество шума?
- →Что такое граничная точка и почему её приписывание зависит от порядка обхода?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
16.0
Открыть задачу →Типичные ошибки
- ✗Ждать
8.0, сумму обычных расстояний: инерция возводит расстояние до центроида в квадрат, и четыре расстояния по2дают4 * 2 ** 2 = 16.0. - ✗Ждать
4.0, среднее на точку:inertia_— сумма по всем точкам, а не среднее, поэтому она растёт с числом точек.
Уточняющие вопросы
- →Чему будет равен
inertia_приn_clusters=4на тех же четырёх точках? - →Почему инерцию нельзя сравнивать между двумя наборами данных разного размера?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
0.5 6.0
Открыть задачу →Типичные ошибки
- ✗Ждать
0.5 4.0: центроид сдвигается в среднее своих точек3,4и11, то есть в6.0;4.0— их медиана. - ✗Ждать, что центроиды сдвинутся только часть пути: один шаг k-means ставит центроид ровно в среднее его точек, размера шага у него нет.
Уточняющие вопросы
- →К какому центроиду отошла бы точка
3, если бы второй центроид стартовал в7.0, а не в5.0? - →Что делать на шаге обновления, если к центроиду не приписана ни одна точка?
JuniorТеорияЧастоЧто выведет эта программа?
Что выведет эта программа?
(150, 2) (2, 4)
Открыть задачу →Типичные ошибки
- ✗Ждать у
components_форму(4, 2): в нём строка на компоненту и столбец на исходный признак, то есть форма(n_components, n_features). - ✗Ждать, что в
X_newостанется 4 столбца:fit_transformвозвращает проекции, по столбцу на оставленную компоненту, поэтому их 2.
Уточняющие вопросы
- →Как одна строка
X_newполучается из строкиXиcomponents_? - →Какую форму имел бы
components_безn_components?
MiddleТеорияЧастоКруглые сгустки, переплетённые полумесяцы, вложенная таксономия — выберите метод для каждого.
Круглые сгустки, переплетённые полумесяцы, вложенная таксономия — выберите метод для каждого.
Круглые сгустки схожего размера — это k-means, ровно его сферическое допущение. Переплетённые полумесяцы — DBSCAN, он идёт по плотности и помечает выбросы шумом. Вложенная таксономия — иерархическая кластеризация, её дендрограмма показывает сами уровни.
Типичные ошибки
- ✗Натягивают k-means на невыпуклые формы, увеличивая k
- ✗Считают DBSCAN универсальным при одном значении eps
- ✗Выбирают алгоритм по размеру данных, а не по геометрии кластеров
Уточняющие вопросы
- →Какой linkage возьмёте для таксономии и почему этот выбор важен?
- →Что ломается в DBSCAN, если полумесяцы сильно различаются по плотности?
MiddleТеорияЧастоСколько главных компонент оставить и что на деле говорит доля объяснённой дисперсии?
Сколько главных компонент оставить и что на деле говорит доля объяснённой дисперсии?
Число компонент берут по целевой накопленной дисперсии либо по излому scree-графика. Но объяснённая дисперсия измеряет восстановление входов, а не пользу для метки — сигнал может лежать в направлении с малой дисперсией, поэтому число сверяют с метрикой модели.
Типичные ошибки
- ✗Считают 95 процентов объяснённой дисперсии гарантией качества модели
- ✗Предполагают, что дисперсия и предсказательная сила связаны монотонно
- ✗Обучают PCA на всём наборе данных до разбиения на train и test
Уточняющие вопросы
- →Приведите случай, где разделяющее направление почти не имеет дисперсии.
- →Где именно в пайплайне кросс-валидации должно стоять обучение PCA?
MiddleТеорияЧастоЧем контролируемая проекция LDA отличается от PCA и когда её подпространство лучше?
Чем контролируемая проекция LDA отличается от PCA и когда её подпространство лучше?
PCA не использует метки и максимизирует общую дисперсию; LDA берёт метки и максимизирует межклассовый разброс относительно внутриклассового. При разделяющем направлении с малой дисперсией выигрывает LDA, но он ограничен C-1 компонентами и ждёт схожих ковариаций.
Типичные ошибки
- ✗Считают LDA методом без учителя или думают, что PCA использует метки
- ✗Забывают про ограничение числа компонент LDA величиной C-1
- ✗Полагают, что наличие меток делает LDA безусловно лучше
Уточняющие вопросы
- →Сколько компонент вернёт LDA на задаче с тремя классами?
- →Что происходит с LDA, если у одного класса ковариация гораздо шире остальных?
JuniorТеорияИногдаКакую проблему случайной инициализации решает k-means++ и чего это стоит?
Какую проблему случайной инициализации решает k-means++ и чего это стоит?
Случайный старт может собрать несколько центроидов в одном участке и оставить настоящий кластер без центра, а прогон застрянет в плохом оптимуме. k-means++ берёт каждый центроид с вероятностью, пропорциональной квадрату расстояния до ближайшего, ценой лишних проходов.
Типичные ошибки
- ✗Считать, что k-means++ берёт самые удалённые друг от друга точки: каждый стартовый центроид выбирается случайно с весом по квадрату расстояния, и далёкая точка вероятна, но не обязательна.
- ✗Считать, что k-means++ гарантирует глобальный оптимум: он даёт только лучший старт, прогон всё равно может застрять в локальном оптимуме, и рестарты
n_initпо-прежнему полезны.
Уточняющие вопросы
- →Чем сэмплирование пропорционально квадрату расстояния лучше выбора самой далёкой точки?
- →Нужны ли несколько рестартов, если k-means++ уже включён?
JuniorТеорияИногдаЧто метод снижения размерности PCA делает геометрически и зачем сначала масштабировать?
Что метод снижения размерности PCA делает геометрически и зачем сначала масштабировать?
PCA находит перпендикулярные направления максимальной дисперсии и проецирует данные на первые из них. Так как максимизируется сырая дисперсия, признак в крупных единицах перетягивает компоненты на себя, поэтому признаки разных шкал надо стандартизовать до обучения.
Типичные ошибки
- ✗Считать, что PCA оставляет исходные признаки с наибольшей дисперсией: каждая компонента — взвешенная сумма всех признаков, и её дисперсия зависит от их единиц.
- ✗Думать, что PCA использует метки классов: его
fitполучает толькоXи ищет направления наибольшей дисперсии, а не лучшего разделения классов.
Уточняющие вопросы
- →Что станет с компонентами, если один признак в метрах, а другой в миллиметрах?
- →Коррелированы ли получившиеся компоненты между собой и почему?
MiddleТеорияИногдаЧто служит скором при поиске аномалий автоэнкодером и как выбрать порог без меток?
Что служит скором при поиске аномалий автоэнкодером и как выбрать порог без меток?
Скор — это ошибка восстановления: модель учится на преимущественно нормальных данных, и плохо восстановленные точки получают высокий скор. Без меток порог ставят на перцентиль обучающей ошибки под допустимый поток алертов и подстраивают под силы аналитиков.
Типичные ошибки
- ✗Обучают автоэнкодер на данных, сильно засорённых аномалиями
- ✗Фиксируют порог по эмпирическому правилу вместо бюджета алертов
- ✗Считают, что для скора обязательно нужны размеченные аномалии
Уточняющие вопросы
- →Что произойдёт со скором, если в обучающих данных уже много аномалий?
- →Как пересматривать порог по мере дрейфа нормального трафика?
MiddleТеорияИногдаПочему k-means проваливается на вытянутых и неравномерно плотных кластерах?
Почему k-means проваливается на вытянутых и неравномерно плотных кластерах?
Минимизация квадрата евклидова расстояния до центроида предполагает сферические кластеры схожего размера и разброса. Вытянутые или неравномерно плотные группы это нарушают, и k-means режет их поперёк; плотностный метод вроде DBSCAN идёт по реальной форме.
Типичные ошибки
- ✗Винят масштабирование или число итераций вместо допущения о форме
- ✗Считают, что верное k спасает k-means на несферических кластерах
- ✗Не берут плотностную альтернативу, когда формы нерегулярны
Уточняющие вопросы
- →Как модель гауссовых смесей ослабляет часть этого допущения?
- →Чем DBSCAN платит за умение работать с произвольными формами?
MiddleТеорияИногдаПочему по нелинейным эмбеддингам t-SNE и UMAP нельзя судить о размерах кластеров и зазорах?
Почему по нелинейным эмбеддингам t-SNE и UMAP нельзя судить о размерах кластеров и зазорах?
Оба сохраняют локальное соседство, а не глобальную геометрию, поэтому расстояния между кластерами, их видимые размеры и зазоры — артефакты perplexity и раскладки. Картинку читают качественно и никогда не подают координаты эмбеддинга в классификатор как признаки.
Типичные ошибки
- ✗Интерпретируют размеры кластеров или ширину зазоров на эмбеддинге
- ✗Используют координаты эмбеддинга как признаки модели
- ✗Считают, что подбор perplexity или усреднение прогонов вернут глобальную геометрию
Уточняющие вопросы
- →Почему обученный t-SNE нельзя применить к новым точкам так, как применяют PCA?
- →Что взять вместо него, если компактное числовое представление действительно нужно?
SeniorДизайнРедкоУ ритейл-приложения около 8M покупателей в месяц, и нужно от пяти до восьми маркетинговых сегментов, с которыми CRM-команда сможет работать и которые останутся узнаваемыми от квартала к кварталу. Есть два года транзакций, сессий и категорий каталога. Спроектируйте пайплайн целиком — какие признаки строите и что делаете с тяжёлым правым хвостом трат, что стандартизуете и снижаете ли размерность, какой алгоритм кластеризации берёте и как определяете число сегментов, а также чем убедите скептичного руководителя CRM, что сегменты реальны, а не артефакт алгоритма, и что они устоят при переобучении в следующем квартале.
У ритейл-приложения около 8M покупателей в месяц, и нужно от пяти до восьми маркетинговых сегментов, с которыми CRM-команда сможет работать и которые останутся узнаваемыми от квартала к кварталу. Есть два года транзакций, сессий и категорий каталога. Спроектируйте пайплайн целиком — какие признаки строите и что делаете с тяжёлым правым хвостом трат, что стандартизуете и снижаете ли размерность, какой алгоритм кластеризации берёте и как определяете число сегментов, а также чем убедите скептичного руководителя CRM, что сегменты реальны, а не артефакт алгоритма, и что они устоят при переобучении в следующем квартале.
Строим RFM-признаки, логарифмируем скошенные траты, стандартизуем и кластеризуем k-means, выбирая k по silhouette и пригодности для CRM. Реальность показываем профилированием на отложенном поведении, стабильность — согласием разбиений при переобучении на срезах.
Типичные ошибки
- ✗Кластеризуют немасштабированные признаки с тяжёлым хвостом по тратам
- ✗Выбирают k по минимуму инерции вместо измеримого критерия и пригодности
- ✗Подтверждают стабильность на тех же данных, а не на разных временных срезах
Уточняющие вопросы
- →Как сохранить соответствие сегментов между двумя квартальными переобучениями?
- →Что заставит вас отбросить математически чистый сегмент как непригодный для CRM?