Inżynieria cech

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:

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ż

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 .