[Azure Machine Learning] Importar/Exportar datos con SQL Azure y bases de datos locales

En una anterior publicación aprendimos como utilizar Azure blob storage para la adquisición de datos en Azure Machine Learning Studio y no fue nada complicado, pero ¿cómo podríamos hacer si nuestra fuente de datos es una base de datos relacional como SQL Azure?.

Importando desde SQL Azure

Para nuestro beneficio, este proceso es similar al realizado con Azure blob storage, lo único que tenemos que hacer es utilizar el módulo de importación de datos y, a través del formulario o el asistente de importación, establecer las credenciales correspondientes a nuestra base de datos.

Para completar el presente ejemplo tenemos que adaptar el conjunto de datos descargado en el anterior capítulo y utilizar la estructura definida por el siguiente script:

Una vez todo listo, solo falta establecer la consulta de base de datos, aceptar y verificar que todo nuestro conjunto de datos este correctamente importado.

Exportar desde SQL Azure

Ahora si lo que deseamos es realizar el proceso inverso, esto es ya no leer de SQL Azure, sino escribir, tenemos que utilizar el módulo de exportación. La única consideración que hay que tener en este punto es que el orden y los nombres de las columnas de la tabla de destino en nuestra base de datos deben corresponder con el orden y los nombres de columna listados y separados por coma que serán guardados.

Importar desde base de datos local

Hasta ahora nada complicado, pero ¿qué deberíamos hacer si el conjunto de datos que necesitamos para trabajar se encuentra en una base de datos local?

La instalación de Microsoft Data Management Gateway es requerida para que Azure Machine Learning Studio pueda conectarse a una base de datos local y vale resaltar que esto solo se puede hacer si contamos con un recurso de Machine Learning Studio workspace del tipo Standard aprovisionado a través de nuestro portal de Azure. Adicionalmente, hay una serie de consideraciones con este componente:

  • Solo se puede instalar un Data Management Gateway por computadora.
  • Un Power BI Gateway y un Data Management Gateway no pueden ser instalados en una misma computadora.
  • No es necesario que el gateway este instalado en el mismo servidor de base de datos y no es recomendable tampoco porque podría afectar la eficiencia ya que competirían por recursos locales.
  • El Data Managament Gateway no puede ser compartido a través de workspaces.
  • Solo el administrador del workspace puede crear un gateway.
  • La computadora local necesita contar con la habilidad de acceder a los datos, el puerto por defecto es el 8050 y estas características deben considerarse para la configuración de los firewalls existentes.

Para crear un Data Gateway tenemos que ir a Settings del portal de Azure Machine Learning Studio, establecer un nombre para la puerta de acceso, guardar la llave auto-generada, descargar el Data Management Gateway, ejecutar el instalador, dar continuar todo el tiempo, abrir la aplicación instalada y dar continuar hasta el momento que nos pidan ingresar la llave para registrar la puerta de enlace.

Una vez hecho todo eso, ya podemos empezar a hacer uso de nuestro módulo de importación y por un asunto de compatibilidad, se recomienda utilizar Microsoft Edge. Continuamos seleccionando la opción On-Premise SQL Database, establecemos los datos de conexión correspondientes junto con nuestras credenciales y establecemos la consulta a la base de datos.

Completadas aquellas tareas solo quedaría verificar nuestro conjunto de datos y festejar.

[Azure Machine Learning] Importar/Exportar datos con Azure blob storage

Si recordamos el proceso de la Ciencia de Datos, nuestro descubrimiento de conocimiento empieza con la compresión y adquisición de datos. Para ello, Azure Machine Learning Studio nos permite trabajar con una variedad de fuentes de información y en esta ocasión aprenderemos como hacerlo con Azure blob storage.

Importando desde Azure Blob Storage

Para importar un conjunto de datos desde Azure blob storage lo primero tenemos que tener en cuenta es que Azure Machine Learning Studio sólo admite el tipo de cuenta Storage (general purpose v1), y que sólo en el caso de que elijamos como tipo de autenticación “Storage Account”, la cuenta de almacenamiento debe tener desactivada la configuración “Secure transfer required”. Para el caso de una autenticación del tipo “Public or SAS” no hay nada de qué preocuparse, basta con que la URL sea válida.

Exportando a Azure Blob Storage

En Azure Machine Learning Studio también tenemos un módulo para exportar a Azure blob storage, esto es útil si por ejemplo deseamos guardar estados en el experimento, y la configuración es similar a la del módulo de importación, sólo hay que tener en cuenta el formato de exportación.

En el anterior ejemplo, el modo de escritura del blob storage esta en Sobrescribir, lo cual significa que los datos serán sobrescritos cada vez que el conjunto de datos sea ejecutado. Si deseáramos realizar la operación de escritura solo cuando los datos tengan algún cambio, deberíamos seleccionar la opción Use cached results. Si el modo de escritura del blob storage esta en Error, que es la preferencia por defecto, recibiremos un error si es que el archivo ya existe.

[Azure Machine Learning] Terminología de Azure ML Studio

La plataforma de Microsoft AI tiene como objetivo llevar la inteligencia artificial a todos los desarrolladores y potenciar a los desarrolladores para innovar y acelerar con una variedad de servicios, infraestructura, y herramientas. Desde IA pre-construida o servicios entrenados (que requiere poco o ningún entrenamiento) hasta AI personalizada, la plataforma abierta de Microsoft AI permite a los desarrolladores utilizar varios métodos de aprendizaje profundo y herramientas de aprendizaje automático.

Servicios de IA

IA personalizada o AI Custom Services

Azure Machine Learning nos permite desarrollar modelos de aprendizaje automático y aprendizaje profundo, entrenarlos en la nube y personalizarlos. Esto acompañado de una variedad de servicios de cómputo que están disponibles en Azure para que podamos almacenar y procesar nuestros datos.

Azure Machine Learning también proporciona un servicio de experimentación, el cual nos permite iniciar prototipos rápidos en el escritorio y escalar esto para ejecutarse en máquinas virtuales de aprendizaje profundo, Spark clusters y servicios de Azure Batch AI. Además, Azure Machine Learning nos permite administrar el rendimiento y ciclo de vida de los modelos, y para colaborar o compartir soluciones usando Git. Los contenedores de Docker nos permiten rápidamente implementar modelos en producción en el nube, en las instalaciones, o para dispositivos periféricos inteligentes.

IA pre-construida o AI Trained Services

Podemos consumir servicios “terminados” de alto nivel que aceleren el desarrollo de aplicaciones inteligentes, con unas pocas líneas de código. Los Servicios Cognitivos proporcionan IA precompilada, a través de un conjunto de APIs, SDKs, y servicios. Esto nos permite como desarrolladores integrar la IA en nuestras aplicaciones, sitios web, bots, y más.

De hecho, ya hemos visto algunas cosas con estos servicios que compartiré a continuación:

Bot Framework

Proporciona herramientas para acelerar el desarrollo de la IA conversacional. Se integra perfectamente con Cortana, Office 365, Slack, Facebook Messenger y más. Bot Framework es una plataforma para construir, conectar, probar y desplegar potentes e inteligentes bots. Con soporte para .NET, Node.js, y REST, podemos obtener el SDK de Bot Builder y comenzar rápidamente a construir bots con el Bot Framework. Además, también podemos aprovechar los Servicios Cognitivos para agregar características inteligentes como la comprensión del lenguaje natural, el reconocimiento de imágenes, habla, y más.

Herramientas de IA

Entre las herramientas de codificación y administración en la plataforma Microsoft AI está Visual Studio Tools para IA, que nos permite crear, depurar, probar e implementar IA con Visual Studio Code en Windows y Mac. Además, podemos aprovechar varias herramientas como Jupyter Notebooks, PyCharm y más.

La plataforma de Microsoft AI también se integra con otros frameworks de aprendizaje automático y de aprendizaje profundos, incluyendo TensorFlow, Caffe2, Microsoft Cognitive toolkit (CNTK), Scikit-learn, MXNet, Keras y Chainer.

Azure ML Studio

Azure Machine Learning (ML) Studio es la herramienta principal que utilizaremos para desarrollar soluciones analíticas predictivas en la nube de Microsoft Azure. El entorno de aprendizaje de Azure Machine Learning Studio está completamente basado en la nube y es autónomo. Cuenta con un completo entorno de desarrollo, pruebas y producción para crear rápidamente soluciones analíticas predictivas.

Azure Machine Learning

Contiene todas las herramientas necesarias para diseñar, desarrollar, compartir, probar, y desplegar soluciones de analítica predictiva en la nube de Microsoft Azure.

