2012-07-29 17 views
5

Próbuję połączyć model regresji liniowej, ale niektóre z moich polecanych nie są numeryczne, np. "Kolor samochodu", podczas gdy inne to np. "Rozmiar silnika". W przypadkach nieliczbowych nie jestem pewien, jak to przedstawić, dodając jako funkcję wejściową. Jedynym sposobem, w jaki mógłbym to zrobić, byłoby przedstawienie każdego koloru o innej wartości, np. (czerwony = 1, niebieski = 2, zielony = 3 ...) jednak nie wydaje się to dopuszczalne, ponieważ oznacza to, że kolor zielony jest "lepszy" niż czerwony.regresja liniowa z użyciem kategorii jako funkcji

Czy ktoś może pomóc ... Jestem wykonawczych to w Javie więc będę wdzięczny za algorytmy wyrażone w tym języku lub być niezależny od języka.

+0

Do tej pory ... Używałem tylko polecanych, które nie były kategoryczne. – JLove

Odpowiedz

9

Jednym ze sposobów, aby to zrobić jest użycie manekina kodowania Inną techniką jest efekt kodowania.

Proszę odnieść się do tego artykułu, aby uzyskać więcej szczegółów, myślę, że autor wyjaśnił lepiej niż to, co można zrobić tutaj.

Coding Categorical Variables in Regression Models: Dummy and Effect Coding by Resmi Gupta

Myślę, że to rozwiązanie byłoby wpaść język niezależny kategorii;)

do kodowania kolor samochodu (jestem zakładając kolor samochodu może podjąć tylko 3 wartości: czerwony, niebieski, zielony)

można zakodować następująco:

Color Dummy_Var_One Dummy_Var_Two 

Red  1    0 
Blue  0    1 
Green  0    0 

W powyższej tabeli Green staną lev odniesienia el. W twoim przypadku, jeśli twój kolor przyjmuje wartości n, będziesz musiał uwzględnić zmienne atrapowe n-1.

Implementacja w Java można znaleźć w Weka filtrem NominalToBinary, choć to stworzy n zmiennych dla n kategoriach.

+0

Fantastyczna odpowiedź ... Pozdrawiam – JLove

+0

Proszę, muszę wiedzieć, co jeśli używam zmiennych typu manekina ..IS_RED, IS_GREEN & IS_BLUE ... czy to daje więcej niezależnych wyników lub nie ma różnicy. –

Powiązane problemy