¿Hay alguna herramienta para la ingeniería de características?


29

Específicamente, lo que estoy buscando son herramientas con alguna funcionalidad, que es específica para la ingeniería de características. Me gustaría poder suavizar, visualizar, rellenar huecos, etc. Algo similar a MS Excel, pero que tiene R como lenguaje subyacente en lugar de VB.

Respuestas:


21

Pregunta muy interesante (+1). Si bien no conozco ninguna herramienta de software que actualmente ofrezca una funcionalidad integral para la ingeniería de características , definitivamente hay una amplia gama de opciones en ese sentido. Actualmente, hasta donde yo sé, la ingeniería de características sigue siendo en gran medida un proceso laborioso y manual (es decir, vea esta publicación de blog ). Hablando sobre el dominio del tema de ingeniería de características, este excelente artículo de Jason Brownlee proporciona una visión general bastante completa del tema.

Ben Lorica, científico jefe de datos y director de estrategia de contenido para datos de O'Reilly Media Inc., ha escrito un artículo muy agradable que describe los enfoques, métodos, herramientas y nuevas empresas de vanguardia (a partir de junio de 2014) área de automatización (o, como él lo dijo, racionalización ) de ingeniería de características.

Eché un vistazo breve a algunas startups a las que Ben ha hecho referencia y un producto de Skytree parece bastante impresionante, especialmente en lo que respecta al tema de esta pregunta. Dicho esto, algunas de sus afirmaciones me parecen realmente sospechosas (es decir, "Skytree acelera los métodos de aprendizaje automático hasta 150 veces en comparación con las opciones de código abierto" ). Continuando hablando sobre las ofertas comerciales de ciencia de datos y aprendizaje automático, debo mencionar las soluciones de Microsoft, en particular su Azure Machine Learning Studio . Este producto basado en la web es bastante potente y elegante y ofrece algunas funciones de ingeniería de funciones (FEF). Para ver un ejemplo de algunos FEF simples, vea este bonito video .

Volviendo a la pregunta, creo que el enfoque más simple que uno puede aplicar para automatizar la ingeniería de características es usar los IDE correspondientes . Dado que usted (yo también) está interesado en el lenguaje R como un backend de ciencia de datos, sugeriría verificar, además de RStudio, otro IDE de código abierto similar, llamado RKWard . Una de las ventajas de RKWard vs RStudio es que admite la escritura de complementos para el IDE, lo que permite a los científicos de datos automatizar la ingeniería de características y optimizar su análisis de datos basado en R.

Finalmente, en el otro lado del espectro de soluciones de ingeniería de características podemos encontrar algunos proyectos de investigación . Los dos más notables parecen ser el proyecto Columbus de la Universidad de Stanford , descrito en detalle en el documento de investigación correspondiente , y Brainwash , descrito en este documento .


5

Featuretools es una biblioteca de Python recientemente lanzada para ingeniería de características automatizadas. Se basa en un algoritmo llamado Deep Feature Synthesis desarrollado originalmente en 2015 MIT y probado en concursos públicos de ciencia de datos en Kaggle.

Así es como encaja en el proceso común de ciencia de datos.

ingrese la descripción de la imagen aquí

El objetivo de la biblioteca es no solo ayudar a los expertos a construir mejores modelos de aprendizaje automático más rápido, sino hacer que el proceso de ciencia de datos sea menos intimidante para las personas que intentan aprender. Si tiene datos relacionales o impulsados ​​por eventos, le recomiendo que lo revise.

Descargo de responsabilidad: soy uno de los desarrolladores del proyecto.


2

Feature Engineering está en el corazón del Machine Learning y es bastante laborioso y requiere mucho tiempo. Ha habido varios intentos de automatizar la ingeniería de características con la esperanza de sacar al ser humano del círculo. Una implementación específica que hace esto para problemas de clasificación es auto-sklearn . Utiliza un procedimiento de optimización llamado SMAC debajo del capó para elegir el conjunto apropiado de transformaciones y algoritmo (y parámetros de algoritmo).

Tenga en cuenta que Trifacta ofrece una herramienta realmente fácil de usar para la transformación de datos. Tiene una interfaz gráfica de usuario altamente intuitiva que permite configurar mapas de ingeniería de transformación / características. También hay una versión de prueba gratuita que se puede utilizar para problemas de tamaño razonable.


2

Scikit-learn ha lanzado recientemente nuevos transformadores que abordan muchos aspectos de la ingeniería de características. Por ejemplo:

  1. Puede realizar múltiples técnicas de imputación de datos faltantes con SimpleImputer( http://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html ), incluida la imputación de valor medio, medio y arbitrario en variables numéricas y categóricas .

  2. Puede hacer una imputación multivariada utilizando varios estimadores, como Bayes, bosque aleatorio y otros (equivalente a R's MICE, Amelia y MissForest) con IterativeImputer( https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer .html # sklearn.impute.IterativeImputer )

  3. Puede hacer una codificación OneHotEncoder()activa categórica con el de Scikit-learn

  4. Puede codificar variables categóricas por números con el LabelEncoder.

  5. Puede realizar la transformación de variables de Yeo-Johnson con PowerTransformer( http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PowerTransformer.html )

  6. Puede hacer la discretización con KBinsDiscretiser( https://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html )

Hay potencialmente otros transformadores de ingeniería de características en Scikit-learn y los desarrolladores actualizan la biblioteca con bastante regularidad.

Como alternativa a la conocida biblioteca Scikit-learn, hay una nueva biblioteca de código abierto recientemente lanzada llamada feature-engine . Con el motor de funciones puedes:

  1. Hacer imputación media, mediana, arbitraria, final de cola y aleatoria en variables numéricas y categóricas
  2. Realice varios tipos de codificación categórica, incluyendo una codificación activa, entera, ordinal, media y el peso de la evidencia.
  3. Realice varias transformaciones variables incluyendo log, reciproco, exp y box cox
  4. Varios tipos de discretización, incluida la misma frecuencia, la misma distancia y el árbol
  5. Manejo atípico.

Más detalles en el repositorio y documentos de github ( https://feature-engine.readthedocs.io/en/latest/ )

Descargo de responsabilidad: creé el motor de funciones y lo hice de código abierto.

Otro paquete de código abierto de Python permite diferentes tipos de codificación de variables categóricas: https://contrib.scikit-learn.org/categorical-encoding/

Finalmente, Feature tools es una buena biblioteca de código abierto para datos transaccionales.


1

Debería considerar consultar la plataforma Azure Machine Learning . Está en línea y puede usarlo con una cuenta gratuita.

Azure ML le proporciona un flujo de trabajo mediante el uso de módulos en una interfaz gráfica de usuario. Muchos de ellos están relacionados con Data Munging y puede limpiar fácilmente sus datos. Si hay algo que no puede hacer en la GUI, puede agregar un módulo que le permita ejecutar un script R o Python personalizado para manipular sus datos.

Lo bueno de esto es que puede visualizar fácilmente sus datos en cualquier momento y verificar estadísticas simples como la dataframe.describe()de la R.


1

Amazon Machine Learning es una herramienta que utilizo algunas veces para la ingeniería de funciones.

Como los servicios de Amazon AWS han demostrado ser muy prometedores y estándar, definitivamente confiaría en Amazon ML, con sus perspectivas y promesas para simplificar el flujo de trabajo de los científicos de datos. Pero a partir de ahora, todavía es pequeño.

Pero, como solicitó una herramienta para la ingeniería de características, esta es una de ellas.

Algunas preguntas frecuentes sobre / para usar Amazon ML.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.