¿Puedo aprender ciencia de datos sin programar conocimientos?
Data Science es una de las áreas más exigentes y populares de la informática. Uno podría asumir que un científico de datos necesita conocer Python y la programación en general para tener éxito. Aunque esto podría ser cierto hasta cierto punto, en este post discutimos si la Ciencia de los Datos es posible sin programación, y cómo empezar a aprender si usted no es un programador. TL;DR: Microsoft y Udacity acaban de anunciar una colaboración que le ayudará con eso!
Desde que el científico de datos se convirtió en una profesión tan popular, estoy seguro de que muchas personas comenzaron a pensar en aprender ciencia de datos, y muchas de ellas se desanimaron porque pensaron que uno necesita ser un buen programador. La mayoría de la gente piensa que el conocimiento de la máquina de aprendizaje comienza desde Python. Sin embargo, debo asegurarle que este no es el caso. Hay algunos principios básicos de la ciencia de los datos que usted necesita aprender antes aprender Python, y usted puede comenzar a resolver muchos problemas del mundo real sin ninguna codificación en absoluto!
Lo más importante de la ciencia de los datos es empezar a pensar en problemas en términos de datos, características, mediciones de precisión, etc. Es menos importante si entrenas el modelo a través de programas de Python o a través de otras herramientas.
Consideremos un ejemplo: supongamos que queremos entender qué fotografías son mejores para las redes sociales. Por ejemplo, ¿tiene sentido insertar una fotografía de un gatito en una entrada de blog para atraer la atención, o el público está cansado de esas fotografías cursi? ¿Qué se necesita para obtener un alto número de likes para una fotografía en las redes sociales?
Veamos cómo podemos abordar el problema desde la perspectiva de la ciencia de los datos.
Pensando como un científico de datos
La ciencia de los datos depende de los datos. Así que lo primero que tenemos que hacer es recoger el conjunto de datos. En nuestro caso, tenemos una medida objetiva de cuánto le gusta al público algún contenido, y ese es el número de gustos.
Obtener el conjunto de datos
Hay múltiples cosas que pueden afectar el número de likes: la imagen misma, el texto correspondiente, o la fecha y hora de publicación. Vamos a centrarnos sólo en imágenes, y tomar una muestra de imágenes de Instagram, junto con el número correspondiente de me gusta. Así que nuestro conjunto de datos inicial consistiría en una fotografía (URL) y una serie de gustos que ha recibido.
Una vez que tengamos los datos, necesitamos averiguar qué problema resolveremos. Hay una serie de problemas típicos que el aprendizaje automático puede manejar, los más importantes son:
- Clasificación problema, cuando necesitamos categorizar nuestros objetos en dos o más clases. Un ejemplo de problema de clasificación sería filtrar spam de correo electrónico, porque necesitamos clasificar cada correo electrónico en spam o no-spam.
- In Regresión problema, tenemos que predecir un número. Un buen ejemplo sería predecir la cantidad de helado que se vende cada día en una tienda.
- Agrupación problema puede ayudarnos a encontrar tipos similares de objetos y agruparlos sobre la base de algún principio de similitud.
- Detección de anomalías nos permite encontrar datos que difieren de los “normales”
En nuestro caso, tenemos un problema de regresión , porque estamos buscando construir un modelo que predice el número de gustos que nuestra fotografía recibirá.
Características de extracción
Los modelos tradicionales de machine learning trabajan con datos tabulares , cuando cada punto de datos esté representado por una fila en una tabla que conste de características (valores de entrada para el modelo) y etiqueta (el valor que estamos tratando de predecir). Si bien los modelos de red neuronal más avanzados pueden trabajar con imágenes directamente, requieren muchos más datos para entrenarse, por lo que no vamos a discutirlos aquí.
Para entrenar el modelo primero necesitamos realizar featurización , es decir, extraer características numéricas o categóricas de la imagen. Podemos usar Servicios Cognitivos API de visión de ordenador para hacer eso. Los servicios cognitivos pueden tomar una foto como entrada, y luego devolver todo lo que la computadora puede “ver” en esta imagen: información sobre las personas, los objetos, el color dominante, y cualquier texto que esté presente en la imagen. Por ejemplo, podemos extraer las siguientes características:
- categoría principal de la imagen: comida, retrato, edificio, escala, etc.
- número de caras en la imagen y su edad (edad media, en caso de que haya más de una cara)
- colores de fondo y de primer plano
- etiquetas de hash. La forma de representar etiquetas de hash en una tabla se llama codificación de un solo calor - cada etiqueta estaría representada por una columna, que contendrá 1 si la etiqueta corresponde a la imagen, y 0 de lo contrario.
Probablemente también quisiéramos añadir la fecha como una característica. Agregar una fecha puede ser complicado, porque los modelos funcionan mejor en números, y la fecha no es sólo un número. Así que probablemente querríamos representar una fecha por un número de días desde la fecha de inicio, y también añadir “día de la semana” como otra característica, porque la popularidad de un post puede depender mucho del día. También podríamos agregar “fin de semana” función binaria para tratar de detectar cambios en la actividad los fines de semana.
Una gran cantidad de pensamiento se puso en el diseño original de un conjunto de datos, y toda la pregunta sobre qué datos para recopilar. Este proceso es a menudo más importante que el entrenamiento real del modelo, y se puede hacer sin codificación.
Ahora que tenemos los datos, ¡podemos empezar el entrenamiento de modelos! E incluso este paso aparentemente más difícil se puede lograr sin codificación!
Azure Machine Learning
Te mostraré cómo se puede entrenar el modelo sin codificar utilizando el principal servicio de aprendizaje automático de Microsoft - Azure Machine Learning . Este servicio está diseñado tanto para científicos de datos profesionales, que necesitan manejar enormes cargas de trabajo computacionales y de datos, como para principiantes, que están dando sus primeros pasos en Machine Learning. Hay dos tecnologías particularmente útiles para principiantes: AutoML y Diseñador . El proceso de uso de AutoML de principio a fin sin codificación es descrita en la documentación , pero también lo esbozaremos aquí.
Para empezar a trabajar con Azure ML, es necesario crear un Espacio de trabajo . Usted puede empezar a seguir mi tutorial , o documentación oficial . Un espacio de trabajo agrupa todo lo relacionado con su tarea de aprendizaje automático: datos, recursos informáticos, resultados de experimentos y modelos capacitados.
Definir un conjunto de datos
Para empezar, tenemos que crear un Conjunto de datos . Puesto que utilizaríamos un conjunto de datos de Internet, sólo tenemos que especificar la URL del archivo CSV.
Seleccione una opción Crear conjunto de datos a partir de archivos web , especificar tabular tipo de conjunto de datos, y seleccione una opción para usar la primera fila como encabezados. Debería ver la pantalla así con la vista previa de los datos:
Después de crear el conjunto de datos se puede encontrar en el Conjunto de datos sección, y usted puede mirar los datos y explorarlos de varias maneras:
Modelo AutoML de entrenamiento
Con el conjunto de datos, puede entrenar diferentes modelos de aprendizaje automático en él. Sin embargo, si usted no es un científico de datos, probablemente no sabe qué modelo utilizar. Además, podría suceder que algunas columnas de su conjunto de datos necesitan ser excluidos de la formación, por ejemplo, el URL campo, que no contiene información útil para las predicciones, porque cada URL aparece en el conjunto de datos sólo una vez.
ML automático es una tecnología que trata de entrenar diferentes algoritmos de aprendizaje automático hasta que encuentre el mejor. También realiza algunos análisis de características inteligentes para excluir columnas sin sentido, así como hacer un poco de featurización adicional si es necesario. Si el problema es solvable - por lo general puede encontrar un buen modelo. Por supuesto, esto viene a un costo de gastar más potencia informática en probar muchos modelos posibles, pero la potencia informática es definitivamente más fácil de encontrar que un buen profesional del aprendizaje automático.
Para usar Auto ML, sólo necesita unos sencillos pasos:
- Haga clic en ML automatizado en el Portal ML y seleccione el conjunto de datos a utilizar.
- Elegido un Nombre del experimento y columna de destino . En nuestro ejemplo, tenemos que predecir el número de likes, por lo que la columna de destino sería le gusta .
- Necesitas un poco de cálculo para entrenar el modelo. Tienes que hacerlo. crear un nuevo cálculo , y especifique un cluster. Generalmente es una buena idea establecer el número mínimo de nodos a 0, de modo que el clúster se apague automáticamente cuando no está realizando ningún entrenamiento. En cuanto al tipo de máquina virtual, para tareas simples como la que estamos haciendo la opción más barata, Estándar_D1 debería ser suficiente.
- En la página siguiente, seleccione un tipo de tarea: Clasificación , regresión (nuestro caso) o Previsión de series temporales . También puede cambiar algunos de los configuración o configuración de la featurización , si sabes lo que estás haciendo.
- Haga clic en Terminar .
Después de eso, el experimento comenzará. Probablemente llevará bastante tiempo antes de que se entrenen diferentes modelos, dependiendo del valor máximo de los nodos que especifique en su clúster y el tipo de máquina virtual. En mi caso, con 1 nodo de D1 Tardó algo así como 3 horas en encontrar el modelo óptimo.
Usted puede encontrar el experimento en el Experimentos sección del portal: Inicialmente, el experimento contendrá sólo una ejecución, pero es necesario hacer clic en Incluya las carreras de niños mostrar todos los diferentes sub-ensayos que entrenaron diferentes modelos de ML. También es posible que necesite ajustar los parámetros de los gráficos para obtener una buena vista del grado de precisión alcanzado.
Ahora vamos a desmarcar Incluya las carreras de niños , y seleccione el experimento principal. Una vez que la página de detalles se abre, haga clic en Modelos para ver la lista de todos los algoritmos que AutoML intentó entrenar, con su correspondiente precisión alcanzada (en nuestro caso, debido a que estamos entrenando modelos de regresión, utilizamos correlación de lanceman para reflejar la “calidad” del modelo):
Comprensión del modelo
El modelo entrenado ahora nos permite predecir el número de gustos a cualquier fotografía que estamos planeando publicar. Sin embargo, lo que más nos gustaría como resultado es un conjunto de recomendaciones sobre la obtención de una mejor reacción del usuario a la fotografía. En otras palabras, queremos entender qué características afectan al resultado y cómo.
Interpretabilidad de los modelos nos permite entender mejor el modelo, al ver cómo diferentes características afectan el resultado final.
Cuando se entrena un modelo usando AutoML, por defecto Azure ML también ejecuta un experimento de interpretabilidad en el mejor modelo - por eso se ve Ver explicación enlace al lado del modelo superior. Haga clic en él para que se lleve a la pantalla de explicaciones de modelo, donde se puede explorar el efecto de juego de diferentes características. En primer lugar, puede explorar la importancia de las características diseñadas (esta vista se selecciona por defecto), o de las características originales. Podemos cambiar a la vista de características originales cambiando el menú desplegable Seleccionar explicación para señalar a en bruto modelo.
En el diagrama de abajo se puede ver la importancia de la característica. La característica más importante es la fecha posterior ( cuando ), seguida de persona hashtag, y luego por Número de caras , color de frente y Categoría principal . Esto nos permite sacar algunas conclusiones sobre nuestro dominio del problema:
- El factor más importante para obtener más me gusta es el tiempo. Esto se debe probablemente al hecho de que los puestos de mayor edad están recibiendo más gustos con el tiempo, porque son descubiertos por más personas con el tiempo
- Los postes de retrato (que tienen una imagen grande de la persona) están recibiendo más gustos
- El color general de la foto juega un papel bastante importante
- El tipo de fotografía también es importante, pero no tan importante como podríamos pensar. Tenemos que investigar más a fondo qué tipos de fotos reciben más atención
Así, después de crear el modelo de aprendizaje automático, gracias a la interpretabilidad, somos capaces de ver, qué factores contribuyen a la popularidad de una fotografía. También podemos utilizar el modelo directamente, dándole una fotografía como una entrada (pasarla a través de servicios cognitivos de antemano) - y predecirá el número estimado de gustos, para que podamos probar a los candidatos potenciales para su publicación y compararlos.
Más sobre el Curso
El programa que Microsoft y Udacity anuncian hoy consistirá en dos partes. Primero 10000 solicitantes se ofrecerán primer couse fundacional Introducción al aprendizaje automático en Azure con una experiencia de código bajo . Este curso continuará durante 2 meses, y te enseñará cómo hacer conclusiones basadas en datos como esta, y cómo entrenar y utilizar modelos de aprendizaje automático casi sin codificación. Incluirá los siguientes temas importantes:
- Proceso de ciencia de datos para resolver problemas
- Diferentes tipos de datos (datos tabulares, texto, etc.) y la preparación de los datos
- Aprendizaje supervisado vs. no supervisado
- Ingeniería de largometrajes
- Aprendizaje profundo vs. Aprendizaje automático (es decir. cuando debe y cuando no debe usar redes neuronales)
- Algoritmos más importantes para clasificación, regresión, agrupamiento, etc.
Los mejores intérpretes (seleccionados sobre la base de los resultados y el grado de participación de la comunidad) se ofrecerán para obtener una beca e inscribirse para completar Programa de nanogrado de aprendizaje automático con Microsoft Azure .
Si no has probado en serio la Ciencia de los Datos antes - Definitivamente te animo a inscribirte en este curso y obtener el gusto de la Ciencia de los Datos, así como a hablar a tus amigos no-desarrolladores sobre el curso. ¡Nunca ha sido más fácil comenzar este viaje!
Diálogo y discusión
Acerca de este sitio
Soy Cloud Developer Advocate para Microsoft, especializado en IA/ML y F#. También enseño IA y Programación Funcional/Lógica en las mejores Universidades de Moscú. Padre apasionado, Artista Digital, Maestro Gun Fu Cha, etc. Las opiniones son mías y no de mis empleadores. Más ›
Artículos Relacionados: