Почему смешанные данные являются проблемой для евклидовых алгоритмов кластеризации?


21

Большинство классических алгоритмов кластеризации и уменьшения размерности (иерархическая кластеризация, анализ главных компонентов, k-средних, самоорганизующиеся карты ...) разработаны специально для числовых данных, а их входные данные рассматриваются как точки в евклидовом пространстве.

Это, конечно, проблема, поскольку многие вопросы реального мира включают в себя данные, которые смешаны: например, если мы изучаем автобусы, высота, длина и размер двигателя будут числами, но нас также может интересовать цвет (категориальная переменная: синий / красный / зеленый ...) и классы емкости (упорядоченная переменная: малая / средняя / большая емкость). В частности, мы могли бы хотеть изучить эти различные типы переменных одновременно.

Существует ряд методов расширения классических алгоритмов кластеризации для смешанных данных, например, использование различий Gower для подключения к иерархической кластеризации или многомерного масштабирования, или других методов, которые принимают матрицу расстояний в качестве входных данных. Или, например, этот метод, расширение SOM для смешанных данных.

Мой вопрос: почему мы не можем просто использовать евклидово расстояние для смешанных переменных? или почему это плохо? Почему мы не можем просто фиктивно закодировать категориальные переменные, нормализовать все переменные так, чтобы они имели одинаковый вес на расстоянии между наблюдениями, и запустить обычные алгоритмы для этих матриц?

Это действительно легко и никогда не делается, так что я полагаю, что это очень неправильно, но кто-нибудь может сказать мне, почему? И / или дать мне несколько ссылок? Благодарность


5
Вы можете делать все что угодно с вашими данными, чтобы представлять их как точки в евклидовом пространстве, но смысл функций может исчезнуть. Проблема на уровне шкалы измерения, а не на уровне пространства. Порядковая шкала должна быть правильно определена количественно, фиктивная кодировка не поможет. Двоичная шкала асимметричного смысла (присутствует или отсутствует), естественно, требует другой метрики расстояния, чем евклидово расстояние; плюс проблема интерполяции (между «да» и «нет» не может быть никакого существенного среднего).
ttnphns

(продолжение) Евклидово пространство - это две вещи: оно непрерывно (мелкозернисто) и допускает любые направления. Не все типы данных требуют или приветствуют такое пространство для учета различий, возникающих в связи с характером данных.
ttnphns

Иерархическая кластеризация работает с любым сходством, кстати. (за исключением некоторых случаев, таких как Уорд) - в частности, вы можете использовать, например, коэффициент Жакара, который имеет значение для некоторых категориальных / двоичных случаев.
Anony-Mousse

Ответы:


5

Дело не в том, что ты не способен что-то вычислить .

Расстояния могут быть использованы для измерения чего-то значимого . Это потерпит неудачу намного раньше с категориальными данными. Если это когда-либо работает с более чем одной переменной, то есть ...

Если у вас есть атрибуты размера обуви и массы тела, евклидово расстояние тоже не имеет особого смысла. Хорошо, когда x, y, z - расстояния. Тогда евклидово расстояние - это расстояние между точками зрения.

Теперь, если вы фиктивно кодируете переменные, какой смысл это дает?

Кроме того, евклидово расстояние не имеет смысла, когда ваши данные дискретны.

Если существуют только целочисленные значения x и y, евклидово расстояние все равно будет давать нецелые расстояния. Они не отображаются обратно на данные. Точно так же для фиктивных переменных расстояние не будет отображаться обратно в количество фиктивных переменных ...

Затем, когда вы планируете использовать, например, кластеризацию k-средних, речь идет не только о расстояниях, но и о вычислении среднего значения . Но нет никакого разумного значения для фиктивных переменных, не так ли?

Наконец, есть проклятие размерности . Известно, что евклидово расстояние уменьшается при увеличении количества переменных. Добавление фиктивных переменных означает, что вы быстро теряете контраст расстояния. Все так же, как и все, потому что одна фиктивная переменная может иметь все значение.


3

В основе этих проблем кластеризации на основе метрик лежит идея интерполяции.

