Dlaczego mieszane dane stanowią problem dla algorytmów klastrowych opartych na euklidesie?


21

Większość klasycznych algorytmów grupowania i zmniejszania wymiarów (grupowanie hierarchiczne, analiza głównych składników, średnie k, samoorganizujące się mapy ...) są zaprojektowane specjalnie dla danych liczbowych, a ich dane wejściowe są postrzegane jako punkty w przestrzeni euklidesowej.

Jest to oczywiście problem, ponieważ wiele rzeczywistych pytań obejmuje mieszane dane: na przykład, jeśli studiujemy autobusy, wysokość i długość oraz rozmiar silnika będą liczbami, ale możemy być również zainteresowani kolorem (zmienna kategoryczna: niebieski / czerwony / zielony ...) i klasy pojemności (zmienna zamówiona: mała / średnia / duża pojemność). W szczególności możemy chcieć badać te różne typy zmiennych jednocześnie.

Istnieje wiele metod rozszerzenia klasycznych algorytmów grupowania na mieszane dane, na przykład użycie odmienności Gowera do podłączenia do hierarchicznego grupowania lub skalowania wielowymiarowego, lub innych metod, które przyjmują macierz odległości jako dane wejściowe. Lub na przykład ta metoda, rozszerzenie SOM na mieszane dane.

Moje pytanie brzmi: dlaczego nie możemy po prostu użyć odległości euklidesowej na zmiennych mieszanych? lub dlaczego jest to złe? Dlaczego nie możemy po prostu zakodować zmiennych kategorialnych, znormalizować wszystkie zmienne, aby miały podobną wagę w odległości między obserwacjami i uruchomić zwykłe algos na tych matrycach?

To naprawdę łatwe i nigdy nie zrobione, więc przypuszczam, że to bardzo źle, ale czy ktoś może mi powiedzieć, dlaczego? I / lub dać mi jakieś referencje? Dzięki


5
Możesz zrobić, co chcesz, z danymi, aby przedstawić je jako punkty w przestrzeni euklidesowej, ale znaczenie funkcji może zniknąć. Problem leży na poziomie skali pomiarowej, a nie na poziomie przestrzeni. Skala porządkowa powinna być odpowiednio oznaczona ilościowo, kodowanie pozorne nie pomoże. Binarna skala asymetrycznego wyczucia (obecna vs nieobecna) naturalnie wymaga innej metryki odległości niż odległość euklidesowa; plus problem interpolacji (nie ma istotnej średniej między tak i nie).
ttnphns

(cd.) Przestrzeń euklidesowa dotyczy dwóch rzeczy: jest ciągła (drobnoziarnista) i pozwala na dowolne kierunki. Nie wszystkie typy danych wymagają lub witają takie miejsce, aby uwzględnić różnice wynikające z charakteru danych.
ttnphns

Grupowanie hierarchiczne działa z dowolnym podobieństwem, btw. (z wyjątkiem niektórych przypadków, takich jak Totem) - w szczególności możesz użyć np. współczynnika Jaccard, który ma znaczenie w niektórych przypadkach kategorialnych / binarnych.
Anony-Mus-Przywróć Monikę

Odpowiedzi:


5

Nie chodzi o to, że nie można czegoś obliczyć .

Odległości wiele można wykorzystać do zmierzenia czegoś znaczącego . Nie powiedzie się to znacznie wcześniej w przypadku danych kategorialnych. Jeśli kiedykolwiek działa z więcej niż jedną zmienną, to znaczy ...

Jeśli masz atrybuty rozmiaru buta i masy ciała, odległość euklidesowa również nie ma większego sensu. Dobrze, gdy x, y, z są odległościami. Zatem odległość euklidesowa to odległość wzroku między punktami.

A teraz, jeśli zmienne kodowane są fikcyjnie, jakie znaczenie to daje?

Ponadto odległość euklidesowa nie ma sensu, gdy dane są dyskretne.

Jeśli istnieją tylko liczby całkowite x i y, odległość euklidesowa nadal będzie dawać odległości niecałkowite. Nie mapują z powrotem do danych. Podobnie w przypadku zmiennych kodowanych jako fikcyjne odległość nie będzie odwzorowywana z powrotem na liczbę zmiennych fikcyjnych ...

Kiedy następnie planujesz użyć np. Grupowania k-średnich, nie chodzi tylko o odległości, ale o obliczenie średniej . Ale nie ma rozsądnego średniego dla zmiennych zakodowanych w atrapach, prawda?

Wreszcie jest klątwa wymiarowości . Wiadomo, że odległość euklidesowa zmniejsza się, gdy zwiększa się liczbę zmiennych. Dodanie zmiennych zakodowanych w atrapach oznacza, że ​​dość szybko tracisz kontrast odległości. Wszystko jest tak samo jak wszystko inne, ponieważ pojedyncza zmienna fikcyjna może mieć znaczenie.


3

U podstaw tych problemów klastrowych opartych na metrykach leży idea interpolacji.

