"Um dos objetivos primordiais do aprendizado de máquina é automatizar cada vez mais o processo de engenharia de recursos." ― Pedro Domingos, Algumas coisas úteis para saber sobre aprendizado de máquina
Featuretools é uma biblioteca python para engenharia automatizada de recursos. Consulte a documentação para obter mais informações.
Instalar com pip
python -m pip install featuretools
ou do canal Conda-forge no conda:
conda install -c conda-forge featuretools
Você pode instalar complementos individualmente ou todos de uma vez executando:
python -m pip install "featuretools[complete]"
Primitivos Premium - Use Primitivos Premium do repositório premium-primitivos
python -m pip install "featuretools[premium]"
Primitivos de PNL - Use primitivos de linguagem natural do repositório nlp-primitivos
python -m pip install "featuretools[nlp]"
Suporte Dask - Use Dask para executar DFS com njobs > 1
python -m pip install "featuretools[dask]"
Abaixo está um exemplo de uso do Deep Feature Synthesis (DFS) para realizar engenharia automatizada de recursos. Neste exemplo, aplicamos DFS a um conjunto de dados de múltiplas tabelas que consiste em transações de clientes com carimbo de data/hora.
>> import featuretools as ft
>> es = ft . demo . load_mock_customer ( return_entityset = True )
>> es . plot ()
Featuretools pode criar automaticamente uma única tabela de recursos para qualquer "dataframe 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]
Agora temos um vetor de recursos para cada cliente que pode ser usado para aprendizado de máquina. Consulte a documentação sobre Deep Feature Synthesis para obter mais exemplos.
Featuretools contém muitos tipos diferentes de primitivas integradas para a criação de recursos. Se a primitiva necessária não estiver incluída, o Featuretools também permite definir suas próprias primitivas personalizadas.
Preveja a próxima compra
Repositório | Caderno
Nesta demonstração, usamos um conjunto de dados multitabelas de 3 milhões de pedidos de supermercado online da Instacart para prever o que um cliente comprará em seguida. Mostramos como gerar recursos com engenharia automatizada de recursos e construir um pipeline de aprendizado de máquina preciso usando Featuretools, que pode ser reutilizado para vários problemas de previsão. Para usuários mais avançados, mostramos como dimensionar esse pipeline para um grande conjunto de dados usando Dask.
Para mais exemplos de como usar Featuretools, confira nossa página de demonstrações.
A comunidade Featuretools aceita solicitações pull. Instruções para teste e desenvolvimento estão disponíveis aqui.
A comunidade Featuretools tem prazer em fornecer suporte aos usuários do Featuretools. O apoio ao projeto pode ser encontrado em quatro locais, dependendo do tipo de pergunta:
featuretools
.Se você usa Featuretools, considere citar o seguinte artigo:
James Max Kanter, Kalyan Veeramachaneni. Síntese profunda de recursos: para automatizar empreendimentos de ciência de dados. 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 é um projeto de código aberto mantido pela Alteryx. Para ver outros projetos de código aberto em que estamos trabalhando, visite Alteryx Open Source. Se construir pipelines de ciência de dados impactantes é importante para você ou sua empresa, entre em contato.