Azure Machine Learning workspaces

Representa una “porción” discreta del conjunto de herramientas de Azure Machine Learning que se puede dividir según los siguientes criterios:

  • Workspace name Se requiere que sea único y es el método principal para identificar un área de trabajo de Machine Learning.
  • Workspace owner Cuenta de Microsoft válida que se usará para administrar el acceso a este espacio de trabajo de Azure Machine Learning.
  • Data center location Define la ubicación física del Centro de datos de Azure para alojar el área de trabajo de Aprendizaje automático de Azure.
  • Storage account Define la cuenta de almacenamiento de Azure única que se utilizará para almacenar todos los datos y artefactos relacionados con este espacio de trabajo de Azure Machine Learning.

Azure Machine Learning experiments

Los experimentos se crean dentro de los espacios de trabajo de Azure Machine Learning y representan el método principal para habilitar un enfoque iterativo para desarrollar rápidamente las soluciones de Azure Machine Learning. Dentro de cada experimento de Azure Machine Learning, Azure ML Studio nos brinda un espacio de trabajo visual e interactivo para construir, probar e iterar fácilmente en un experimento analítico predictivo. Estos experimentos se pueden enviar a Azure ML Studio para su ejecución. Los experimentos de Azure Machine Learning son altamente iterativos. Podemos crear, editar, probar, guardar y volver a ejecutar experimentos fácilmente. El uso de los experimentos de Azure Machine Learning está diseñado específicamente para permitir a los científicos de datos modernos “fallar rápidamente” al evaluar nuevos modelos predictivos y al mismo tiempo proporcionar la capacidad de progresar en la retroalimentación del modelo predictivo para futuros refinamientos de modelos.

Azure ML Studio

Esta es la principal mesa de trabajo de análisis predictivo al que se accede desde un Azure Machine Learning workspace para permitir que un científico de datos cree experimentos de Azure Machine Learning a través de una interfaz de diseñador visual de arrastrar y soltar. Además de permitir la creación de nuevos experimentos, Azure ML Studio también tiene enlaces para probar experimentos de Azure Machine Learning. Estos se proporcionan para que pueda aprender fácilmente de los demás a medida que avanza en su camino hacia la ciencia de la información y aproveche algunas de las mejores técnicas y herramientas de procesamiento en la industria para ayudarlo a lograr sus objetivos específicos de análisis predictivo.

Azure Machine Learning web services

Estos representan experimentos de Azure Machine Learning que se han expuesto como APIs públicas a través de Internet en forma de la API REST de Azure Machine Learning. Estos servicios generalmente se exponen como un servicio web simple o como un punto final de OData. La API proporciona dos tipos de interfaces web RESTful:

  • Request Response Service (RRS) Para usos individuales de baja latencia y síncronos para hacer predicciones.
  • Batch Execution Service (BES) Para la puntuación asíncrona de un lote de registros de datos. La entrada para BES es un lote de registros de una variedad de fuentes como blobs, tablas, SQL Azure, HD Insight (como resultado de una Hive Query) y fuentes HTTP.

Datasets

Estos son datos que se han cargado en Azure ML Studio para que puedan usarse en el proceso de modelado de predicción. Además, Azure ML Studio incluye una serie de conjuntos de datos de muestra para experimentar.

Modules

Estos son algoritmos que podemos aplicar a nuestros datos. Azure ML Studio tiene una serie de módulos que van desde funciones de ingreso de datos hasta procesos de entrenamiento, puntuación y validación. Aquí hay algunos ejemplos de módulos incluidos:

  • Convert to ARFF Convierte un conjunto de datos serializados .NET al formato ARFF. ARFF es una construcción de aprendizaje automático común y representa el formato de archivo de relación de atributo. Normalmente se define como un archivo de texto ASCII que describe una lista de instancias que comparten un conjunto de atributos.
  • Elementary Statistics Calcula estadísticas elementales como la media, la desviación estándar, etc.
  • Linear Regression Crea un gradiente en línea, basado en el modelo de regresión lineal.
  • Score Model Puntúa un modelo entrenado de clasificación o regresión.

Un módulo puede tener un conjunto de parámetros que se pueden usar para configurar los algoritmos internos del módulo. Cuando seleccionamos un módulo en el canvas o el diseñador visual, sus parámetros se muestran en el panel de la derecha y podemos modificar los parámetros en ese panel para ajustar el modelo.

