Czytałem gdzieś, że jeśli mamy funkcje, które są zbyt skorelowane, musimy je usunąć, ponieważ może to pogorszyć model. Oczywiste jest, że skorelowane funkcje oznaczają, że przynoszą te same informacje, więc logiczne jest usunięcie jednej z nich. Ale nie rozumiem, dlaczego może to pogorszyć model.
35
Odpowiedzi:
Skorelowane cechy zasadniczo nie poprawiają modeli (chociaż zależy to od specyfiki problemu, takich jak liczba zmiennych i stopień korelacji), ale wpływają na określone modele na różne sposoby i w różnym stopniu:
W przypadku modeli liniowych (np. Regresja liniowa lub regresja logistyczna) wielokolaryzacja może dawać rozwiązania, które są bardzo różne i prawdopodobnie niestabilne numerycznie .
Losowe lasy mogą być dobre w wykrywaniu interakcji między różnymi obiektami, ale wysoce skorelowane cechy mogą maskować te interakcje.
Mówiąc bardziej ogólnie, można to uznać za specjalny przypadek brzytwy Ockhama . Preferowany jest prostszy model, aw pewnym sensie model z mniejszą liczbą funkcji jest prostszy. Koncepcja minimalnej długości opisu czyni to bardziej precyzyjnym.
źródło
(Zakładając, że mówisz o nadzorowanym uczeniu się)
Skorelowane funkcje nie zawsze pogorszą twój model, ale nie zawsze go poprawią.
Istnieją trzy główne powody, dla których należy usunąć skorelowane funkcje:
Ze względu na przekleństwo wymiarowe, mniej funkcji zwykle oznacza dużą poprawę prędkości.
Jeśli prędkość nie stanowi problemu, być może nie usuwaj tych funkcji od razu (patrz następny punkt)
Słowo kluczowe jest szkodliwe. Jeśli masz skorelowane cechy, ale są one również skorelowane z celem, chcesz je zachować. Możesz zobaczyć funkcje jako wskazówki, aby dobrze zgadnąć, jeśli masz dwie wskazówki, które są w zasadzie takie same, ale są to dobre wskazówki, warto je zachować.
Niektóre algorytmy, takie jak Naive Bayes, faktycznie korzystają bezpośrednio z „pozytywnych” skorelowanych funkcji. Inni, jak losowy las, mogą pośrednio z nich skorzystać.
Wyobraź sobie, że masz 3 cechy A, B i C. A i B są wysoce skorelowane z celem i ze sobą, a C wcale nie jest. Jeśli spróbujesz z 3 funkcji, masz 2/3 szansy na uzyskanie „dobrej” cechy, natomiast jeśli usuniesz na przykład B, szansa spada do 1/2
Oczywiście, jeśli skorelowane cechy nie są superinformacyjne, algorytm może nie ucierpieć.
Morał historii, usunięcie tych funkcji może być konieczne ze względu na szybkość, ale pamiętaj, że możesz pogorszyć algorytm. Ponadto niektóre algorytmy, takie jak drzewa decyzyjne, mają wbudowany wybór funkcji.
Dobrym sposobem na poradzenie sobie z tym jest użycie metody otoki do wyboru funkcji. Usunie zbędne funkcje tylko wtedy, gdy nie przyczynią się one bezpośrednio do wydajności. Jeśli będą przydatne, jak w naiwnych laurach, zostaną zachowane. (Pamiętaj jednak, że metody owijania są drogie i mogą prowadzić do przeregulowania)
Jeśli Twój model wymaga interpretacji, być może będziesz zmuszony go uprościć. Pamiętaj też, aby pamiętać o brzytwie Ockhama. Jeśli twój model nie jest „o wiele” gorszy przy mniejszej liczbie funkcji, prawdopodobnie powinieneś użyć mniejszej liczby funkcji.
źródło
Czasami skorelowane cechy - i powielanie dostarczanych informacji - nie szkodzą systemowi predykcyjnemu. Rozważ zespół drzew decyzyjnych, z których każde uwzględnia próbkę wierszy i próbkę kolumn. Jeśli dwie kolumny są wysoce skorelowane, istnieje szansa, że jedna z nich nie zostanie wybrana w próbce kolumny określonego drzewa, a drzewo będzie zależeć od pozostałej kolumny. Skorelowane funkcje oznaczają, że możesz ograniczyć przeregulowanie (poprzez próbkowanie kolumnowe) bez rezygnacji ze zbyt dużej jakości predykcyjnej.
źródło
Podejmowanie decyzji powinno odbywać się na podstawie minimalnych niezbędnych zmiennych. Jest to, jak wspomniano powyżej, formalizacja brzytwy Occama z minimalną długością opisu powyżej. Lubie ten.
Chciałbym scharakteryzować to zjawisko w czymś takim jak HDDT, co oznacza najbardziej wydajne drzewo, które nie podejmuje fałszywych decyzji w oparciu o dostępne dane, i unikając wszystkich przypadków decyzji, które mogłyby zostać podjęte na wielu punktach danych bez zrozumienia, że były one skorelowane .
źródło
W perspektywie przechowywania danych w bazach danych przechowywanie skorelowanych funkcji jest w pewien sposób podobne do przechowywania zbędnych informacji, które mogą powodować marnowanie pamięci, a także mogą powodować niespójne dane po aktualizacji lub edycji krotek.
Jeśli dodamy do modelu tyle skorelowanych cech, możemy spowodować, że model weźmie pod uwagę niepotrzebne cechy i możemy mieć klątwę dotyczącą problemu wysokiej wymiarowości , to chyba powód pogorszenia skonstruowanego modelu.
W kontekście uczenia maszynowego zwykle używamy
PCA
do zmniejszenia wymiaru wzorców wejściowych. To podejście rozważa usunięcie skorelowanych funkcji w jakiś sposób (przy użyciuSVD
) i jest podejściem bez nadzoru. Odbywa się to w celu osiągnięcia następujących celów:Chociaż może to nie wydawać się w porządku, ale widziałem ludzi, którzy używają usuwania skorelowanych funkcji, aby uniknąć nadmiernego dopasowania, ale nie sądzę, że to dobra praktyka. Aby uzyskać więcej informacji, gorąco polecam do obejrzenia tutaj .
Innym powodem jest to, że w modelach dogłębnego uczenia się, na przykład
MLPs
po dodaniu skorelowanych funkcji, dodaje się niepotrzebne informacje, które dodają więcej obliczeń i parametrów do modelu.źródło
Odpowiedź na to pytanie zależy w dużej mierze od celu modelu. Wnioskując, wysoce skorelowane cechy są dobrze znanym problemem. Na przykład dwie cechy wysoce skorelowane ze sobą oraz z y, mogą okazać się nieistotne w modelu wnioskowania, potencjalnie brakując ważnego sygnału wyjaśniającego. Dlatego wnioskowanie jest ogólnie zalecane, aby je rozrzedzić.
Jeśli twoje nadzorowane uczenie się ma na celu przewidywanie, odpowiedź - w przeciwieństwie do konwencjonalnej mądrości - jest zwykle odwrotna. Jedynym powodem do usunięcia wysoce skorelowanych funkcji są problemy z pamięcią masową i prędkością. Poza tym ważne jest, czy funkcje mają wpływ na przewidywanie i czy ich jakość danych jest wystarczająca.
Cechy zdominowane przez hałas będą zwykle mniej skorelowane z innymi cechami niż cechy skorelowane zy. Dlatego, jak wspomniano powyżej w przykładzie Valentina, przerzedzenie tego drugiego zwiększy proporcję tego pierwszego.
W szczególności metody takie jak losowe lasy i KNN traktują wszystkie cechy jednakowo, więc przerzedzenie skorelowanych cech bezpośrednio zmniejsza ich stosunek sygnału do szumu.
Metody, które automatycznie wybierają funkcje, takie jak pojedyncze drzewa, „czyste” lasso lub sieci neuronowe, mogą być mniej dotknięte. Ale nawet wtedy, poza dłuższym czasem obliczeniowym, rzadko pozostaje nic do stracenia pod względem prognozowania z powodu zachowania skorelowanych cech w miksie.
źródło