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
Odpowiedzi:
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.
źródło
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ę.
źródło
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
źródło
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.
źródło