Odpowiedzi:
Bardzo interesujące pytanie (+1). Chociaż nie znam żadnych narzędzi programowych, które obecnie oferują kompleksową funkcjonalność w inżynierii funkcji , zdecydowanie istnieje szeroki zakres opcji w tym zakresie. Obecnie, o ile mi wiadomo, inżynieria obiektów jest nadal w dużej mierze pracochłonnym i ręcznym procesem (tj. Zobacz ten post na blogu ). Mówiąc o dziedzinie inżynierii fabularnej, ten znakomity artykuł Jasona Brownlee zawiera dość wyczerpujący przegląd tego tematu.
Ben Lorica, główny specjalista ds. Danych i dyrektor ds. Strategii treści dla danych w O'Reilly Media Inc., napisał bardzo fajny artykuł , opisujący najnowocześniejsze (od czerwca 2014 r.) Podejścia, metody, narzędzia i startupy w obszar automatyzacji (lub, jak to ujął, usprawnienie ) inżynierii cech.
Rzuciłem okiem na niektóre startupy , o których wspomniał Ben, a produkt firmy Skytree rzeczywiście wygląda imponująco, szczególnie w odniesieniu do tematu tego pytania. To powiedziawszy, niektóre z ich roszczeń wydają mi się bardzo podejrzane (tj. „Skytree przyspiesza metody uczenia maszynowego nawet 150 razy w porównaniu z opcjami open source” ). Kontynuując rozmowę na temat komercyjnej analizy danych i ofert uczenia maszynowego, muszę wspomnieć o rozwiązaniach firmy Microsoft, w szczególności ich Azure Machine Learning Studio . Ten internetowy produkt jest dość wydajny i elegancki i oferuje pewne funkcje inżynierii funkcji (FEF). Przykład prostego FEF można znaleźć w tym fajnym filmie .
Wracając do pytania, myślę, że najprostszym podejściem do automatyzacji inżynierii funkcji jest zastosowanie odpowiednich IDE . Ponieważ ty (ja też) jesteś zainteresowany językiem R jako zapleczem do nauki danych, proponuję sprawdzić, oprócz RStudio, inne podobne IDE o otwartym kodzie źródłowym, zwane RKWard . Jedną z zalet RKWard vs RStudio jest to, że obsługuje pisanie wtyczek dla IDE, umożliwiając tym samym naukowcom danych automatyzację inżynierii funkcji i usprawnienie ich analizy danych w oparciu o R.
Wreszcie, po drugiej stronie spektrum rozwiązań inżynierii obiektów możemy znaleźć projekty badawcze . Dwoma najbardziej znaczącymi wydają się być projekt Columbus Uniwersytetu Stanforda , szczegółowo opisany w odpowiednim artykule badawczym oraz Pranie mózgu , opisane w tym artykule .
Featuretools to niedawno wydana biblioteka Pythona do automatycznej inżynierii funkcji. Opiera się na algorytmie o nazwie Deep Feature Synthesis, pierwotnie opracowanym w 2015 r. MIT i przetestowanym w publicznych konkursach nauki danych na Kaggle.
Oto jak pasuje do wspólnego procesu nauki danych.
Celem biblioteki jest nie tylko pomoc ekspertom w szybszym budowaniu lepszych modeli uczenia maszynowego, ale także zmniejszenie zastraszania osób próbujących się uczyć. Jeśli masz dane sterowane zdarzeniami lub dane relacyjne, gorąco polecam to sprawdzić!
Oświadczenie: Jestem jednym z programistów projektu.
Inżynieria funkcji jest podstawą uczenia maszynowego i jest dość pracochłonna i czasochłonna. Podejmowano różne próby automatyzacji inżynierii obiektów w nadziei na usunięcie człowieka z pętli. Jedną konkretną implementacją, która robi to w przypadku problemów z klasyfikacją, jest automatyczne uczenie się . Wykorzystuje procedurę optymalizacji o nazwie SMAC pod maską, aby wybrać odpowiedni zestaw transformacji i algorytmu (i parametrów algorytmu).
Pamiętaj, że Trifacta oferuje naprawdę łatwe w użyciu narzędzie do transformacji danych. Ma bardzo intuicyjny interfejs GUI, który pozwala skonfigurować mapy transformacji / inżynierii funkcji. Istnieje również bezpłatna wersja próbna, której można używać w przypadku problemów o rozsądnych rozmiarach.
Scikit-learn wydał niedawno nowe transformatory, które zajmują się wieloma aspektami inżynierii cech. Na przykład:
Możesz wykonać wiele technik imputacji brakujących danych za pomocą SimpleImputer
( http://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html ), w tym imputacji wartości średniej, mediany i arbitralnej zarówno w zmiennych liczbowych, jak i kategorycznych .
Można wykonać przypisanie wielowymiarowe za pomocą kilku estymatorów, takich jak Bayes, losowy las i inne (odpowiednik MICE R, Amelia i MissForest) za pomocą IterativeImputer
( https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer .html # sklearn.impute.IterativeImputer )
Możesz wykonać kategoryczne kodowanie na gorąco za pomocą programu OneHotEncoder()
Scikit-learn
Możesz kodować zmienne kategorialne za pomocą liczb za pomocą LabelEncoder
.
Możesz wykonać transformację zmiennych Yeo-Johnsona za pomocą PowerTransformer
( http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PowerTransformer.html )
Możesz dokonać dyskretyzacji za pomocą KBinsDiscretiser
( https://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html )
W Scikit-learn są potencjalnie inne transformatory inżynierii cech, a programiści dość regularnie aktualizują bibliotekę.
Alternatywą dla dobrze znanej biblioteki Scikit-learn jest nowa, niedawno wydana biblioteka open source o nazwie Feature-Engine . Dzięki silnikowi funkcji możesz:
Więcej szczegółów w repozytorium github i dokumentach ( https://feature-engine.readthedocs.io/en/latest/ )
Oświadczenie: Stworzyłem silnik funkcji i uczyniłem go otwartym oprogramowaniem.
Kolejny pakiet Pythona typu open source pozwala na różne typy kodowania zmiennych jakościowych: https://contrib.scikit-learn.org/categorical-encoding/
Wreszcie, narzędzia Feature to dobra biblioteka open source dla danych transakcyjnych.
Należy rozważyć sprawdzenie platformy Azure Machine Learning . Jest online i można go używać z bezpłatnym kontem.
Azure ML zapewnia przepływ pracy za pomocą modułów w graficznym interfejsie użytkownika. Wiele z nich jest powiązanych z Data Munging i możesz łatwo wyczyścić swoje dane. Jeśli jest coś, czego nie możesz zrobić w GUI, możesz po prostu dodać moduł, który pozwala uruchomić niestandardowy skrypt R lub Python do manipulowania danymi.
Zaletą jest to, że możesz łatwo wizualizować swoje dane w dowolnym momencie i sprawdzać proste statystyki, takie jak dataframe.describe()
R.
Amazon Machine Learning to narzędzie, którego czasami używam do inżynierii funkcji.
Ponieważ usługi Amazon AWS pokazały wiele obietnic i standardów, zdecydowanie liczyłbym na Amazon ML, z jego perspektywami i obietnicami dotyczącymi uproszczenia przepływu pracy badaczy danych. Ale na razie jest wciąż mały.
Ale, jak poprosiłeś o narzędzie do inżynierii funkcji, więc jest to jeden z nich.
Niektóre często zadawane pytania dotyczące / dotyczące korzystania z Amazon ML.