Czy są jakieś narzędzia do inżynierii obiektów?

29

W szczególności szukam narzędzi z pewną funkcjonalnością, która jest specyficzna dla inżynierii funkcji. Chciałbym móc łatwo wygładzać, wizualizować, wypełniać luki itp. Coś podobnego do MS Excel, ale to ma R jako język podstawowy zamiast VB.

Jan
źródło

Odpowiedzi:

21

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 .

Aleksandr Blekh
źródło
5

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.

wprowadź opis zdjęcia tutaj

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.

Max Kanter
źródło
2

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.

Nitesh
źródło
2

Scikit-learn wydał niedawno nowe transformatory, które zajmują się wieloma aspektami inżynierii cech. Na przykład:

  1. 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 .

  2. 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 )

  3. Możesz wykonać kategoryczne kodowanie na gorąco za pomocą programu OneHotEncoder()Scikit-learn

  4. Możesz kodować zmienne kategorialne za pomocą liczb za pomocą LabelEncoder.

  5. Możesz wykonać transformację zmiennych Yeo-Johnsona za pomocą PowerTransformer( http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PowerTransformer.html )

  6. 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:

  1. Czy oznaczają średnią, medianę, arbitralny, koniec ogona i losowe przypisanie w zmiennych numerycznych i kategorycznych
  2. Wykonuj różne rodzaje kodowania kategorycznego, w tym kodowanie na gorąco, liczbę całkowitą, porządkową, średnią i wagę dowodów.
  3. Wykonuj różne transformacje zmiennych, w tym log, wzajemność, exp i box cox
  4. Różne rodzaje dyskretyzacji, w tym równa częstotliwość, równa odległość i oparte na drzewach
  5. Obsługa wartości odstających.

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.

Podeszwa G.
źródło
1

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.

Tasos
źródło
1

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.

Dawny33
źródło