"Uno de los santos griales del aprendizaje automático es automatizar cada vez más el proceso de ingeniería de funciones". - Pedro Domingos, Algunas cosas útiles que debe saber sobre el aprendizaje automático
Featuretools es una biblioteca de Python para ingeniería de funciones automatizada. Consulte la documentación para obtener más información.
Instalar con pip
python -m pip install featuretools
o desde el canal Conda-forge en conda:
conda install -c conda-forge featuretools
Puede instalar complementos individualmente o todos a la vez ejecutando:
python -m pip install "featuretools[complete]"
Primitivas premium : use primitivas premium del repositorio de primitivas premium
python -m pip install "featuretools[premium]"
Primitivas de PNL : utilice primitivas de lenguaje natural del repositorio de primitivas de PNL
python -m pip install "featuretools[nlp]"
Soporte de Dask : use Dask para ejecutar DFS con njobs > 1
python -m pip install "featuretools[dask]"
A continuación se muestra un ejemplo del uso de Deep Feature Synthesis (DFS) para realizar ingeniería de funciones automatizada. En este ejemplo, aplicamos DFS a un conjunto de datos de varias tablas que consta de transacciones de clientes con marca de tiempo.
>> import featuretools as ft
>> es = ft . demo . load_mock_customer ( return_entityset = True )
>> es . plot ()
Featuretools puede crear automáticamente una única tabla de características para cualquier "marco de datos de destino"
>> 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]
Ahora tenemos un vector de funciones para cada cliente que se puede utilizar para el aprendizaje automático. Consulte la documentación sobre Deep Feature Synthesis para obtener más ejemplos.
Featuretools contiene muchos tipos diferentes de primitivas integradas para crear funciones. Si la primitiva que necesita no está incluida, Featuretools también le permite definir sus propias primitivas personalizadas.
Predecir la próxima compra
Repositorio | Computadora portátil
En esta demostración, utilizamos un conjunto de datos de varias tablas de 3 millones de pedidos de comestibles en línea de Instacart para predecir qué comprará un cliente a continuación. Mostramos cómo generar funciones con ingeniería de funciones automatizada y crear un proceso de aprendizaje automático preciso utilizando Featuretools, que se puede reutilizar para múltiples problemas de predicción. Para usuarios más avanzados, mostramos cómo escalar esa canalización a un gran conjunto de datos usando Dask.
Para obtener más ejemplos de cómo utilizar Featuretools, consulte nuestra página de demostraciones.
La comunidad de Featuretools agradece las solicitudes de extracción. Las instrucciones para pruebas y desarrollo están disponibles aquí.
La comunidad de Featuretools se complace en brindar soporte a los usuarios de Featuretools. El apoyo al proyecto se puede encontrar en cuatro lugares según el tipo de pregunta:
featuretools
.Si utiliza Featuretools, considere citar el siguiente artículo:
James Max Kanter y Kalyan Veeramachaneni. Síntesis profunda de funciones: hacia la automatización de los esfuerzos de ciencia de datos. IEEE DSAA 2015 .
Entrada 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 es un proyecto de código abierto mantenido por Alteryx. Para ver los otros proyectos de código abierto en los que estamos trabajando, visite Alteryx Open Source. Si crear canales de ciencia de datos impactantes es importante para usted o su empresa, póngase en contacto.