Какой замечательный вопрос - это шанс показать, как можно проверить недостатки и допущения любого статистического метода. А именно: составьте некоторые данные и попробуйте алгоритм на них!
Мы рассмотрим два ваших предположения и посмотрим, что происходит с алгоритмом k-средних, когда эти предположения нарушаются. Мы будем придерживаться двумерных данных, поскольку их легко визуализировать. (Благодаря проклятию размерности , добавление дополнительных измерений может сделать эти проблемы более серьезными, а не меньшими). Мы будем работать со статистическим языком программирования R: вы можете найти полный код здесь (и пост в форме блога здесь ).
Диверсия: квартет Анскомба
Сначала аналогия. Представьте, что кто-то утверждал следующее:
Я прочитал некоторый материал о недостатках линейной регрессии - что она ожидает линейную тенденцию, что остатки обычно распределены, и что нет никаких выбросов. Но все, что делает линейная регрессия - это минимизирует сумму квадратов ошибок (SSE) от предсказанной линии. Это проблема оптимизации, которая может быть решена независимо от формы кривой или распределения остатков. Таким образом, линейная регрессия не требует никаких предположений для работы.
Ну, да, линейная регрессия работает путем минимизации суммы квадратов невязок. Но это само по себе не является целью регрессии: мы пытаемся провести линию, которая служит надежным, непредвзятым предиктором y на основе x . Теорема Гаусса-Маркова говорит нам, что минимизация SSE достигает этой цели, но эта теорема основывается на некоторых очень специфических предположениях. Если эти предположения нарушены, вы все равно можете минимизировать SSE, но это может не сработатьчто-нибудь. Представьте себе, что вы говорите: «Вы водите автомобиль, нажимая на педаль: вождение - это, по сути,« процесс нажатия на педаль ». Педаль можно нажимать независимо от количества газа в баке. Поэтому, даже если бак пуст, вы все равно можете нажать на педаль и вести машину ».
Но говорить дешево. Давайте посмотрим на холодные, жесткие данные. Или на самом деле, выдуманные данные.
р2
Можно сказать: «Линейная регрессия все еще работает в тех случаях, потому что она минимизирует сумму квадратов невязок». Но какая пиррова победа ! Линейная регрессия всегда будет рисовать линию, но если это бессмысленная линия, кого это волнует?
Итак, теперь мы видим, что то, что оптимизация может быть выполнена, не означает, что мы достигаем нашей цели. И мы видим, что составление данных и их визуализация - это хороший способ проверить предположения модели. Держитесь за эту интуицию, она нам понадобится через минуту.
Неправильное предположение: несферические данные
Вы утверждаете, что алгоритм k-средних будет отлично работать на несферических кластерах. Несферические кластеры, как ... эти?
Может быть, это не то, что вы ожидали, но это вполне разумный способ построения кластеров. Глядя на это изображение, мы, люди, сразу распознаем две естественные группы точек - их нельзя ошибиться. Итак, давайте посмотрим, как это делает k-means: назначения показаны в цвете, вмененные центры показаны в виде X.
Ну, это не правильно. К-значит пытался втиснуть квадратный колышек в круглое отверстие - пытаясь найти красивые центры с аккуратными сферами вокруг них - и это не удалось. Да, он по-прежнему сводит к минимуму сумму квадратов внутри кластера - но, как и в четвертом квартале Анскомба, это пиррова победа!
Вы можете сказать: «Это неверный пример ... ни один метод кластеризации не может правильно найти такие странные кластеры». Не правда! Попробуйте иерархическую кластеризацию с одной связью :
Успешно справился! Это связано с тем, что иерархическая кластеризация с одной связью делает правильные предположения для этого набора данных. (Есть целый другой класс ситуаций, когда он терпит неудачу).
Вы можете сказать: «Это единственный, крайний, патологический случай». Но это не так! Например, вы можете сделать внешнюю группу полукругом вместо круга, и вы увидите, что k-means по-прежнему работает ужасно (а иерархическая кластеризация по-прежнему хороша). Я мог бы легко придумать другие проблемные ситуации, и это только в двух измерениях. Когда вы кластеризуете 16-мерные данные, могут возникнуть различные виды патологий.
Наконец, я должен отметить, что k-means все еще можно восстановить! Если вы начнете с преобразования ваших данных в полярные координаты , кластеризация теперь работает:
Вот почему важно понимать предположения, лежащие в основе метода: он не просто сообщает вам, когда у метода есть недостатки, но и объясняет, как их исправить.
Неправильное предположение: неоднородные кластеры
Что если кластеры имеют неодинаковое количество точек - это также нарушает кластеризацию k-средних? Хорошо, рассмотрим этот набор кластеров размером 20, 100, 500. Я создал каждый из многомерного гауссиана:
Похоже, что k-means может найти эти кластеры, верно? Кажется, все сгруппировано в аккуратные и аккуратные группы. Итак, давайте попробуем k-means:
Уч. То, что произошло здесь, немного сложнее. В стремлении минимизировать сумму квадратов внутри кластера алгоритм k-средних дает больший «вес» более крупным кластерам. На практике это означает, что он счастлив позволить этому небольшому кластеру оказаться далеко от любого центра, в то время как он использует эти центры, чтобы «разделить» гораздо больший кластер.
Если вы немного поиграете с этими примерами ( код R здесь! ), Вы увидите, что вы можете создать гораздо больше сценариев, в которых k-means делает это смущающей ошибкой.
Вывод: нет бесплатного обеда
В математическом фольклоре есть очаровательная конструкция, формализованная Вулпертом и Макриди , которая называется «Теорема об отсутствии бесплатного обеда». Вероятно, это моя любимая теорема в философии машинного обучения, и я с удовольствием могу поднять ее (я упоминал, что мне нравится этот вопрос?) Основная идея сформулирована (не строго) так: «При усреднении по всем возможным ситуациям, каждый алгоритм работает одинаково хорошо. "
Звучит нелогично? Учтите, что для каждого случая, когда алгоритм работает, я мог бы создать ситуацию, когда он ужасно выходит из строя. Линейная регрессия предполагает, что ваши данные располагаются вдоль линии, но что, если она следует за синусоидальной волной? T-критерий предполагает, что каждый образец взят из нормального распределения: что если вы добавите выброс? Любой алгоритм градиентного всплытия может попасть в локальные максимумы, а любая контролируемая классификация может быть обманута.
Что это значит? Это означает, что ваши предположения - источник вашей силы! Когда Netflix рекомендует фильмы для вас, предполагается, что если вам нравится один фильм, вам понравятся похожие (и наоборот). Представьте себе мир, в котором это не было правдой, и ваши вкусы совершенно случайно разбросаны по жанрам, актерам и режиссерам. Их алгоритм рекомендаций ужасно потерпит неудачу. Имеет ли смысл говорить: «Ну, это все еще сводит к минимуму некоторую ожидаемую квадратичную ошибку, поэтому алгоритм все еще работает»? Вы не можете создать алгоритм рекомендаций, не сделав некоторых предположений о вкусах пользователей, так же, как вы не можете создать алгоритм кластеризации, не делая некоторых предположений о природе этих кластеров.
Так что не просто примите эти недостатки. Знайте их, чтобы они могли сообщить ваш выбор алгоритмов. Поймите их, чтобы вы могли настроить свой алгоритм и преобразовать данные для их решения. И любите их, потому что если ваша модель никогда не ошибется, это означает, что она никогда не будет правильной.