Existem ferramentas para engenharia de recursos?

29

Especificamente, o que estou procurando são ferramentas com alguma funcionalidade específica da engenharia de recursos. Eu gostaria de poder facilmente suavizar, visualizar, preencher lacunas, etc. Algo semelhante ao MS Excel, mas que tem R como idioma subjacente em vez de VB.

John
fonte

Respostas:

21

Pergunta muito interessante (+1). Embora eu não conheça nenhuma ferramenta de software que atualmente ofereça uma funcionalidade abrangente para a engenharia de recursos , há definitivamente uma ampla gama de opções nesse sentido. Atualmente, até onde eu sei, a engenharia de recursos ainda é amplamente um processo trabalhoso e manual (ou seja, consulte esta publicação no blog ). Falando sobre o domínio de assunto da engenharia de recursos, este excelente artigo de Jason Brownlee fornece uma visão geral bastante abrangente do tópico.

Ben Lorica, cientista-chefe de dados e diretor de estratégia de conteúdo para dados da O'Reilly Media Inc., escreveu um artigo muito bom , descrevendo as abordagens, métodos, ferramentas e startups de última geração (em junho de 2014) no área de automação (ou, como ele disse, simplificação ) de engenharia de recursos.

Dei uma breve olhada em algumas startups que Ben referenciou e um produto da Skytree realmente parece bastante impressionante, especialmente no que diz respeito ao assunto desta pergunta. Dito isto, algumas de suas reivindicações parecem realmente suspeitas para mim (ou seja, "Skytree acelera os métodos de aprendizado de máquina em até 150x em comparação com as opções de código aberto" ). Continuando falando sobre ciência comercial de dados e ofertas de aprendizado de máquina, devo mencionar soluções da Microsoft, em particular o Azure Machine Learning Studio . Este produto baseado na Web é bastante poderoso e elegante e oferece alguma funcionalidade de engenharia de recursos (FEF). Para um exemplo de um FEF simples, veja este belo vídeo .

Voltando à questão, acho que a abordagem mais simples que se pode aplicar para automatizar a engenharia de recursos é usar os IDEs correspondentes . Como você (eu também) está interessado na linguagem R como back-end de ciência de dados, sugiro verificar, além do RStudio, outro IDE de código aberto semelhante, chamado RKWard . Uma das vantagens do RKWard vs RStudio é que ele suporta a criação de plug-ins para o IDE, permitindo que os cientistas de dados automatizem a engenharia de recursos e simplifiquem sua análise de dados baseada em R.

Finalmente, do outro lado do espectro de soluções de engenharia de recursos, podemos encontrar alguns projetos de pesquisa . Os dois mais notáveis ​​parecem ser o projeto Columbus da Universidade de Stanford , descrito em detalhes no trabalho de pesquisa correspondente , e Brainwash , descrito neste artigo .

Aleksandr Blekh
fonte
5

Featuretools é uma biblioteca python lançada recentemente para engenharia de recursos automatizada. Ele é baseado em um algoritmo chamado Deep Feature Synthesis, originalmente desenvolvido no MIT de 2015 e testado em competições públicas de ciência de dados no Kaggle.

Aqui está como ele se encaixa no processo comum de ciência de dados.

insira a descrição da imagem aqui

O objetivo da biblioteca é não apenas ajudar os especialistas a criar melhores modelos de aprendizado de máquina mais rapidamente, mas tornar o processo de ciência de dados menos intimidador para as pessoas que tentam aprender. Se você possui dados relacionais ou direcionados a eventos, eu recomendo que você verifique!

Disclaimer: Eu sou um dos desenvolvedores do projeto.

Max Kanter
fonte
2

A Engenharia de recursos está no centro do aprendizado de máquina e é bastante trabalhosa e demorada. Houve várias tentativas de automatizar a engenharia de recursos na esperança de tirar o humano do circuito. Uma implementação específica que faz isso para problemas de classificação é o auto-sklearn . Ele usa um procedimento de otimização chamado SMAC sob o capô para escolher o conjunto apropriado de transformações e algoritmos (e parâmetros de algoritmos).