Weź dowolną metodę, którą właśnie podałeś, i rozważmy zmienną ciągłą, taką jak waga. Masz 100 kg i masz 10 kg danych. Gdy zobaczysz nowy 99 kg, metryka pozwoli ci zbliżyć się do 100 kg --- nawet jeśli nigdy go nie widziałeś. Niestety nie istnieje interpolacja danych dyskretnych.

Kolejnym argumentem na to pytanie jest to, że nie ma na to naturalnego sposobu. Chcesz przypisać 3 wartości w R i uczynić je równymi odległościami między każdą parą, byłoby to niemożliwe. Jeśli przypiszesz je do różnych kategorii i uruchomimy powiedzmy PCA, tracisz informacje, które w rzeczywistości odzwierciedlają tę samą kategorię.


1
Dzięki! Rozumiem problem interpolacji, ale w wielu aplikacjach nie stanowi to problemu (np. Gdy wiemy, że autobusy są zielone, czerwone lub niebieskie i w naszym zestawie danych nie ma innego koloru). Sądzę, że istnieją proste sposoby na standaryzację zmiennych zastępczych, tak aby każda zmienna kategorialna miała „wagę” podobną do wagi każdej zmiennej liczbowej (jeśli zmienne liczbowe również zostały wcześniej znormalizowane). Lub dowolne przypisanie wag różnym zmiennym ...
2014

0

Problem z nieuporządkowanymi wartościami kategorialnymi polega na tym, że jeśli je zakodujesz, wymusisz porządkowanie, a tym samym nowe znaczenie zmiennych. Np. Jeśli kodujesz niebieski jako 1, a pomarańczowy jako 2 i zielony 3, oznacza to, że wzorzec danych o wartości pomarańczowej jest bliższy wzorowi o wartości zielonej niż wzorzec o wartości niebieskiej.

Jednym ze sposobów radzenia sobie z tym jest nadanie im nowych funkcji (kolumn). Dla każdej odrębnej wartości tworzysz nową funkcję binarną i ustawiasz ją na true / false (innymi słowy, binarne koduje wartości i czyni każdy bit kolumną). Dla każdego wzorca danych z tego nowego zestawu funkcji tylko jedna cecha będzie miała wartość 1, a wszystkie pozostałe 0. Ale to zwykle nie zatrzymuje algorytmu treningowego do przypisywania wartości środka ciężkości zbliżonych do 1 do więcej niż jednej cechy. To oczywiście może powodować problemy z interpretacją, ponieważ nie ma to sensu w dziedzinie danych.

Nie masz tego samego problemu z „klasami pojemności”, a mianowicie kategoriami uporządkowanymi, ponieważ w takim przypadku przyporządkowanie wartości liczbowych ma miejsce.

I oczywiście, jeśli używasz funkcji innej natury lub jednostki miary lub innego zakresu wartości, zawsze powinieneś normalizować wartości.

/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


To właśnie miałem na myśli przez „kodowanie pozorowane” dla zmiennych kategorialnych, ale dzięki. A przy okazji nie zgadzam się z twoim stwierdzeniem o uporządkowanych czynnikach („klasach wydajności”), ponieważ nie ma możliwości wyboru między np. (1,2,3) lub (1,2,100), co stanowiłoby ogromną różnicę dla algorytmu opartego na odległości.
jubo

0

Odpowiedź jest w rzeczywistości dość prosta, musimy tylko zrozumieć, czym tak naprawdę są informacje w zmiennej zastępczej. Idea zmiennej fikcyjnej oznacza obecność lub brak poziomów czynników (dyskretne wartości zmiennej kategorialnej). Ma on reprezentować coś, czego nie można zmierzyć, nie można go zmierzyć, przechowując informacje o tym, czy to istnieje, czy nie. To dlatego zmienna fikcyjna jest wyrażona cyframi binarnymi, tyle samo, ile dyskretnych wartości zmiennej kategorialnej reprezentuje (lub minus 1).

Reprezentowanie poziomów czynników jako wartości 0/1 ma sens tylko w równaniu analitycznym, takim jak model liniowy (jest to prosta koncepcja dla tych, którzy potrafią interpretować współczynniki modeli statystycznych). W zmiennej zastępczej informacje o podstawowej zmiennej kategorialnej są przechowywane w kolejności bitów. Podczas używania tych bitów jako wymiarów do mapowania próbki wejściowej na przestrzeń cech (jak w przypadku macierzy podobieństwa / odległości), informacja w kolejności bitów jest całkowicie tracona.


1
Dzięki! W rzeczywistości chodzi mi o to, że zmienne kategorialne zakodowane w atrapach mają (pewien) sens w odległości euklidesowej: jeśli wartości są różne, dodaje 2 do odległości do kwadratu, jeśli nie, dodaje 0. I można normalizować manekiny w różnych sposoby, aby wziąć pod uwagę liczbę kategorii lub ich prawdopodobieństwa.
jubo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.