Nie potrzebujesz wiedzy na temat domeny (wiedzy o tym, co oznaczają twoje dane ), aby wykonać inżynierii funkcji (znaleźć bardziej wyraziste sposoby kadrowania danych).
Jak wyjaśnił Tu N. , można znaleźć „szybkie i brudne” kombinacje funkcji, które mogą być bardzo przydatne. Biorąc pod uwagę wynik i indywidualną cechę x , można wykonać następujące przekształcenia, x ′ ∈ { e x , log ( x ) , x 2 , x 3 , tanh ( x ) } . Szybka kontrola przydatności transformacji polega na tym, że korelacja między { y , x ′ } jest wyższa niż korelacja międzyyxx′∈{ex,log(x),x2,x3,tanh(x)}{y,x′} .{y,x}
Ostrzeżenie o korelacji: korelacja nie pokazuje wszystkiego i zależnie od używanego modelu (wysoce nieliniowego, takiego jak NN lub RF) i interakcji z innymi zmiennymi, zmiana korelacji może nic nie znaczyć.
Jeśli jednak używasz prostego modelu liniowego, takiego jak regresja logistyczna, jest to OK wskaźnik wydajności. Jednak, jak zauważył Fokhruz Zaman , najlepszym sposobem oceny takiej transformacji byłoby zbudowanie modelu z przekształconą cechą i bez niej oraz sprawdzenie, jak ewoluuje błąd sprawdzania poprawności (na twoich fałdach krzyżowej walidacji).
W ten sposób łatwo jest zauważyć transformacje jednofunkcyjne. Odnoszą się one do wielu danych, w których bardziej ekspresyjny związek między danymi wejściowymi i wyjściowymi może mieć inną skalę. Na przykład związek między dochodem a „szczęściem” wydaje się logarytmiczny, ale nigdy nie zapisuje się bezpośrednio dziennika dochodów uczestnika.
Znalezienie kombinacji funkcji jest trudniejsze. Na początek, jeśli chcesz przetestować każdy dodatek 2 funkcji i masz funkcje , masz do przetestowania kolejność transformacji D 2 . Aby znaleźć takie transformacje, możesz zastosować do problemu model nieliniowy (taki jak NN lub RF) i spróbować zobaczyć, czego się uczy. Jeśli potrafisz określić, co robi warstwa pośrednia w sieci NN, możesz wstępnie obliczyć jej wynik i dodać go jako nową funkcję. Nie będzie musiał go ponownie obliczać i prawdopodobnie spróbuje nauczyć się czegoś nowego.DD2
Może być trudno zinterpretować wewnętrzną reprezentację NN, a nawet zinterpretować znaczenie cechy w Losowym Lesie. Łatwiejszą i prawdopodobnie bardziej odpowiednią metodą do tego celu byłby Boosting z drzewami decyzyjnymi. Istnieje wiele bibliotek implementujących Boosting, a jeśli bierzesz udział w konkursie Kaggle, jak sugeruje Twój post, XGBoost wydaje się być używany przez wielu uczestników, więc możesz znaleźć pomoc / samouczki na temat tego, co opiszę.
Najpierw uruchom algorytm doładowywania, używając tylko pniaków , drzew decyzyjnych na 1 poziomie. Kikuty są bardzo słabe, ale wzmocnienie powoduje, że jest to rozsądny model. Będzie to stanowić punkt odniesienia. W zależności od używanej biblioteki powinieneś być w stanie dość łatwo wyświetlić, które są najczęściej używanymi funkcjami, i powinieneś wykreślić je względem odpowiedzi (lub zrobić histogram, jeśli odpowiedź jest kategoryczna), aby zidentyfikować jakiś wzorzec. To może dać ci intuicję, co byłoby dobrą transformacją pojedynczej funkcji.
Następnie uruchom algorytm Boosting z 2-poziomowymi drzewami decyzyjnymi. Ten model jest o wiele bardziej złożony niż poprzedni; jeśli dwie zmienne wzięte razem mają więcej mocy niż wzięte pojedynczo, model ten powinien przewyższyć poprzednią (ponownie, nie pod względem błędu szkolenia, ale błędu sprawdzania poprawności!). Na tej podstawie powinieneś być w stanie wyodrębnić, które zmienne są często używane razem, a to powinno doprowadzić cię do potencjalnych transformacji wielofunkcyjnych.
W pokrewnych materiałach polecam następujące filmy, ponieważ są one łatwe do śledzenia
Czy możesz wyjaśnić więcej konkretnymi przykładami na temat poniższego stwierdzenia?
Nie jestem pewien, w jaki sposób można wykonać inżynierię funkcji bez dobrego zrozumienia zbioru danych i podanych atrybutów !!
Dane tabelaryczne są opisane w kategoriach obserwacji lub instancji (wierszy), które składają się ze zmiennych lub atrybutów (kolumn). Atrybut może być cechą.
„Pomysł funkcji oddzielnej od atrybutu ma większy sens w kontekście problemu. Cecha jest atrybutem przydatnym lub znaczącym dla twojego problemu. Jest to ważna część obserwacji dla poznania struktury problem, który jest modelowany. ... ... ...
W wizji komputerowej obraz jest obserwacją, ale cechą może być linia na obrazie.
W przetwarzaniu języka naturalnego dokument lub tweet może być obserwacją, a liczba fraz lub słów może być cechą.
W rozpoznawaniu mowy wypowiedź może być obserwacją, ale cechą może być pojedyncze słowo lub fonem. „
Aby uzyskać więcej informacji, odwiedź następujący adres URL:
Poznaj inżynierię funkcji, jak zaprojektować funkcje i jak się na tym poradzić
źródło