Inżynieria cech
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
Inżynieria cech lub ekstrakcja cech lub odkrywanie cech to proces wykorzystywania wiedzy dziedzinowej do wydobywania cech (cech, właściwości, atrybutów) z surowych danych . Motywacją jest wykorzystanie tych dodatkowych funkcji do poprawy jakości wyników uczenia maszynowego w porównaniu z dostarczaniem tylko surowych danych do procesu uczenia maszynowego.
Proces
Proces inżynierii cech to:
- Burza mózgów lub testowanie funkcji
- Decydowanie, jakie funkcje utworzyć
- Tworzenie funkcji
- Testowanie wpływu zidentyfikowanych cech na zadanie
- Ulepszanie funkcji w razie potrzeby
- Powtarzać
Typowe cechy techniczne
Poniższa lista zawiera kilka typowych sposobów konstruowania przydatnych funkcji:
- Przekształcenia numeryczne (takie jak przyjmowanie ułamków lub skalowanie)
- Koder kategorii, taki jak koder jeden-gorący lub docelowy (dla danych kategorycznych )
- Grupowanie
- Grupuj wartości zagregowane
- Analiza składowych głównych (dla danych liczbowych)
- Konstrukcja funkcji: budowanie nowych „fizycznych”, opartych na wiedzy parametrów istotnych dla problemu. Na przykład w fizyce konstrukcja liczb bezwymiarowych , takich jak liczba Reynoldsa w dynamice płynów , liczba Nusselta w wymianie ciepła , liczba Archimedesa w sedymentacji , konstrukcja pierwszych przybliżeń rozwiązania, takich jak analityczna wytrzymałość rozwiązań materiałowych w mechanice itp.
Znaczenie
Funkcje różnią się znaczeniem. Nawet stosunkowo nieistotne cechy mogą składać się na model. Wybór funkcji może zmniejszyć liczbę funkcji, aby zapobiec zbyt specyficznemu dopasowaniu modelu do zestawu danych szkoleniowych (nadmiernemu dopasowaniu).
Eksplozja
Eksplozja cech ma miejsce, gdy liczba zidentyfikowanych cech rośnie niewłaściwie. Typowe przyczyny obejmują:
- Szablony funkcji - wdrażanie szablonów funkcji zamiast kodowania nowych funkcji
- Kombinacje cech - kombinacje, których nie można przedstawić za pomocą układu liniowego
Eksplozję cech można ograniczyć za pomocą takich technik, jak: regularyzacja , metody jądra i selekcja cech .
Automatyzacja
Automatyzacja inżynierii cech to temat badawczy, którego początki sięgają lat 90. Oprogramowanie do uczenia maszynowego, które obejmuje zautomatyzowaną inżynierię funkcji, jest dostępne na rynku od 2016 r. Powiązaną literaturę akademicką można z grubsza podzielić na dwa typy:
- Uczenie wielorelacyjnych drzew decyzyjnych (MRDTL) wykorzystuje nadzorowany algorytm, który jest podobny do drzewa decyzyjnego .
- Głęboka synteza cech wykorzystuje prostsze metody. [ potrzebne źródło ]
Uczenie się wielorelacyjnych drzew decyzyjnych (MRDTL)
MRDTL generuje cechy w postaci zapytań SQL, sukcesywnie dodając do zapytań klauzule. Na przykład algorytm może zaczynać się od
WYBIERZ LICZBĘ ( * ) Z ATOMU t1 LEWO POŁĄCZ CZĄSTECZKĘ t2 NA t1 . mol_id = t2 . mol_id GRUPUJ WEDŁUG t1 . mol_id
Zapytanie można następnie sukcesywnie uszczegóławiać, dodając warunki, takie jak „GDZIE t1.opłata <= -0,392”.
Jednak większość badań MRDTL opiera implementacje na relacyjnych bazach danych, co skutkuje wieloma zbędnymi operacjami. Te nadmiarowości można zmniejszyć za pomocą technik, takich jak propagacja identyfikatora krotki. Wydajność można zwiększyć, stosując aktualizacje przyrostowe, które eliminują nadmiarowość. [ źródło promocji? ]
Implementacje open-source
Istnieje wiele bibliotek i narzędzi typu open source, które automatyzują inżynierię funkcji na relacyjnych danych i szeregach czasowych:
- Featuretools to biblioteka Pythona służąca do przekształcania szeregów czasowych i danych relacyjnych w macierze cech do uczenia maszynowego.
-
OneBM lub One-Button Machine łączy transformacje cech i selekcję cech na danych relacyjnych z technikami selekcji cech.
[OneBM] pomaga naukowcom zajmującym się danymi skrócić czas eksploracji danych, umożliwiając im wypróbowanie wielu pomysłów w krótkim czasie. Z drugiej strony umożliwia nie-ekspertom, którzy nie są zaznajomieni z nauką o danych, szybkie wydobywanie wartości z ich danych przy niewielkim wysiłku, czasie i kosztach.
- społeczność getML to narzędzie typu open source do zautomatyzowanej inżynierii funkcji na szeregach czasowych i danych relacyjnych. Jest zaimplementowany w języku C / C++ z interfejsem Pythona. Wykazano, że jest co najmniej 60 razy szybszy niż tsflex, tsfresh, tsfel, featuretools lub kats.
- tsfresh to biblioteka Pythona do ekstrakcji cech z danych szeregów czasowych. Ocenia jakość cech za pomocą testowania hipotez.
- tsflex to biblioteka Pythona typu open source do wyodrębniania funkcji z danych szeregów czasowych. Pomimo tego, że jest w 100% napisany w Pythonie, okazał się szybszy i wydajniejszy pod względem pamięci niż tsfresh, seglearn lub tsfel.
- seglearn to rozszerzenie dla wielowymiarowych, sekwencyjnych danych szeregów czasowych do biblioteki scikit-learn Pythona.
- tsfel to pakiet Pythona do ekstrakcji cech na danych szeregów czasowych.
- kats to zestaw narzędzi Pythona do analizowania danych szeregów czasowych.
Głęboka synteza cech
Algorytm głębokiej syntezy cech (DFS) pokonał 615 z 906 ludzkich zespołów w konkursie.
Sklepy z funkcjami
Magazyn funkcji to miejsce, w którym funkcje są przechowywane i organizowane w celu użycia ich do uczenia modeli (przez naukowców zajmujących się danymi) lub do prognozowania (przez aplikacje, które mają wyszkolony model). Jest to centralna lokalizacja, w której można tworzyć lub aktualizować grupy obiektów utworzone z wielu różnych źródeł danych lub tworzyć i aktualizować nowe zestawy danych z tych grup obiektów na potrzeby modeli szkoleniowych lub do użytku w aplikacjach, które nie chcą obliczać obiektów, ale tylko odzyskać je, gdy są potrzebne do prognozowania.
Magazyn funkcji obejmuje możliwość przechowywania kodu używanego do generowania funkcji, stosowania kodu do nieprzetworzonych danych i udostępniania tych funkcji modelom na żądanie. Przydatne możliwości obejmują wersjonowanie funkcji i zasady regulujące okoliczności, w których można używać funkcji.
Magazyny funkcji mogą być samodzielnymi narzędziami programowymi lub wbudowanymi w platformy uczenia maszynowego.
Zobacz też
- współzmienna
- Transformacja danych
- Ekstrakcja cech
- Uczenie się funkcji
- Haszująca sztuczka
- Metoda jądra
- Lista zestawów danych do badań nad uczeniem maszynowym
- Mapowanie przestrzeni
- Estymacja zmiennych instrumentalnych
Dalsza lektura
- Boehmke, Bradley; Greenwell, Brandon (2019). „Inżynieria cech i celów”. Praktyczne uczenie maszynowe z R . Chapmana i Halla. s. 41–75. ISBN 978-1-138-49568-5 .
- Zheng, Alicja; Casari, Amanda (2018). Inżynieria funkcji dla uczenia maszynowego: zasady i techniki dla naukowców zajmujących się danymi . O'Reilly. ISBN 978-1-4919-5324-2 .
- Zumel, Nina; Góra, John (2020). „Inżynieria danych i kształtowanie danych”. Praktyczna nauka o danych z R (wyd. 2). Manninga. s. 113–160. ISBN 978-1-61729-587-4 .