Uczenie maszynowe z danymi kategorycznymi i ciągłymi

9

To pytanie może być tutaj lub na SO może ...

Załóżmy, że Twój zestaw danych szkoleniowych zawiera zarówno dane jakościowe, jak i ciągłe, takie jak ta konfiguracja:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

Zmienną zależną, którą należy przewidzieć, jest roczny koszt weterynarza. Jestem trochę zdezorientowany co do konkretnych dostępnych technik radzenia sobie z takim zestawem danych. Jakie metody są powszechnie stosowane w przypadku zestawów danych, które są mieszaniną zarówno ciągłych, jak i kategorycznych danych?

reptilicus
źródło

Odpowiedzi:

8

Dla każdej klasy (rasy, płci ...) atrybutów jakościowych możesz dodać do wektora cech liczbę elementów równą liczbie możliwych wartości w tej klasie. Następnie, jeśli punkt danych ma i -tą wartość, ustaw i-ty jeden z tych składników na 1, a resztę dla tego atrybutu na 0.

W twoim przykładzie dla płci dodałeś dwa nowe komponenty do wektora funkcji. Jeśli zwierzę jest płci męskiej, ustawisz pierwszą na 1, a drugą na 0 i odwrotnie, jeśli zwierzę jest samicą. W przypadku zwierząt, jeśli twoje możliwości to kot, pies i ryba, zrobiłbyś to samo z trzema składnikami.

Będą one współistnieć obok siebie z ciągłymi atrybutami. Możesz jednak dostosować wielkość „wartości wskaźnika” (wartość, której używasz, gdy atrybut jest „włączony”), aby była porównywalna z wielkościami używanych wartości ciągłych.

Jeśli wybierzesz ten sposób rozwiązania problemu, następnym krokiem będzie wybranie i algorytm, taki jak maszyna wektora pomocniczego, i nakarmienie go swoim wektorem funkcji. Oczywiście niektóre podejścia, takie jak Drzewa decyzyjne, nie wymagałyby na początku kroku, o którym wspomniałem powyżej.

DJLamar
źródło
1
Fajne, świetne wskazówki! Co z możliwą sytuacją w danych testowych, w której rasa nigdy nie pojawiła się w danych treningowych? Na przykład, jeśli w danych testowych był pudel, ale nie w danych treningowych? Czy najlepszym sposobem byłoby po prostu mieć zera dla wszystkich składników wektora rasy?
reptilicus,
2
W rzeczywistości przeciwne podejście (znane jako dyskretyzacja danych) jest zwykle najlepszym wyborem dla metod hierarchicznych (takich jak algorytmy drzewa decyzyjnego). Dyskretyzacja danych jest również techniką wstępnego przetwarzania danych (jak wspomniano w drugiej odpowiedzi).
rvcoutinho
2

Powinieneś rzucić okiem na wstępne przetwarzanie danych . Przed każdą techniką uczenia maszynowego. Oto dobre wprowadzenie (znalezione w Google).

Jeśli chodzi o techniki, istnieje wiele różnych podejść . Prawdopodobnie możesz użyć większości z nich po wstępnym przetworzeniu danych. Powinieneś spróbować i wybrać ten, który najlepiej odpowiada Twoim potrzebom.

rvcoutinho
źródło