Возьмите любой метод, который вы только что цитировали, и давайте рассмотрим непрерывную переменную, такую ​​как вес. У вас есть 100 кг, и у вас есть 10 кг в ваших данных. Когда вы видите новый 99 кг, метрика позволит вам приблизиться к 100 кг - даже если вы никогда не видели его. К сожалению, для дискретных данных не существует интерполяции.

Еще один аргумент в пользу этого вопроса - нет естественного способа сделать это. Вы хотите присвоить 3 значения в R и сделать их равными расстояния между каждой парой, это было бы невозможно. Если вы назначаете их в разные категории и запускаете, скажем, PCA, то вы теряете информацию, которая фактически отражает одну и ту же категорию.


1
Благодарность! Я понимаю проблему интерполяции, но во многих приложениях это не проблема (например, когда мы знаем, что шины имеют зеленый, красный или синий цвет, и в нашем наборе данных нет другого цвета). И я думаю, что есть простые способы стандартизировать фиктивные переменные, чтобы каждая категориальная переменная имела «вес», аналогичный весу каждой числовой переменной (если числовые переменные также были стандартизированы заранее). Или произвольно назначить веса различным переменным ...
Jubo

0

Проблема с неупорядоченными категориальными значениями заключается в том, что, если вы фиктивно кодируете их, вы навязываете порядок и, следовательно, новое значение для переменных. Например, если вы кодируете синий как 1, а оранжевый как 2 и зеленый 3, вы подразумеваете, что шаблон данных со значением оранжевого цвета ближе к шаблону со значением зеленого, чем шаблон со значением синего.

Один из способов справиться с этим - сделать их новыми функциями (столбцами). Для каждого отдельного значения вы создаете новую двоичную особенность и устанавливаете для нее значение true / false (другими словами, двоичные значения кодируют значения и делают каждый бит столбцом). Для каждого шаблона данных из этого нового набора функций только один объект будет иметь значение 1, а все остальные - 0. Но это обычно не останавливает алгоритм обучения для назначения значений центроидов, близких к 1, более чем одному объекту. Это конечно может вызвать проблемы интерпретации, потому что это не имеет смысла в области данных.

У вас нет той же проблемы с «классами емкости», а именно с упорядоченными категориями, поскольку в этом случае имеет значение присвоение числовых значений.

И, конечно же, если вы используете функции различной природы или единицы измерения или другой диапазон значений, то вы всегда должны нормализовать значения.

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409


Вот что я имел в виду под "фиктивной кодировкой" для категориальных переменных, но спасибо. И, между прочим, я не согласен с вашим утверждением об упорядоченных факторах («классах пропускной способности»), потому что нет возможности выбирать между, например. (1,2,3) или (1,2,100), что имело бы огромное значение для алгоритма на основе расстояния.
Jubo

0

Ответ на самом деле довольно прост, нам просто нужно понять, какова информация в фиктивной переменной. Идея фиктивной переменной обозначает наличие или отсутствие уровней факторов (дискретные значения категориальной переменной). Он предназначен для представления чего-то неизмеримого, не поддающегося количественному измерению путем хранения информации о том, есть ли оно там или нет. Вот почему фиктивная переменная выражается в двоичных цифрах, столько же, сколько дискретные значения категориальной переменной, которую она представляет (или минус 1).

Представление уровней факторов в виде значений 0/1 имеет смысл только в аналитическом уравнении, таком как линейная модель (это простая концепция для тех, кто может интерпретировать коэффициенты статистических моделей). В фиктивной переменной информация базовой категориальной переменной хранится в порядке битов. При использовании этих битов в качестве измерений для сопоставления входной выборки с пространством объектов (как в случае матрицы сходства / расстояния) информация в порядке битов полностью теряется.


1
Благодарность! На самом деле, я хочу сказать, что фиктивные переменные в фиктивном коде имеют (определенный) смысл на евклидовом расстоянии: если значения отличаются, это добавляет 2 к квадратному расстоянию, если нет, то добавляет 0. И вы можете нормализовать манекены в разных способы, учитывающие количество категорий или их вероятности.
Jubo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.