Чому змішані дані є проблемою для алгоритмів кластеризації на основі евкліда?


21

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

Це, звичайно, проблема, оскільки в багатьох реальних питаннях пов'язані змішані дані: наприклад, якщо ми вивчаємо автобуси, висота і довжина та розмір двигуна будуть числами, але нас також може зацікавити колір (категоріальна змінна: синій / червоний / зелений ...) та класи місткості (впорядкована змінна: мала / середня / велика ємність). Зокрема, ми можемо захотіти вивчати ці різні типи змінних одночасно.

Існує ряд методів для поширення класичних кластерних альго на змішані дані, наприклад, використання різниці Gower для підключення до ієрархічного кластеризації або багатовимірного масштабування, або інших методів, які приймають матрицю відстані як вхід. Або, наприклад, цей метод, розширення SOM на змішані дані.

Моє запитання: чому ми не можемо просто використовувати евклідову відстань на змішаних змінних? або чому це погано робити? Чому ми не можемо просто « кодувати» категоричні змінні, нормалізувати всі змінні, щоб вони мали однакову вагу на відстані між спостереженнями та не запустили звичайні альго на цих матрицях?

Це дійсно просто, і ніколи не робиться, тому я гадаю, що це дуже неправильно, але хтось може мені сказати, чому? І / чи дати мені кілька запитів? Спасибі


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

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

Ієрархічна кластеризація працює з будь-якою подібністю, btw. (крім деяких випадків, таких як Уорд) - зокрема, ви можете використовувати, наприклад, коефіцієнт Жакарда, який має значення для деяких категоріальних / бінарних випадків.
Anonymous-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


Ось що я мав на увазі під «манекеном кодування» для категоричних змінних, але дякую. І btw Я не згоден з вашим твердженням про впорядковані фактори ("класи потужностей"), оскільки немає можливості вибрати між напр. (1,2,3) або (1,200), що мало б величезну різницю для алгоритму на основі відстані.
jubo

0

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

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


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