losowy las onehotencoder

Aug 31 2020

Czy w kontekście Random Forest muszę skonfigurować atrapy / OnehotEncoder w zestawie danych, w którym cechy / zmienne są numeryczne, ale odnoszą się do jakiejś kategorii?

Powiedzmy, że mam następujące zmienne:

Gdzie Yjest zmienna, którą chcę przewidzieć. X'sto cechy.

Skoncentruję się na X1. Jest liczbowy, ale odnosi się do określonej kategorii (np. 1 odnosi się do matematyki, 2 do literatury, a 3 do historii). Czy muszę zastosować OnehotEncoder (lub podejście pozorowane) dla algorytmu Random Forest?

Chyba nie muszę tego robić, ale nie jestem pewien.

Odpowiedzi

1 Josh Aug 31 2020 at 10:44

W teorii same kategorie mogą być obsługiwane w drzewach decyzyjnych. Jednak większość implementacji Pythona będzie działać tylko z liczbami, więc musisz je przekonwertować. Wygląda na to, że już to zrobiłeś. OneHot Encoding to jeden ze sposobów, aby to zrobić, ale teraz, gdy to zrobiłeś, nie jest to konieczne. Możesz wypróbować inne schematy, aby zamienić je w 1 2 3, jeśli nie ma logicznego powodu, aby je mieć w ten sposób. Nazywa się to kodowaniem kategorialnym. Popularnym sposobem jest porządkowanie ich alfabetycznie i numerowanie. Innym sposobem, w kolejności ich częstotliwości. Ostatecznie nie będzie to miało większego znaczenia, ponieważ losowy las umieści liczbę zgodnie ze swoim algorytmem. Może to jednak powodować drobne różnice, więc może spróbuj różnych sposobów. Ale nie, nie będziesz musiał kodować OneHot swoich kategorii, ponieważ są one już liczbami.