[Azure Machine Learning] Tipos de problemas en Machine Learning

A medida que profundizamos en las ciencias de los datos detrás de Machine Learning, debemos tomar en cuenta que existen varios algoritmos de aprendizaje automático y que cada uno de ellos tiene sus particularidades y ventajas.

Estos algoritmos pueden agruparse en las siguientes categorias:

  • Algoritmos de clasificación Estos se usan para clasificar los datos en diferentes categorías que luego se pueden usar para predecir una o más variables discretas, basado en otros atributos en el conjunto de datos.
  • Algoritmos de regresión Estos se utilizan para predecir una o más variables continuas, como ganancias o pérdidas, basado en otros atributos en el conjunto de datos.
  • Algoritmos de agrupamiento Estos determinan los agrupamientos y patrones naturales en los conjuntos de datos y se utilizan para predecir las clasificaciones de agrupamiento para una variable determinada.

Para el correcto uso de estos algoritmos en Machine Learning, es importante resaltar los conceptos de aprendizaje supervisado, aprendizaje no supervisado y aprendizaje por refuerzo. Con el aprendizaje supervisado, el modelo de predicción se “entrena” al proporcionar entradas y salidas conocidas. Este método de entrenamiento crea un modelo que luego puede predecir resultados futuros cuando se proporciona solo entradas nuevas. El aprendizaje no supervisado, por otro lado, se basa en el sistema para auto-analizar los datos e inferir patrones y estructuras comunes para crear un modelo predictivo. Y el aprendizaje por refuerzo que se desarrolla y mejora su desempeño a partir de la interacción con su entorno.

Aprendizaje supervisado

El aprendizaje supervisado es un tipo de algoritmo de aprendizaje automático que utiliza conjuntos de datos conocidos para crear un modelo que luego puede hacer predicciones. Los conjuntos de datos conocidos son llamados “conjuntos de datos de entrenamiento” e incluyen elementos de datos de entrada junto con valores de respuesta conocidos. A partir de estos conjuntos de datos de entrenamiento, los algoritmos de aprendizaje supervisado intentan construir un nuevo modelo que puede hacer predicciones basadas en nuevos valores de entrada junto con resultados conocidos. El aprendizaje supervisado se puede separar en dos categorías generales de algoritmos:

  • Clasificación Estos algoritmos se usan para predecir respuestas que pueden tener solo unos pocos valores conocidos, como casado, soltero o divorciado, según las otras columnas del conjunto de datos.
  • Regresión Estos algoritmos pueden predecir una o más variables continuas, como ganancias o pérdidas, en base a otras columnas en el conjunto de datos.

La siguiente imagen ilustra la idea general de creación de nuevos modelos de predicción basados ​​en el uso de aprendizaje supervisado:

Uno de los conceptos clave que hay que entender sobre el uso del enfoque de aprendizaje supervisado, es que el uso de los datos de entrada conocidos y los elementos de datos de resultados conocidos se han “etiquetado”. Para cada fila de datos de entrada, los elementos de datos están designados en cuanto a su uso para hacer una predicción.

Básicamente, cada fila de datos de entrenamiento contiene elementos de entrada de datos junto con un resultado conocido para esas entradas de datos. Normalmente, la mayoría de las columnas de entrada están etiquetadas como entidades o variables vectoriales. Este etiquetado indica que las columnas deben ser consideradas por los algoritmos predictivos como elementos de entrada elegibles, lo que podría tener un impacto en hacer una predicción más precisa.

Lo más importante es que, para cada fila de entradas de datos de entrenamiento, también hay una columna que denota los resultados conocidos basados ​​en la combinación de características de entrada de datos o vectores. Las columnas de entrada de datos restantes se considerarían no utilizadas, pero podrían utilizarse más adelante según la relevancia del impacto que causa sobre el resultado o según se considere conveniente.

Para resumir, los conjuntos de datos de entrenamiento requieren que cada columna de entrada pueda tener solo una de las tres designaciones siguientes:

  • Características o vectores Datos conocidos que se utilizan como elemento de entrada para hacer una predicción.
  • Etiquetas o señal de supervisión Representa los resultados conocidos de las características correspondientes para el registro de entrada.
  • No usados (predeterminado) No se usa por los algoritmos predictivos para inferir un nuevo modelo predictivo.

