A medida que descubro el aprendizaje automático, veo diferentes técnicas interesantes como:
- ajusta automáticamente los algoritmos con técnicas como
grid search
, - obtener resultados más precisos mediante la combinación de diferentes algoritmos del mismo "tipo", es decir
boosting
, - obtener resultados más precisos mediante la combinación de diferentes algoritmos (pero no el mismo tipo de algoritmos), es decir
stacking
, - y probablemente mucho más que aún tengo que descubrir ...
Mi pregunta es la siguiente: hay todas esas piezas. Pero, ¿es posible juntarlos para crear un algoritmo que tome como entrada datos limpios y genere buenos resultados al sacar lo mejor de todas las técnicas? (Por supuesto, probablemente será menos eficiente que un científico de datos profesional, ¡pero será mejor que yo!) En caso afirmativo, ¿tiene códigos de muestra o conoce marcos que puedan hacer eso?
EDITAR: Después de algunas respuestas, parece que hay que hacer algunos ajustes. Tomemos un ejemplo, tenemos una columna con datos categóricos, llamémosla y
y queremos predecirla a partir de datos numéricos X
que sean dummies o datos numéricos reales (altura, temperatura). Asumimos que la limpieza se ha realizado previamente. ¿Existe algún algoritmo que pueda tomar esos datos y generar una predicción? (probando varios algoritmos, ajustándolos, aumentando, etc.) En caso afirmativo, ¿es computacionalmente eficiente (los cálculos se realizan en un tiempo razonable si lo comparamos con el algoritmo normal), y ¿tiene un ejemplo de código?
fuente
auto.arima
(desde laforecast
biblioteca) puede ser mejor que los humanos, Rob Hyndman lo mencionó varias veces en sus presentaciones. Por lo tanto, hay áreas donde se aplican con éxito algunos tipos de "aprendizaje automático".Respuestas:
Si sabe de antemano en qué tipo de datos ingresará ("estas son ventas mensuales de GPC, con precios y marcadores de promoción, y quiero un pronóstico puntual"), para que pueda ajustar su configuración con anticipación, probablemente será posible y ya hecho, vea varios "sistemas expertos" para ciertas tareas específicas.
Si está buscando algo que pueda tomar cualquier tipo de datos y hacer "algo útil" ("ah, aquí se supone que debo reconocer los códigos postales de escritura y salida, y allí debería hacer detección de fraude, y este archivo de entrada obviamente es una tarea de calificación crediticia "), no, no creo que eso suceda en mucho tiempo.
Perdón por una respuesta basada en la opinión a lo que bien podría cerrarse como una pregunta basada en la opinión.
EDITAR para abordar la pregunta editada:
fuente
Lo que describe ya existe hasta cierto punto, por ejemplo en AutoWEKA , y se está investigando activamente (por ejemplo, desafíos como el AutoML de Chalearn ).
Esto generalmente se considera en el subcampo de optimización de hiperparámetros. Los paquetes de software como Optunity , Hyperopt y ParamILS se pueden usar para optimizar automáticamente los hiperparámetros para un enfoque determinado y elegir qué enfoque es el mejor. Dicho esto, tales problemas de optimización no son triviales y, por lo general, lleva mucho tiempo obtener automáticamente el mejor modelo (o cercano).
Puede encontrar un ejemplo del uso de Optunity para determinar automáticamente el mejor algoritmo de aprendizaje y optimizar sus hiperparámetros en http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html
fuente
Los avances en la sintonización de hiperparámetros y los modelos de conjunto están sacando gran parte del 'arte' de la construcción de modelos. Sin embargo, hay dos aspectos importantes de la construcción de modelos que el ajuste de hiperparámetros y los conjuntos no tienen en cuenta y le impedirán encontrar el mejor modelo posible.
Primero, ciertos tipos de algoritmos son mejores para modelar ciertos tipos de datos. Por ejemplo, si hay interacciones entre sus variables, un modelo aditivo no las va a encontrar, pero sí un árbol de decisión. Saber cómo se comportan los modelos en diferentes conjuntos de datos y elegir el correcto puede requerir conocimiento sobre el dominio para encontrar el mejor algoritmo de modelado.
En segundo lugar, la ingeniería de características y la extracción de características es el verdadero 'arte' para modelar la construcción. Su pregunta supone que el conjunto de datos ya está preparado. Pero lo que no debe suponer es que el conjunto de datos es la mejor representación posible de lo que está tratando de modelar. Esta es siempre una pregunta abierta. En muchos casos, donde el conjunto de datos es complejo, puede diseñar funciones durante todo el día, pero corre el riesgo de arrojar más y más ruido al algoritmo. Para saber qué características agregar, debe saber qué características tienen sentido desde una perspectiva estadística y cuáles tienen sentido desde la perspectiva del experto en el dominio.
Por esas dos razones, concluyo que no, no podrá encontrar un algoritmo que encuentre automáticamente el mejor modelo posible . Esta es también la razón por la que soy escéptico con respecto a los proveedores de software que ofrecen herramientas que reemplazarán la necesidad de científicos de datos.
Sin embargo, si está reduciendo su ambición de encontrar el mejor modelo de un conjunto fijo de modelos, con hiperparámetros óptimos, donde 'mejor' se define como la mayor precisión predictiva en un conjunto de entrenamiento, entonces sí, esto es posible.
Consulte el
caret
paqueteR
como un ejemplo de cómo ajustar modelos automáticamente.caret
usa la búsqueda de cuadrícula, que tiene fallas, y solo construye un modelo a la vez. Sin embargo, hay funciones para comparar modelos y envoltorios convenientes para una larga lista de modelos de muchosR
paquetes diferentes .fuente
Depende de a quién le preguntes.
Recientemente escuché una charla de Scott Golder en Context Relevant . Su producto es esencialmente un robot de selección de características y modelos. El modelo básico subyacente es la regresión logística, pero el sistema básicamente utiliza el aprendizaje automático para descubrir la combinación correcta de selección de características, reducción de dimensiones, regularización, etc. para generar predicciones precisas. Fue una charla muy impresionante, y todos los detalles son muy exclusivos. Aparentemente, sus clientes incluyen compañías financieras importantes y el sistema puede manejar conjuntos de datos arbitrariamente masivos.
Entonces, al menos algunas personas parecen pensar que la ciencia de datos automatizada ya está aquí, al menos para ciertas aplicaciones. Y algunas de esas personas (clientes de Context Relevant) aparentemente están pagando por la nariz para acceder a ella.
fuente
No, no es un sueño. Hemos implementado esto (la combinación de todas las técnicas que mencionó, incluidos los conjuntos apilados) en la biblioteca de aprendizaje automático H2O . Puede leer más al respecto y encontrar ejemplos de código en R y Python aquí .
fuente