"L'un des Saint Graal de l'apprentissage automatique est d'automatiser de plus en plus le processus d'ingénierie des fonctionnalités." - Pedro Domingos, Quelques choses utiles à savoir sur l'apprentissage automatique
Featuretools est une bibliothèque Python pour l'ingénierie automatisée des fonctionnalités. Consultez la documentation pour plus d'informations.
Installer avec pip
python -m pip install featuretools
ou depuis le canal Conda-forge sur conda :
conda install -c conda-forge featuretools
Vous pouvez installer les modules complémentaires individuellement ou tous en même temps en exécutant :
python -m pip install "featuretools[complete]"
Premium Primitives - Utilisez les Premium Primitives du dépôt premium-primitives
python -m pip install "featuretools[premium]"
Primitives NLP - Utiliser les primitives de langage naturel du dépôt nlp-primitives
python -m pip install "featuretools[nlp]"
Support Dask - Utilisez Dask pour exécuter DFS avec njobs > 1
python -m pip install "featuretools[dask]"
Vous trouverez ci-dessous un exemple d'utilisation de Deep Feature Synthesis (DFS) pour effectuer une ingénierie automatisée des fonctionnalités. Dans cet exemple, nous appliquons DFS à un ensemble de données multi-tables composé de transactions clients horodatées.
>> import featuretools as ft
>> es = ft . demo . load_mock_customer ( return_entityset = True )
>> es . plot ()
Featuretools peut créer automatiquement un seul tableau de fonctionnalités pour n'importe quelle « trame de données cible »
>> 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]
Nous disposons désormais d'un vecteur de fonctionnalités pour chaque client qui peut être utilisé pour l'apprentissage automatique. Consultez la documentation sur la synthèse de fonctionnalités approfondies pour plus d'exemples.
Featuretools contient de nombreux types différents de primitives intégrées pour créer des fonctionnalités. Si la primitive dont vous avez besoin n'est pas incluse, Featuretools vous permet également de définir vos propres primitives personnalisées.
Prédire le prochain achat
Référentiel | Carnet de notes
Dans cette démonstration, nous utilisons un ensemble de données multitables de 3 millions de commandes d'épicerie en ligne d'Instacart pour prédire ce qu'un client achètera ensuite. Nous montrons comment générer des fonctionnalités avec l'ingénierie automatisée des fonctionnalités et créer un pipeline d'apprentissage automatique précis à l'aide de Featuretools, qui peut être réutilisé pour plusieurs problèmes de prédiction. Pour les utilisateurs plus avancés, nous montrons comment faire évoluer ce pipeline vers un grand ensemble de données à l'aide de Dask.
Pour plus d'exemples d'utilisation de Featuretools, consultez notre page de démonstrations.
La communauté Featuretools accueille les demandes d'extraction. Les instructions de test et de développement sont disponibles ici.
La communauté Featuretools est heureuse de fournir une assistance aux utilisateurs de Featuretools. L’accompagnement projet peut être trouvé à quatre endroits selon le type de question :
featuretools
.Si vous utilisez Featuretools, pensez à citer l'article suivant :
James Max Kanter, Kalyan Veeramachaneni. Synthèse approfondie des fonctionnalités : vers l'automatisation des efforts de science des données. IEEE DSAA 2015 .
Entrée BibTeX :
@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 est un projet open source maintenu par Alteryx. Pour voir les autres projets open source sur lesquels nous travaillons, visitez Alteryx Open Source. Si la création de pipelines de science des données percutants est importante pour vous ou votre entreprise, veuillez nous contacter.