En la siguiente figura se ilustra cómo se verían los elementos de datos de entrada conocidos y los resultados conocidos para uno de los conjuntos de datos guardados de Azure Machine Learning de muestra para la “clasificación binaria de ingresos del censo de adultos”:

El conjunto de datos de clasificación binaria de ingresos del censo de adultos sería un ejemplo de un conjunto de datos de capacitación que se podría usar para crear un nuevo modelo para predecir si el nivel de ingresos de una persona sería 1) menor o igual a $ 50,000 al año o 2) el ingreso es mayor a $ 50,000 al año. Esta predicción se basa en las variables de entrada conocidas, como edad, educación, tipo de trabajo, estado civil, raza y número de horas trabajadas por semana.

Una vez generado, un nuevo modelo puede ser validado para la precisión mediante el uso de conjuntos de datos de prueba. Aquí es donde todo se vuelve realmente interesante: al usar conjuntos de datos de “entrenamiento” más grandes y más diversos, los modelos predictivos pueden mejorarse de forma incremental y seguir aprendiendo.

Aprendizaje no supervisado

En el caso de aprendizaje automático no supervisado, la tarea de hacer predicciones se vuelve mucho más difícil. En este escenario, no contamos con datos de entrada o de salida conocidos para generar un nuevo modelo predictivo y el éxito del nuevo modelo predictivo depende completamente de la capacidad de inferir e identificar patrones, estructuras y relaciones en el conjunto de datos entrantes.

Un enfoque básico del aprendizaje no supervisado es el análisis de conglomerados y se utiliza para encontrar patrones ocultos o agrupaciones dentro de conjuntos de datos, algunos ejemplos comunes de clasificaciones de análisis de conglomerados incluirían lo siguiente:

  • Niveles socioeconómicos Ingresos, educación, profesión, edad, número de hijos, tamaño de la ciudad o residencia, etc.
  • Datos psicográficos Intereses personales, estilo de vida, motivación, valores, implicación.
  • Gráficos de redes sociales Grupos de personas relacionadas con usted por familia, amigos, trabajo, escuelas, asociaciones profesionales, etc.
  • Patrones de compra Rango de precios, tipo de medios utilizados, intensidad de uso, elección de punto de venta, fidelidad, comprador o no comprador, intensidad de compra.

Aprendizaje por esfuerzo

Las recompensas positivas y negativas se utilizan para proporcionar retroalimentación al modelo predictivo. La clave del éxito en la implementación de este modelo es permitir que el nuevo modelo realice sus predicciones basándose únicamente en recompensas y castigos anteriores por predicciones similares realizadas en conjuntos de datos similares.

Este enfoque ​​puede ser un activo poderoso cuando hay una manera fácil de asignar valores de retroalimentación a las acciones. La agrupación en clústeres puede ser útil cuando hay suficientes datos para formar agrupaciones para delinear lógicamente los datos. Los datos delineados luego hacen inferencias sobre los grupos y los individuos en el grupo.

ENLACES DE INTERES

Machine Learning en 5 minutos
https://www.youtube.com/watch?v=YUoP5Te5wBk

[Azure Machine Learning] Conceptos básicos de Azure ML Studio

En el mundo de los negocios, y en la vida en general, mejorar constantemente las posibilidades de determinar un resultado tiene una clara ventaja. Un ejemplo simple de este concepto en acción es el uso de análisis predictivo para proporcionar retroalimentación sobre la efectividad de las campañas de marketing o de sensibilización. Al correlacionar factores como las respuestas de las personas a las ofertas, los mensajes, los costos y los efectos de la estacionalidad pronto comenzarán a surgir patrones. Estos patrones proporcionan pistas sobre las causas y los efectos que, en última instancia, ayudarán a tomar mejores decisiones.

Los humanos son criaturas de hábitos, el comportamiento pasado es un fuerte indicador del comportamiento futuro. El análisis predictivo y el aprendizaje automático pueden ayudar a capitalizar estos principios clave ayudando a que el comportamiento pasado sea más claro y más fácil de rastrear, de modo que sea más probable que los futuros esfuerzos de determinar un resultado futuro logren mayores tasas de éxito.

En la presente y siguientes publicaciones solo veremos los conceptos básicos de lo que necesitamos saber para aprovechar y entender las ventajas que nos ofrece en Azure ML. No vamos a detallar cada concepto relacionado con la ciencia de datos o cada técnica avanzada del aprendizaje automático. Vale mencionar que antes de mandar algo a producción, sí es necesario tener una comprensión firme de las teorías sobre las cuales se construyen las diferentes herramientas, metodologías y conceptos del análisis predictivo. Esto nos permitirá tomar mejores elecciones y decisiones sobre las fuentes de datos, los resultados obtenidos y cuál debe ser el proceso o el enfoque correcto para alcanzar nuestros objetivos.

Flujo de trabajo de alto nivel de Azure Machine Learning Studio

Azure ML Studio se caracteriza por la habilidad de rápidamente poder crear “experimentos” de aprendizaje automático, evaluarlos para determinar su precisión y luego “fallar rápido” para acortar los ciclos y generar un modelo de predicción útil.

El siguiente patrón repetible de pasos de flujo de trabajo describe el proceso básico de creación de las soluciones de Azure ML Studio:

Ahora, familiaricémonos con los conceptos expuestos en el anterior gráfico:
  • Definir objetivos, recolectar datos y preparar datos. Aquí respondemos la pregunta sobre qué queremos encontrar para identificar todos los factores involucrados y adquirir los conjuntos de datos necesarios, seguido de ellos tenemos que sanar la información y darle la organización adecuada para la creación de modelos predictivos.
  • Desarrollar modelo y entrenar modelo. Aquí es donde empleamos los algoritmos de aprendizaje automático para crear nuevos modelos que sean capaces de hacer predicciones basadas en inferencias sobre los conjuntos de datos.
  • Analizar/Evaluar. Examinamos la precisión de los nuevos modelos predictivos basados ​​en la capacidad de predecir el resultado correcto. Aquí debemos comparar, contrastar y combinar modelos predictivos alternativos para encontrar la combinación o combinaciones correctas que puedan producir los resultados más precisos de manera consistente.
  • Publicar el modelo. Exponemos el nuevo modelo predictivo como un servicio web en la nube para que sea fácilmente accesible y podamos usarlo a conveniencia.
  • Monitorear u operar el modelo. Luego de implementar el nuevo modelo predictivo como servicio web en un escenario de prueba o de producción, agregamos bucles de retroalimentación manuales o automáticos para la mejora continua del modelo al capturar los detalles apropiados cuando se realizan predicciones precisas o inexactas.

A continuación, nos toca hablar un poco más sobre las categorías de los algoritmos de aprendizaje automático de la mano de Azure ML, pero por lo pronto aquí acaba esta publicación.

ENLACES DE INTERES

¿Qué es la Ciencia de Datos?
https://www.youtube.com/watch?v=Q5PWla7Nteg

El proceso de la Ciencia de Datos
https://www.youtube.com/watch?v=EPfY1XDv0F4

[Azure Machine Learning] ¿Qué es Machine Learning?

No podemos negar que desde las primeras máquinas de computación, pasando por la revolución industrial hasta el día de hoy, nuestra relación con las máquinas ha ido estrechándose cada vez más, acompañándonos ahora en casi todas nuestras actividades (incluso mientras respiramos), pero si bien ahora vamos juntos a todos lados, aún tenemos una gran diferencia.

El ser humano actúa en base a sus EXPERIENCIAS; mientras que las máquinas dan resultados porque siguen INSTRUCCIONES, instrucciones como las lógicas de control condicional o como las que escriben, leen, actualizan y eliminan datos; esta técnica de desarrollo es útil, pero ¿qué pasaría si necesitamos automatizar el reconocimiento de caracteres escritos a mano o la clasificación de gases o la detección de un cáncer maligno? Un humano, conforme va ganando experiencia, puede ir realizando estas actividades cada vez con mayor facilidad, pero ¿qué hay de las máquinas? ¿puede una aprender con la experiencia? O mejor dicho ¿con los datos?

Machine Learning (ML)

“El ML es una rama de la Inteligencia Artificial que permite el desarrollo de sistemas que aprenden y mejoran su rendimiento por medio de la construcción de modelos predictivos que sintetizan los patrones y variables dentro de un conjunto de datos y es un subcampo de la Ciencia Computacional que se encarga del desarrollo de técnicas de aprendizaje computacional.”

Programación Tradicional vs Machine Learning

