Paloma Recuero de los Santos Data Science: ¿Cómo hacer las preguntas adecuadas? Cuando hablamos de Ciencia de Datos, o de Aprendizaje Automático, solemos hablar de datos, algoritmos, modelos, etc. Y no nos damos cuenta de que, quizás, hemos pasado”de puntillas” por...
Antonio Pita Lozano ¡Que la fuerza te acompañe LEIA! Son tiempos difíciles para la galaxia, la crisis financiera acecha a la unión y los estados periféricos imponen aranceles en su luchan con el control comercial. De forma silenciosa,...
Ana Zamora LUCA elige Hortonworks con Hadoop como su plataforma para ofrecer Big Data as a Service en España En un contexto de mercado cada vez más competitivo, los datos son un activo de gran relevancia para las empresas. Las grandes empresas necesitan optimizar todos los datos que...
David Bonomo Cómo transformar una compañía. Paso 1: Priorizar casos de uso En esta serie de artículos vamos a profundizar en los pasos que las compañías deben llevar a cabo para transformarse. En este primero nos vamos a centrar en cómo hacer una selección...
LUCA Caso de éxito: Optimizando el plan de carreteras de Highways England La industria del transporte es una industria muy permeable a la aplicación de estrategias de Big Data e Inteligencia Artificial, ya que existen casos de uso claros para maximizar...
LUCA Incorporación de Big Data en el sector público: caso de éxito Navantia ¿Cuáles son los ingredientes principales para una transformación digital exitosa? La transformación digital se ha hecho indispensable en casi todos los sectores, también en la administración pública y, como hoy vamos...
LUCA Caso de éxito: Optimizando el plan de carreteras de Highways England La industria del transporte es una industria muy permeable a la aplicación de estrategias de Big Data e Inteligencia Artificial, ya que existen casos de uso claros para maximizar...
LUCA Movistar Team: Los mejores ciclistas, el mejor cuerpo técnico, la mejor estrategia … y Big Data By Mikel Zabala, PhD (Sport Scientist, Profesor Titular de la Universidad de Granada y miembro del equipo de entrenadores de Movistar Team), Javier Carro (Data Scientist en LUCA) y...
LUCA Domina los videojuegos clásicos con OpenAI y Machine Learning Para muchos de nosotros, pensar en videojuegos es recordar la infancia. Nos acordamos de todas esas horas que pasamos intentando pasar al siguiente nivel, y hasta podemos escuchar la...
Paloma Recuero de los Santos Video Post #9: Analíticas Big Data, sí, pero ¿Cuáles? Sabemos que las analíticas avanzadas Big Data son imprescindibles para no perder la comba de la innovación digital. Lo que no tenemos tan claro es qué tipo de...
LUCA LUCA Talk: La transformación empieza por la formación La transformación digital de las empresas empieza por el cambio cultural de las personas y no en la tecnología. De nada sirve apostar por tecnología más puntera como Machine...
Paloma Recuero de los Santos Video Post #14: “ScyPy, NumPy, Pandas…¿Qué librerías Python necesito? En esta nueva edición de LUCA video post, damos un paso más en nuestro aprendizaje de Python aprendiendo lo que son los módulos, y, en particular las...
Python para todos (5): Termina tu primer experimento de Machine Learning con PythonPaloma Recuero de los Santos 17 abril, 2018 Llegamos por fin a la última parte del experimento de Machine Learning con Python para todos los públicos. Hemos ido paso a paso, a lo largo de 5 post, aclarando dudas, aprendiendo sobre la marcha, sin prisa, pero sin pausa. En este último post seleccionamos los algoritmos, construimos el modelo, y lo ponemos a prueba con el dataset de validación. Hemos construido un buen modelo, y lo mejor de todo, le hemos perdido miedo a Python. Así que…¡ a seguir aprendiendo! Los pasos que vamos a dar a partir de ahora son los siguientes: Carga de los datos y módulos/librerías necesarias para este ejemplo.Exploración de los datos .Evaluación de diferentes algoritmos para seleccionar el modelos más adecuado a este caso.Aplicación del modelo para hacer predicciones a partir de lo “aprendido”. Para que no sea demasiado largo, en este 4º post realizaremos los dos primeros pasos y, en el siguiente y último (¡todo llega!), el tercero y el cuarto. 3. Selección del algoritmos. Ha llegado el momento de crear modelos a partir de los datos conocidos y estimar su precisión sobre datos nuevos. Para ello vamos a dar los siguientes pasos.: Separaremos una parte de los datos para crear un dataset de validaciónUsaremos validación cruzada de 10 interacciones para estimar la precisiónConstruiremos 5 modelos diferentes para predecir, a partir de las medidas de las flores recogidas en el dataset, a qué especie pertenece una flor nuevaSeleccionaremos el mejor modelo 3.1 Creación del conjunto de datos de validación. ¿Cómo sabemos si nuestro modelo es bueno?. Para conocer qué tipo de métricas podemos usar para evaluar la “bondad” de un modelo basado en Machine Learning, os recomendamos leer este post que publicamos recientemente sobre la Matriz de Confusión. Usaremos métodos estadísticos para estimar la precisión de los modelos, pero también tendremos que evaluarlos sobre datos “nuevos”. Para ello, tal y como hicimos en un experimento anterior de Machine Learning, esta vez en Azure Machine Learning Studio, reservaremos un 20% de los datos del dataset original. Así, aplicándolo a este conjunto de validación, podremos comprobar cómo funciona el modelo que hemos generado entrenando, el algoritmo que elijamos en este caso, con el 80% restante. Este procedimiento es lo que se conoce como método de retención (holdout method). Con el siguiente código, que, como hemos hecho hasta ahora podemos teclear o copiar y pegar en nuestro Jupyter Notebook, separamos los datos en los conjuntos de entrenamiento X_train, Y_train, y los de validación X_validation, Y_validation. Este método resulta práctico porque es muy rápido a la hora de computar. Sin embargo, no es muy preciso, ya que los resultados varían mucho si elegimos datos de entrenamiento diferentes. Debido a estas carencias surgió el concepto de validación cruzada. 3.2 Validación cruzada El objetivo de la validación cruzada o cross-validation es garantizar que los resultados que obtengamos sean independientes de la partición entre datos de entrenamiento y datos de validación, y por eso se usa mucho en para validar modelos generados en proyectos de IA. Consiste en repetir y calcular la media aritmética de las medidas de evaluación que obtenemos sobre diferentes particiones. En este caso, vamos a utilizar un proceso de validación cruzada con 10 interacciones. Eso significa que nuestro conjunto de datos de entrenamiento, se divide en 10 partes, entrena en 9, valida en 1 y repite el proceso 10 veces. En la imagen podemos ver un ejemplo muy visual de cómo sería el proceso con 4 interacciones. Figura 1: Validación Cruzada, (By Joan.domenech91 CC BY-SA 3.0) Para evaluar el modelo, elegimos para la variable de estimación scoring la métrica accuracy (precisión), que representa el ratio entre el número de instancias que el modelo ha predicho correctamente, frente al número total de instancias del dataset, multiplicado por 100 para dar un resultado porcentual. Para ello, añadimos el siguiente código: 3.3 Construcción de los modelos Como a priori no sabemos qué algoritmos pueden funcionar mejor para este problema, vamos a probar con 6 diferentes, tanto lineales (LR, LDA), como no lineales (KNN, CART, NB y SVM). Las gráficas iniciales ya indican que podemor ir por buen camino, porque que se aprecia que algunas clases van a ser linealmente separables en alguna dimensión. Vamos a evaluar los siguientes algoritmos: Regresión logística (LR)Análisis del Discriminante lineal (LDA)K- Vecinos más cercanos (KNN)Árboles de clasificación y regresión (CART)Gaussiana Naive Bayes (NB)Máquinas de vectores de soporte (SVM) Antes de cada ejecución resetearemos el valor inicial (seed) para asegurarnos que la evaluación de cada algoritmo se realiza usando el mismo conjunto de datos (data split), para asegurarnos de que los resultados sean directamente comparables. Añadimos, por tanto, el siguiente código: 3.4 Elegimos el modelo que funciona mejor Si ejecutamos las celdas (Cell/Run Cells) podemos observar los estimadores para cada modelo. De esta forma, los podemos comparar y elegir el mejor. Si observamos los resultados obtenidos, podemos ver que el modelo que da un mayor valor de precisión es KNN (98%) Figura 2: Resultados de precisión de los distintos algoritmos. También podemos hacer una gráfica con los resultados de evaluación de los modelos y comparar su distribución y la precisión media para cada modelo (ya que se cada algoritmo se evalúa en 10 interacciones por el tipo de validación cruzada que hemos elegido). Para ello, añadimos el siguiente código: Obtenemos como resultado: Figura 3: Box and Whisker plots de comparación de algoritmos. En el diagrama de caja y bigotes se aprecia claramente cómo la precisión para muchas de las muestras en los modelos KNN, NB y SVM llega a ser del 100%, mientras que el modelo que ofrece menor precisión es la regresión lineal LR. 4. Aplicamos el modelo para hacer predicciones. Ha llegado el momento de poner a prueba el modelo creado a partir de los datos de entrenamiento. Para ello, lo que hacemos es aplicarlo a esa parte del dataset original que separamos al principio como dataset de validación. Como tenemos los valores correctos de clasificación, y no se han usado en el entrenamiento del modelo, si comparamos los valores reales con predichos por el modelo sabremos si el modelo es bueno o no. Para ello, aplicamos el modelo elegido (el que nos haya dado mayor precisión en el paso anterior) directamente a éste dataset, y resumimos los resultados con un valor de precisión final (final validation score), una matriz de confusión y un informe de clasificación. Para aplicar el modelo basado en el algoritmo SVM, no tenemos más que ejecutar el siguiente código: Obtenemos algo similar a esto: Figura 4: Evaluación del algoritmo sobre el dataset de validación. Como vemos, la precisión es 0.93, un 93%, un dato muy bueno. La matriz de confusión, por su parte, nos indica el número de puntos para los cuales la predicción del modelo ha sido correcta (valores en la diagonal: 7+10+11=28), y los elementos fuera la diagonal son los errores de predicción (2). Por tanto, podemos concluir que es un buen modelo que podemos aplicar con tranquilidad a un nuevo dataset. Hemos basado el modelo en el algoritmo SVM, pero los valores de precisión para KNN también son muy buenos. ¿Os animáis a hacer éste último paso aplicando este otro algoritmo? Con este paso, podríamos dar por terminado nuestro primer experimento de Machine Learning con Python. Nuestra recomendación: vuelve a hacer todo el experimento, toma nota de las dudas que te surjan, intenta buscar respuestas por tu cuenta, prueba a hacer pequeños cambios en el código, como el último que hemos propuesto y…. En plataformas como Coursera, edX, DataCamp, o CodeAcademy puedes encontrar cursos gratuitos para seguir avanzando. ¡No dejes de aprender!. Todos los post de este tutorial, aquí: Introducción: Machine Learning con Python para todos los públicos.Python para todos (1): Instalación del entorno Anaconda.Python para todos (2): ¿Qué son los Jupiter Notebook?. Creamos nuestro primer notebook y practicamos algunos comandos fáciles.Python para todos (3): ¿Qué son las librerías?. Preparamos el entorno.Python para todos (4): Empezamos el experimento propiamente. Carga de datos, análisis exploratorio (dimensiones del dataset, estadísticas, visualización etc)Python para todos (5) Final: Creación de los modelos y estimación de su precisión Agradecimientos a Jason Brownie, autor de experimento original en el que se basa esta serie. No te pierdas ninguno de nuestros post. Suscríbete a LUCA Data Speaks. También puedes seguirnos en nuestras redes sociales: @Telefonica, @LUCA_D3, @ElevenPaths Esta semana en el blog de LUCA: (9 al 15 de Abril)Deep Learning vs Atari: entrena tu IA para dominar videojuegos clásicos (Parte I)
Paloma Recuero de los Santos Data Science: ¿Cómo hacer las preguntas adecuadas? Cuando hablamos de Ciencia de Datos, o de Aprendizaje Automático, solemos hablar de datos, algoritmos, modelos, etc. Y no nos damos cuenta de que, quizás, hemos pasado”de puntillas” por...
Antonio Pita Lozano ¡Que la fuerza te acompañe LEIA! Son tiempos difíciles para la galaxia, la crisis financiera acecha a la unión y los estados periféricos imponen aranceles en su luchan con el control comercial. De forma silenciosa,...
LUCA Caso de éxito: Optimizando el plan de carreteras de Highways England La industria del transporte es una industria muy permeable a la aplicación de estrategias de Big Data e Inteligencia Artificial, ya que existen casos de uso claros para maximizar...
LUCA LUCA Talk: La transformación empieza por la formación La transformación digital de las empresas empieza por el cambio cultural de las personas y no en la tecnología. De nada sirve apostar por tecnología más puntera como Machine...
Paloma Recuero de los Santos IA bajo el microscopio: meetup y entrega de Data Science Awards Spain 2019 El pasado 5 de diciembre, en el Auditorio del Espacio Fundación Telefónica, tuvo lugar el encuentro Inteligencia Artificial bajo el Microscopio, en el que se hizo...
Jesús Montoya Sánchez de Pablo Cómo transformar una compañía. Paso 2: conectar la tecnología con el negocio En una entrada anterior, presentamos la priorización de los casos de uso como el primer paso hacia la transformación de las compañías en el marco de un plan de...