Odrabiam pracę domową na drzewach decyzyjnych, a jedno z pytań, na które muszę odpowiedzieć, brzmi: „Dlaczego estymatory zbudowane są z drzew tendencyjnych i jak workowanie pomaga zmniejszyć ich wariancję?”.
Wiem teraz, że przeregulowane modele mają tendencję do bardzo niskiego odchylenia, ponieważ próbują dopasować wszystkie punkty danych. I miałem skrypt w Pythonie, który dopasowywał drzewo do jakiegoś zestawu danych (z jedną cechą. To był tylko sinusoid, z pewnymi wyłączonymi punktami, obrazek poniżej). Zastanawiałem się więc: „cóż, jeśli rzeczywiście nadmiar danych jest zbyt wysoki, czy mogę wyzerować odchylenie?”. I okazało się, że nawet przy głębokości 10000 nadal istnieją pewne punkty, przez które krzywa nie przechodzi.
Próbowałem szukać przyczyny, ale tak naprawdę nie mogłem znaleźć wyjaśnienia. Zgaduję, że może istnieć kilka drzew, które doskonale przejść przez wszystkie punkty, a te które dostaliśmy były po prostu „pech”. A może inny zestaw danych mógłby dać mi obiektywny wynik (może idealny sinusoid?). Lub nawet to, być może cięcia wykonane na początku uniemożliwiły dalsze cięcie w celu pełnego oddzielenia wszystkich punktów.
Biorąc więc pod uwagę ten zestaw danych (ponieważ może być inny dla innych), moje pytanie brzmi: czy można dopasować drzewo do punktu, w którym odchylenie osiągnie zero, czy zawsze będzie jakieś odchylenie, nawet jeśli naprawdę mały? A jeśli zawsze jest co najmniej jakieś uprzedzenie, dlaczego tak się dzieje?
PS Nie wiem, czy to może być istotne, ale użyłem DecisionTreeRegressor
od, sklearn
aby dopasować model do danych.
Odpowiedzi:
Model drzewa decyzyjnego nie zawsze jest bardziej stronniczy niż jakikolwiek inny model uczenia się.
Aby to zilustrować, spójrzmy na dwa przykłady. Niech będzie losową zmienną jednolitą na . Oto możliwe procesy statystyczneX [0,1]
Prawda 1: dla jest funkcją wskaźnika X plus szum:Y X
Prawda 2: dla jest liniową funkcją plus szum:Y X X
Jeśli dopasujemy drzewo decyzyjne w obu sytuacjach, model nie jest tendencyjny w pierwszej sytuacji, ale jest tendencyjny w drugiej. Wynika to z faktu, że jedno podzielone drzewo binarne może odzyskać prawdziwy podstawowy model danych w pierwszej sytuacji. Po drugie, najlepsze, co może zrobić drzewo, to przybliżenie funkcji liniowej poprzez poruszanie się w coraz krótszych odstępach czasu - drzewo o skończonej głębokości może być tak blisko.
Jeśli dopasujemy regresję liniową w obu sytuacjach, model jest tendencyjny w pierwszej sytuacji, ale nie jest tendencyjny w drugiej.
Tak więc, aby wiedzieć, czy model jest stronniczy, musisz wiedzieć, jaki jest prawdziwy mechanizm bazowy danych. W rzeczywistych sytuacjach po prostu nigdy tego nie wiesz, więc nigdy nie możesz naprawdę powiedzieć, czy model w prawdziwym życiu jest stronniczy, czy nie. Czasami uważamy, że mamy całkowitą rację przez długi czas, ale potem uprzedzenie pojawia się z głębszym zrozumieniem (grawitacja Newtona do grawitacji Einsteina jest przynajmniej apokryficznym przykładem).
W pewnym sensie oczekujemy, że większość procesów w świecie rzeczywistym (z pewnymi wyjątkami) będzie tak niepoznawalna, że rozsądnym przybliżeniem prawdy jest to, że wszystkie nasze modele są stronnicze. Wiem, jak wątpliwe jest pytanie, które wymaga głębokiej filozoficznej dyskusji na temat zasadniczej bezcelowości modelowania złożonego procesu statystycznego, ale fajnie jest o tym myśleć.
źródło
Fakt, że niektóre punkty w twoich danych wciąż nie są przewidywane, może wynikać z czegoś zwanego nieredukowalnym błędem. Teoria polega na tym, że w uczeniu maszynowym występuje błąd redukowalny i nieredukowalny. Ideą nieredukowalnego błędu jest to, że bez względu na to, jak dobry jest twój model, nigdy nie będzie idealny. Wynika to z kilku powodów. Po pierwsze, bez względu na to, jak solidne są twoje funkcje treningowe, zawsze będzie jakaś ukryta funkcja wpływająca na wyniki, których nie zawierają dane treningowe. Innym powodem jest to, że w prawie wszystkich danych mogą wystąpić pewne wartości odstające. Zawsze możesz starać się, aby twoje modele były jak najbardziej odporne na wartości odstające, ale bez względu na to, jak bardzo się starasz, wartości odstające zawsze będą istnieć. (Nie oznacza to, że nie powinieneś myśleć o wartościach odstających podczas tworzenia modeli). I ostatni szczegół to to, że nie
źródło