„Einer der heiligen Grale des maschinellen Lernens besteht darin, den Feature-Engineering-Prozess immer mehr zu automatisieren.“ – Pedro Domingos, Ein paar nützliche Dinge, die Sie über maschinelles Lernen wissen sollten
Featuretools ist eine Python-Bibliothek für automatisiertes Feature-Engineering. Weitere Informationen finden Sie in der Dokumentation.
Mit pip installieren
python -m pip install featuretools
oder vom Conda-Forge-Kanal auf Conda:
conda install -c conda-forge featuretools
Sie können Add-ons einzeln oder alle auf einmal installieren, indem Sie Folgendes ausführen:
python -m pip install "featuretools[complete]"
Premium-Primitive – Verwenden Sie Premium-Primitive aus dem Premium-Primitives-Repository
python -m pip install "featuretools[premium]"
NLP-Grundelemente – Verwenden Sie Grundelemente in natürlicher Sprache aus dem nlp-primitives-Repo
python -m pip install "featuretools[nlp]"
Dask-Unterstützung – Verwenden Sie Dask, um DFS mit njobs > 1 auszuführen
python -m pip install "featuretools[dask]"
Nachfolgend finden Sie ein Beispiel für die Verwendung von Deep Feature Synthesis (DFS) zur Durchführung automatisierter Feature-Entwicklung. In diesem Beispiel wenden wir DFS auf einen Datensatz mit mehreren Tabellen an, der aus zeitgestempelten Kundentransaktionen besteht.
>> import featuretools as ft
>> es = ft . demo . load_mock_customer ( return_entityset = True )
>> es . plot ()
Featuretools können automatisch eine einzelne Feature-Tabelle für jeden „Zieldatenrahmen“ erstellen.
>> feature_matrix , features_defs = ft . dfs ( entityset = es , target_dataframe_name = "customers" )
>> feature_matrix . head ( 5 )
zip_code COUNT(transactions) COUNT(sessions) SUM(transactions.amount) MODE(sessions.device) MIN(transactions.amount) MAX(transactions.amount) YEAR(join_date) SKEW(transactions.amount) DAY(join_date) ... SUM(sessions.MIN(transactions.amount)) MAX(sessions.SKEW(transactions.amount)) MAX(sessions.MIN(transactions.amount)) SUM(sessions.MEAN(transactions.amount)) STD(sessions.SUM(transactions.amount)) STD(sessions.MEAN(transactions.amount)) SKEW(sessions.MEAN(transactions.amount)) STD(sessions.MAX(transactions.amount)) NUM_UNIQUE(sessions.DAY(session_start)) MIN(sessions.SKEW(transactions.amount))
customer_id ...
1 60091 131 10 10236.77 desktop 5.60 149.95 2008 0.070041 1 ... 169.77 0.610052 41.95 791.976505 175.939423 9.299023 -0.377150 5.857976 1 -0.395358
2 02139 122 8 9118.81 mobile 5.81 149.15 2008 0.028647 20 ... 114.85 0.492531 42.96 596.243506 230.333502 10.925037 0.962350 7.420480 1 -0.470007
3 02139 78 5 5758.24 desktop 6.78 147.73 2008 0.070814 10 ... 64.98 0.645728 21.77 369.770121 471.048551 9.819148 -0.244976 12.537259 1 -0.630425
4 60091 111 8 8205.28 desktop 5.73 149.56 2008 0.087986 30 ... 83.53 0.516262 17.27 584.673126 322.883448 13.065436 -0.548969 12.738488 1 -0.497169
5 02139 58 4 4571.37 tablet 5.91 148.17 2008 0.085883 19 ... 73.09 0.830112 27.46 313.448942 198.522508 8.950528 0.098885 5.599228 1 -0.396571
[5 rows x 69 columns]
Wir haben jetzt für jeden Kunden einen Feature-Vektor, der für maschinelles Lernen verwendet werden kann. Weitere Beispiele finden Sie in der Dokumentation zur Deep Feature Synthesis.
Featuretools enthält viele verschiedene Arten integrierter Grundelemente zum Erstellen von Features. Wenn das von Ihnen benötigte Grundelement nicht enthalten ist, können Sie mit Featuretools auch Ihre eigenen benutzerdefinierten Grundelemente definieren.
Den nächsten Kauf vorhersagen
Repository | Notizbuch
In dieser Demonstration verwenden wir einen aus mehreren Tabellen bestehenden Datensatz von 3 Millionen Online-Lebensmittelbestellungen von Instacart, um vorherzusagen, was ein Kunde als nächstes kaufen wird. Wir zeigen, wie Sie Features mit automatisiertem Feature-Engineering generieren und mithilfe von Featuretools eine genaue Pipeline für maschinelles Lernen erstellen, die für mehrere Vorhersageprobleme wiederverwendet werden kann. Für fortgeschrittenere Benutzer zeigen wir, wie man diese Pipeline mit Dask auf einen großen Datensatz skaliert.
Weitere Beispiele für die Verwendung von Featuretools finden Sie auf unserer Demoseite.
Die Featuretools-Community freut sich über Pull-Requests. Anleitungen zum Testen und Entwickeln finden Sie hier.
Die Featuretools-Community unterstützt Nutzer von Featuretools gerne. Projektunterstützung gibt es je nach Fragestellung an vier Stellen:
featuretools
-Tag.Wenn Sie Featuretools verwenden, denken Sie bitte darüber nach, das folgende Dokument zu zitieren:
James Max Kanter, Kalyan Veeramachaneni. Deep-Feature-Synthese: Auf dem Weg zur Automatisierung datenwissenschaftlicher Bemühungen. IEEE DSAA 2015 .
BibTeX-Eintrag:
@inproceedings { kanter2015deep ,
author = { James Max Kanter and Kalyan Veeramachaneni } ,
title = { Deep feature synthesis: Towards automating data science endeavors } ,
booktitle = { 2015 {IEEE} International Conference on Data Science and Advanced Analytics, DSAA 2015, Paris, France, October 19-21, 2015 } ,
pages = { 1--10 } ,
year = { 2015 } ,
organization = { IEEE }
}
Featuretools ist ein Open-Source-Projekt, das von Alteryx verwaltet wird. Um die anderen Open-Source-Projekte zu sehen, an denen wir arbeiten, besuchen Sie Alteryx Open Source. Wenn der Aufbau wirkungsvoller Data-Science-Pipelines für Sie oder Ihr Unternehmen wichtig ist, nehmen Sie bitte Kontakt mit uns auf.