Bajo los modelos de programación tradicionales, los programas y datos son procesados por la computadora para producir un resultado deseado, pero al trabajar con Machine Learning, el paradigma de procesamiento se altera dramáticamente. Los datos y los resultados deseados son procesados mediante ingeniería inversa por la computadora para producir un nuevo programa.

Tipos de Aprendizaje

En Machine Learning tenemos más de un tipo de aprendizaje: el supervisado, que busca predecir o clasificar un dato a través de un modelo generado a partir de ejemplos de datos etiquetados que contienen el dato que queremos predecir; el no supervisado, que busca descubrir la estructura de los datos, ya sea agrupando elementos similares para formar “clusters” o reducir los datos a un número pequeño de “dimensiones” importantes; y el semisupervisado, que utiliza tanto datos etiquetados como no etiquetados y que usualmente entra en acción cuando el proceso de etiquetado total es muy costoso o inviable.

El proceso del Machine Learning

  1. Administración de datos
  2. Construcción de la solución
  3. Despliegue de la solución
  4. Control de acceso
  5. Mantenimiento.

Recomendaciones

  1. Los primeros pasos son los más importantes: cada paso depende de los pasos anteriores.
  2. Espere ir hacia atrás: conocimiento posteriores afectan pasos previos.
  3. Los datos nunca son como los necesitas: los datos tendrán que ser alterados.
  4. Más datos es mejor: más datos mejores resultados.
  5. No apresure una mala solución: reevalua, arregla o déja.
  6. Piense antes de actuar: comprenda los resultados antes de cambiar los datos o el modelo.

[Azure Machine Learning] El proceso de la Ciencia de Datos

La ciencia de datos es un campo interdisciplinario que se esta difundiendo bastante, pero ¿en qué consiste exactamente? Si bien se puede definir como la exploración y el análisis cuantitativo de los datos para extraer conocimiento, es menester definir un orden y detallar el proceso de descubrimiento de conocimiento.

Para ello consideremos las siguientes etapas:

1. EVALUACIÓN DE OPORTUNIDADES Y COMPRENSIÓN DEL ENTORNO

Desde mi punto de vista es la más importante ya que aquí es donde definimos nuestra base; ya saben: si un árbol crece torcido, torcido se queda. Aquí debemos responder con certeza las siguientes preguntas: ¿Cuál es el objetivo del actual proyecto? ¿Cuál es el verdadero problema? ¿Qué variables del entorno nos afectan? y sobretodo ¿Cómo evaluar la calidad de los resultados? ya que si no somos capaces de identificar si es que estamos avanzando o no, de nada valdrá todo el trabajo que hayamos hecho.

2. COMPRENSIÓN Y ADQUISICIÓN DE DATOS

Aquí debemos preguntarnos: ¿Qué fuentes de datos tenemos al alcance? ¿El volumen de datos es suficiente? ¿Las fuentes de datos son variadas? y con ello me refiero a si estoy considerando tanto fuentes de datos estructurados como no. Para el perfeccionamiento de todo este proceso y las pruebas posteriores es necesario preguntarnos también si las fuentes de datos están actualizadas o si reciben nueva información constantemente y la última y más importante pregunta que debemos resolver en esta etapa es si la fuente de datos es de confianza, si los datos son falsos o erróneos por muchos esfuerzos que hagamos no tendremos resultados productivos.

3. LIMPIEZA Y TRANSFORMACIÓN DE DATOS

En esta etapa nos encargaremos de la selección de datos y atributos relevantes, en la unión o integración de datos de diferentes fuentes, en la derivación o cálculo de atributos y en la normalización y clasificación de datos; este último punto es importante porque si no organizamos correctamente los datos considerando sus tipos y escalas, será más complicado construir representaciones gráficas de datos o un set de datos eficiente y libre de ruido.

4. ELABORACIÓN DE MODELOS PREDICTIVOS

Durante la etapa de la elaboración de los modelos predictivos resolveremos diversos problemas de Machine Learning o elaboraremos sistemas de recomendación, no es sencillo resumir esta etapa en unas palabras así que os adelanto voy a detallar mucho más sobre esto en las siguiente publicaciones.

5. CONSTRUCCIÓN DE POLÍTICAS REGULATORIAS