Observe que o Trifacta oferece uma ferramenta realmente fácil de usar para a transformação de dados. Possui uma GUI altamente intuitiva que permite configurar mapas de engenharia de transformação / recursos. Há também uma versão de teste gratuita que pode ser usada para problemas de tamanho razoável.

Nitesh
fonte
2

O Scikit-learn lançou recentemente novos transformadores que abordam muitos aspectos da engenharia de recursos. Por exemplo:

  1. Você pode executar várias técnicas de imputação de dados ausentes com o SimpleImputer( http://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html ), incluindo média, mediana e valor arbitrário de imputação em variáveis ​​numéricas e categóricas .

  2. Você pode fazer imputação multivariada usando vários estimadores, como Bayes, floresta aleatória e outros (equivalentes ao RICE MICE, Amelia e MissForest) com o IterativeImputer( https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer .html # sklearn.impute.IterativeImputer )

  3. Você pode fazer uma codificação quente categórica com o OneHotEncoder()do Scikit-learn

  4. Você pode codificar variáveis ​​categóricas por números com o LabelEncoder.

  5. Você pode fazer a transformação de variáveis ​​Yeo-Johnson com o PowerTransformer( http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PowerTransformer.html )

  6. Você pode fazer discretização com KBinsDiscretiser( https://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html )

Há potencialmente outros transformadores de engenharia de recursos no Scikit-learn e os desenvolvedores atualizam a biblioteca regularmente.

Como alternativa à conhecida biblioteca Scikit-learn, existe uma nova biblioteca de código aberto lançada recentemente, chamada feature-engine . Com o mecanismo de recursos, você pode:

  1. Imputação média, mediana, arbitrária, final de cauda e aleatória em variáveis ​​numéricas e categóricas
  2. Faça vários tipos de codificação categórica, incluindo uma codificação quente, inteira, ordinal, média e peso de evidência.
  3. Faça várias transformações variáveis, incluindo log, recíproco, exp e box cox
  4. Vários tipos de discretização, incluindo igual frequência, igual distância e com base em árvore
  5. Manuseio externo.

Mais detalhes no repositório e nos documentos do github ( https://feature-engine.readthedocs.io/en/latest/ )

Isenção de responsabilidade: criei o mecanismo de recursos e o tornei de código aberto.

Outro pacote python de código aberto permite diferentes tipos de codificação de variável categórica: https://contrib.scikit-learn.org/categorical-encoding/

Por fim, o Feature tools é uma boa biblioteca de código aberto para dados transacionais.

Sola G
fonte
1

Você deve verificar a plataforma do Azure Machine Learning . Está online e você pode usá-lo com uma conta gratuita.

O Azure ML fornece um fluxo de trabalho usando módulos em uma interface gráfica do usuário. Muitos deles estão relacionados ao Data Munging e você pode facilmente limpar seus dados. Se houver algo que você não possa fazer na GUI, basta adicionar um módulo que permita executar o script R ou Python personalizado para manipular seus dados.

A parte boa disso é que você pode visualizar facilmente seus dados a qualquer momento e verificar estatísticas simples como a dataframe.describe()do R.

Tasos
fonte
1

O Amazon Machine Learning é uma ferramenta que eu uso para engenharia de recursos algumas vezes.

Como os serviços Amazon AWS têm mostrado muitas promessas e padrões, eu definitivamente contaria com o Amazon ML, com suas perspectivas e promessas para simplificar o fluxo de trabalho dos cientistas de dados. Mas, a partir de agora, ainda é pequeno.

Mas, como você pediu uma ferramenta para engenharia de recursos, esse é um deles.

Algumas perguntas frequentes sobre / para usar o Amazon ML.

Dawny33
fonte