Sí, sé que suena algo raro, pero esta es la faceta prescriptiva de la Ciencia de Datos. Aquí, según los modelos elaborados, definiremos normas o políticas que se podrían aplicar al negocio o al sistema para poder optimizar los procesos, mitigar riesgos o para condicionar situaciones favorables futuras.

6. EVALUACIÓN DE RESULTADOS

Aquí debemos considerar la precisión de los modelos y tener datos confiables para hacer las evaluaciones y pruebas correspondientes.

7. DESPLIEGUE, MONITOREO Y MANTENIMIENTO

En esta última etapa debemos aplicar las conclusiones obtenidas al negocio o sistema, así como elaborar un plan para las actualizaciones y mejoras al proceso de descubrimiento de conocimiento. En la mayoría de los casos se hace mantenimiento solo al modelo, pero también estan las situaciones en que variables o datos que no consideramos relevantes en su momento, empiezan a tomar relevancia con el tiempo.

Para finalizar, vale recordar que no todas estas etapas van exactamente una detrás de otra ya que para algunas etapas es necesario confirmar antes de dar el siguiente paso si es que realmente partimos del mejor resultado de la anterior etapa y para esto es importante ser atento con cada output o resultado.

[Azure Machine Learning] ¿Qué es la Ciencia de Datos?

Considerando el actual crecimiento global, se estima que cada dos días, el mundo está creando tanta información digital nueva como todos los datos creados desde que inicio la historia de la humanidad hasta el presente siglo. Esto ocurre debido a diferentes factores como por ejemplo:

  • La ola mundial de digitalización: que involucra casi todas las industrias, tanto en el sector privado como el público y este último esta siendo acompañado con una filosofía de datos abiertos.
  • La evolución de los dispositivos conectados o el “Internet de las cosas” (IoT): que nos trae una abrumadora cantidad de información en tiempo real a través de los diferentes tipos de sistemas integrados.
  • El almacenamiento digital global barato: que va desde dispositivos personales hasta nubes privadas o públicas, actualmente se puede acceder fácilmente a una gran cantidad de servicios de almacenamiento digital gratuito o de bajo costo.
  • El poder de cómputo ubicuo: hoy en día, los servicios de computación en nube están en todas partes y son fácilmente accesibles, una tarjeta de crédito y un navegador son todo lo que se necesita para comenzar a operar en cualquier plataforma y con la capacidad de procesamiento que se desee.

“El conocimiento es poder”

Hoy esta frase es más vigente que nunca. Con esta situación, dónde la información digital es tan masiva y variada, es importante saber cómo aprovecharla, y para ello tenemos la Ciencia de Datos, pero ¿qué es la ciencia de datos?

Si bien no tiene una definición única o definitiva, puesto que es un concepto en evolución, se puede definir como un campo interdisciplinario y práctico para la exploración y el análisis cuantitativo de los datos, sean estos estructurados o no, para desarrollar, entender, extraer conocimiento y formular resultados procesables. Recordemos que los datos estructurados se caracterizan por tener propiedades definidas, como los datos relacionados a una persona o a una orden de compra, mientras que su contraparte no tiene una estructura interna identificable, como las imágenes o los sonidos.

La ciencia de datos es interdisciplinaria porque incluye ciertos aspectos del aprendizaje automático, la estadística, la programación, entre otras subdisciplinas. Y es práctica porque requiere la comprensión del dominio en el que se aplica, por ejemplo, si es sobre salud, marketing o banca debes conocer el propósito, entender el “valor agregado” de la industria e identificar las restricciones o demás variables del entorno.

Entonces, la ciencia de datos se aplica sobre algún contexto y esta puede ser predictiva o prescriptiva, según a lo que queramos llegar. Con una ciencia de datos predictiva explotamos los datos históricos y transaccionales para encontrar patrones que nos digan que situaciones podemos esperar y con ese apoyo tomar decisiones con menos apuros. Y con una ciencia de datos prescriptiva no sólo se anticipa lo que sucederá, sino también se encuentra el por qué, la automatización de esto nos permitirá obtener opciones de decisión sobre cómo aprovechar una oportunidad futura o mitigar un riesgo.

Si estas interesado en ser un científico de datos, te voy adelantando que muchas de las cosas que realiza uno estan en relación a:

  • Encontrar fuentes de datos
  • Adquirir datos
  • Limpiar y transformar datos
  • Comprender las relaciones entre los datos

Brindaré más detalles sobre el proceso de la ciencia de datos más adelante.