Inteligencia Artificial TyHM

Introducción

A lo largo de este curso desarrollaremos una serie de tópicos que son novedosos y omnipresentes en la II. Mucohs de ellos han estado presente en el pasado, tales como los métodos estadísticos. Pero solamente han capturado la atención de gobiernos, academia y empresas cuando las arquitecturas del hardware, más los avances de datos disponibles en la nube han logrado superar las barreras de los estancos que los límites que el papel nos imponía. Gran parte de los cimientos de la inteligencia artificial se remontan a los años 50 del siglo XX, autores como GEORGE BOOLE en 1854 sentaron las bases de esta disciplina. En 1950 ALAN TURING Propone en su ensayo Computing Machinery and Intelligence el Test de Turing, una prueba de comunicación verbal hombre-máquina que evalúa la capacidad de las segundas de hacerse pasar por humanos.

Luego en 1956 JOHN MCCARTHY El informático acuña por primera vez el término “Inteligencia Artificial”, durante la Conferencia de Darmouth, evento considerado el germen de la disciplina, para finalizar con MARVIN MINSKY que en 1969 escribe el libro perceptores, el trabajo fundamental del análisis de las redes neuronales artificiales.

En estos días hay dos lenguajes de propósito general que se están imponiendo en el terreno de abordar y aplicar los conceptos de Analítica de Datos.

El primero de ellos es Python, que sin dudas veras que ha tenido repercución y éxito, aún cuando no ha llegado a ser parte del Sylabus de todas las carreras de ingeniería industrial.

El otro lengunaje, que a mi leal entender es más rápidamente asimilable con los ingenieros industriales es R-Cran.

R-Cran Software Utilizado Sitio Oficial de R-Cran

R-Cran es un lenguage pensado para “No Programadores” de hecho es un software desarrollado inicialmente por la comunidad de investigadores en estadística. Pero una enorme cantidad de científicos y científicos de datos han desarrollado millares de paquetes (bibliotecas) que se han compartido con Python. Esto es un punto de contacto con los ingenieros, que en general han tenido contacto con estadística muy temprano en las carreras de grado y que tienen algunos conocimientos un poco oxidados.

Quizás hayamos compartido algún curso en muchos de los países que he tenido el honor y la suerte de visitar. También es probable que hayas padecido por voluntad propia algunos de los largos videos de mi canal de youtube en los que he abordado los primeros pasos en R.

Te recomiendo que veas el sitio de Freddy Hernandez y Olg Usuga que tienen más telento que el que tengo yo para ayudarte en estos primeros pasos.

Si por cualquier inconveniente Olga y Freddy puedan tener que impida que accedas al sitio dejo links alternativos para que accedas durante el curso. Si estás en las aulas de la universidad este link alternativo te permitirá acceder con menos latencia al contenido.

Sitio original de Github

Manual de R - Hernandez, Usuga

Copia local en la universidad

Manual de R - Hernandez, Usuga

Desambiguación de conceptos

Se suele utilizar como sinónimos, pero son diferentes conceptos

  • Analítica de Datos
  • Machine Learning
  • Deep Learning
  • Business Intelligence
  • Minería de Datos
  • Inteligencia Artificial

Todos ellos tienen un factor en común, el uso del hardware y software, pero si bien tienen similitudes son bastantes distintos.

Veamos una aproximación al problema partiendo de los modelos estadísticos.

Aproximación Estadística Cualquier estadístico que usemos (T-Studen, Distribución Normal, Criterio de máxima verosimilitud, etc) puede ser obordado con el uso de computadora tomando datos etiquetados (que tienen una columna que muestra de que tipo son), luego con un algoritmo apropiado podemos construir un modelo.

En analítica de datos invertimos el proceso. Tomando datos sin etiquetar los sometemos al análisis de un modelo y predecimos que resultado de obtendría en un mundo físico a partir de los datos que son abstracción de ese mundo.

Así:

  • Predecir cuando se romperá un eje
  • Encontrar en que categoría de la flota sería conveniente incorporar un camión nuevo
  • Determinar antes de cerrar una transacción electrónica virtual la probabilidad de fraude
  • Etc.

Son ejemplos de lo que se puede hacer con analítica de datos.

Enfoque de Inteligencia Artificial

En inteligencia artificial el proceso es muy semejante. A diferencia del caso anterior no tenemos un algorítmo que puede crear el modelo en base a las etiquetas de los datos. En este caso se opera en forma no supervisada. para crear un modelo. El resultado de la inteligencia artificial es un modelo que nos entrega datos y a partir de datos que el tomó para entrenarse y nos muestra patrones de semejanza entre los datos de entrenamiento y los de prueba.

Es una práctica habitual crear modelos de IA utilizando un dataset y remuestrear (sampling) usando el 25% de los datos para entrenar y el 75% para predecir y evaluar la calidad del modelo.

Ejemplos de este tipo de modelos son los árboles de decisión y su entrenamiento

Por último tenemos el abordaje de machine learning.

Abordaje Machine Learning

En machine learning en lugar de datos alimentamos un algoritmo con reglas. Se dice que enviamos datos como reglas y con las técnicas de IA obtenemos respuestas.

Si a estas respuestas añadimos nuevas evidencias (como en el teorema de bayes) podemos utilizar Machine Learning para automatizar el descubrimiento de nuevos algorítmos. Pero este proceso es recursivo y puede repetirse ad infinutum.

Analítica de datos y cambio climático

Comenzaremos con este análisis de riesgo que fue desarrollado por el ipcc utilizando machine learning sobre una colección de datos de clase mundial. Datos del clima de todos los países del mundo desde 1775 hasta hoy.

Si queres ver más sobre datasets de este tipo recomiendo ir a Google Datasets

Google Datasets Search

Tal como se había anticipado en el quinto y sexto informe del ipcc (Intergovermental Panel on Climate Change) se han emitido pronósticos de los escenarios que la humanidad podría enfrentar de no tomar acciones concretas contra las emisiones de gases de efecto invernadero. Ya desde el quinto informe del 2013 se emitieron recomendaciones para la gestión del riesgo en vista a la creciente importancia y magnitud que los eventos climáticos extremos tienen para los países, las poblaciones y sus infraestructuras críticas.

Lamentablemente la cop XVI de Glasgow dio por tierra respecto a las expectativas que se tenían respecto a poder eliminar las emisiones al menos del uso de carbón mineral para poder cumplir con las metas de emisión del 2030. El efecto de la pandemia y la reciente invasión de Ucrania traer aparejado consecuencias que nos alejan más de los escenarios esperados y nos ponen en la necesidad de tener que contrarrestar por la vía de accion de de mitigación del reiesgo, en contraposición a la esperanza de incrementar la resiliencia de nuestros sistemas productivos y sociales para enfrentar un futuro que no aparece tan promisorio como antes.

Consecuencias para la el planeamineto y administración de operaciones

Para reducir el riesgo de desastre, los servicios meteorológicos trabajamos en conjunto con los organismos tomadores de decisión siguiendo los lineamientos del “Plan de la Organización Meteorológica Mundial de reducción de riesgos de desastre”.

Hace unos meses el BID finalizó el taller virtual “Meteorología en el marco de la Reducción de Riesgo de Desastre. Interacción entre servicios meteorológicos y tomadores de decisión”, desarrollado por el área de Meteorología y Sociedad, en conjunto con el Centro Regional de Capacitación de la Organización Meteorológica Mundial (OMM).

Participaron meteorólogos, especialistas en reducción de riesgo de desastres y agentes operativos de la protección civil de Argentina, Brasil, Bolivia, Ecuador, Paraguay, Perú, Uruguay y Venezuela. El objetivo principal de esta experiencia innovadora fue favorecer la articulación entre los organismos que elaboran información meteorológica y los que toman decisiones a partir de ella.

Durante cuatro semanas se propusieron consignas que indagaron en torno a las estructuras organizacionales, misiones y competencias de los organismos, productos emitidos por los servicios meteorológicos, canales de difusión de la información y acciones realizadas por los tomadores de decisión. Este Taller se constituye como una interesante propuesta para favorecer el intercambio regional y asistir a las partes interesadas nacionales que se ocupan de la reducción de riesgos de desastre por medio del aprovechamiento de las actividades conexas en los ámbitos nacional, regional e internacional.

Los informes de estos talleres estan disponibles en los sitios web de los servicios meteorológicos de cada país y reflejan las consecuencias y previsiones que hay que tomar en el sector de la logística relativa a la metodología para reducción del riesgo de desastre por un lado , sabiendo que el transporte es junto a la industria uno de los principales emisores. En tanto que por el otro lado es transporte será vital para mitigar las consecuencias de los accidentes climáticos extremos y otras emergencias no climáticas como sismos, guerras, migraciones masivas climáticas, etc.

Estrategia de gestión del riesgo de ipcc

Fig. 2 - Gestión del riesgo para la resiliencia La figura nos muestra como calcular le vulnerabilidad en una forma genérica para cualquier sistema productivo en incluso extensible a organizaciones.

Esta figura es en realidad un algoritmo gráfico que se obtuvo alimentando a un tipo de algoritmo recomendador basado en random-forest alimentado con los modelos de clima y los datasets de todo el planeta.

Matriz del riesgo alimentario

Con el algoritmo anterior se volvió a alimentar a casos de estudios y forecast sobre cosechas y cultivos. Esta ves la analítica de datos obtenidas generó conocimiento por inteligencia artificial. Este conocimiento puede ser graficado como la matríz que se muestra a continuación.

Matriz de Riesgo Alimentario (fuente ipcc-2018)

El rol de la cadena de suministros en la resiliencia

Interrogado el algoritmo, que ya ha aprendido de los modelos y datos, más los algoritmos con los que los alimentamos; podemos definir en él el concepto de resiliencia y por análisis combinatorio nos entrega una recomendación final.

Acciones comúnes Mitigación/Adaptación

Data Analitycs

La analítica de datos permite a las organizaciones analizar todos sus datos (en tiempo real, históricos, no estructurados, estructurados, cualitativos) para identificar patrones y generar conocimientos para informar y, en algunos casos, automatizar decisiones, conectando la inteligencia y la acción. Las mejores soluciones actuales respaldan el proceso analítico de un extremo a otro, desde el acceso, la preparación y la analítica de datos hasta la operatividad de los análisis y el seguimiento de los resultados.

Según TIBCO, la analítica de datos permite a las organizaciones transformar digitalmente su empresa y su cultura, volviéndose más innovadoras y con visión de futuro en la toma de decisiones. Más allá del monitoreo y la generación de informes tradicionales de KPI para encontrar patrones ocultos en los datos, las organizaciones potenciadas por algoritmos son los nuevos innovadores y líderes empresariales.

Al cambiar el paradigma más allá de los datos para conectar los conocimientos con la acción, las empresas podrán crear experiencias personalizadas para los clientes, crear productos digitales conectados, optimizar las operaciones y aumentar la productividad de los empleados.

Con la analítica colaborativa de datos, las empresas permiten que todos contribuyan al éxito empresarial, desde ingenieros de datos y científicos de datos, hasta desarrolladores y analistas empresariales, e incluso profesionales y líderes empresariales. La analítica colaborativa de datos también incentiva a quienes están dentro y fuera de una organización a conectarse y colaborar. Por ejemplo, los científicos de datos pueden trabajar en estrecha colaboración con un cliente para ayudarlo a resolver sus problemas en tiempo real utilizando la interfaz de usuario altamente colaborativa de la analítica moderna del mundo de hoy.

La analítica de datos impulsa a las empresas a avanzar mediante la introducción de algoritmos en todas partes para optimizar los momentos comerciales críticos, como un cliente que ingresa a su tienda, un equipo a punto de fallar u otros eventos que podrían significar la diferencia entre ganar o perder negocios. La analítica de datos se aplica a todas las industrias, incluidas las de servicios financieros y seguros, fabricación, energía, transporte, viajes y logística, atención médica y otras. La analítica de datos puede ayudar a predecir y manejar interrupciones, optimizar rutas, brindar un servicio proactivo al cliente, realizar ofertas inteligentes de venta cruzada, predecir fallas inminentes de equipos, administrar el inventario en tiempo real, optimizar los precios y prevenir el fraude.

¿Qué dimensiones engloba el concepto de AD?

  • Automatización de Reportes
  • Inteligencia de Negocios
  • Preparción de datos (Data Wrangling)
  • Visualización de Datos y Conocimiento
  • Analítica Geoespacial (GIS)
  • Analítica productiva (predictiva y prescriptiva)
  • Machine Learning
  • Analítica en tiempo real

Automatización de Reportes

En cursos anteriores hemos explorado el potencial de R-Markdown para la automatización de reportes. El uso de las plantillas formales y la técnica de escribir para comunicar nos permiten liberarnos del tedio de tener que adaptar el material para impormes impresos o pdf, presentaciónes o páginas de web.

Recomendamos repasar estos datos con el material de uno de nuestros viejos alumnos.

automatización de reportes P. J. Aguirre

Otros ejemplo de R-Pub

Automate your report

Inteligencia de negocio y generación de informes

Analizar datos y proporcionar información procesable a los líderes empresariales y otros usuarios finales para que puedan tomar decisiones empresariales informadas es uno de los usos más importantes de la analítica de datos. También conocido como “inteligencia de negocio”, la analítica de datos es el portal de información para cualquier empresa. Los consumidores, desarrolladores, modeladores de datos, gestores de calidad de datos, ejecutivos de negocios, gerentes de operaciones y otros confían en informes y paneles que pueden ayudar a monitorear el progreso del negocio, el estado, las interrupciones, los ingresos, los socios y mucho más.

Ejemplo con datos ficticios (y código fuente)

Ejemplos semejantes a Powe-Bi

Ejemplo de clusterizacion BI

Data Wrangling/preparación (limpieza) de datos

Una buena solución de la analítica de datos incluye capacidades viables de preparación de datos y Data Wrangling para que los datos puedan reunirse fácil y rápidamente a partir de una variedad de fuentes de datos que pueden estar incompletas, complejas o desordenadas, y limpiarse para facilitar la combinación y el análisis.

Es fundamental que se tomen de antemano algunas decisiones, como por ejemplo el tratamiento de los NA.¿Que harás con estos daos faltantes en las muestras?, ¿Los reemplazarás por ceros?, los reemplazarás por el promedio de los datos que tienen los otros datasets en esas columnas?, ¿Interpolarás entre valores temporales que correspondan al período anterior y posterior?,¿Utilizarás los mismos datos del año pasado para reponer un dato perdido este año?

Como vez cada una de estas estrategias implica decisiones que más tarde impactan en el modelalado y en los datos predictivos y prescriptivos.

El flujo de trabajo en esta etapa el clave e incluye tareas como:

  • Adquisición de datos
  • Transformación de datos
  • Imputación de datos
  • Limpieza de datos
  • Eliminación de duplicados
  • Reducción de dimensión (columnas redundantes)
  • Re-escalado
  • Eliminación de outliers
  • Depuraciones legales (cambio del valor monetario)
  • Indexación por inflación
  • Reemplazo de los NA
  • Normalización

Ejercicio 1 Data Wranling

  • Descarga el archivo eana.xls

  • Realiza un análisis exploratorio en excel

  • Encuentra cuántas veces aterrizó un avión Antonov en Mendoza

Esto es fácilmente realizable en el entorno R-Cran que abordaremos en este texto y es especialmente útil si los datos están en la nube.

Recursos útiles:

Data Wrangling con R - Bradley Boehmke

Limpieza de Datos con Rattle

Visualización de datos

Para obtener conocimientos de los datos, muchos analistas y científicos de datos confían en la visualización de datos, o la representación gráfica de los datos, para ayudar a las personas a explorar e identificar visualmente patrones y valores atípicos en los datos. Una excelente solución de la analítica de datos incluirá capacidades de visualización de datos, lo que hará que la exploración de datos sea más fácil y rápida.

Una buena base para explorar la forma de visualización de datos y conocimiento puede encontrarse en el libro (disponible en formato digital gratuito):

Ggplot2 Wickman-Navarro-Lin Pedersen Ggplot2

Analítica geoespacial y de ubicación

El análisis de grandes conjuntos de datos, con frecuencia, no significa nada si su solución de análisis no incluye la analítica geoespacial y de ubicación. Agregar esta capa de inteligencia a la analítica de datos le permitirá desarrollar conocimientos y detectar relaciones en los datos que quizás no haya visto antes. Podrá predecir mejor dónde están sus clientes más valiosos y el camino que toman para comprar sus productos.

Puedes encontrar ejemplos del uso simultáneo de analítica de datos en materiales de cursos de las carreras de ingeniería industrial en latinoamérica y caribe.

Ver:

Cerveza Artesanal

Censo satelital de ganado caprino

Libros escritos en Markdown

Analítica Predictiva

Uno de los usos más importantes de la analítica de datos empresariales en la actualidad es la predicción de eventos; Por ejemplo, predecir cuándo fallará una máquina o el volumen de existencias que se necesita en una tienda en particular en un momento específico. La analítica predictiva implica tomar datos históricos y crear un modelo para ayudar a predecir eventos futuros. Tradicionalmente, la analítica avanzada fue el campo de dominio de los científicos de datos, estadísticos e ingenieros de datos altamente capacitados. Pero con los avances en el software, los Citizen Data Scientists desempeñan cada vez más aspectos de estos roles. Muchas firmas de analistas predicen que los Citizen Data Scientists superarán a los científicos de datos en la cantidad de analítica avanzada producida.

Machine Learning

Machine Learning implica la automatización de modelos analíticos mediante algoritmos que aprenden de forma iterativa a partir de los datos y optimizan el rendimiento. Con los algoritmos de Machine Learning disponibles para Big Data, puede poner sus ordenadores a trabajar para encontrar nuevos patrones y conocimientos sin programarlos específicamente dónde buscarlos. Busque soluciones de la analítica de datos que ofrezcan búsqueda en lenguaje natural, análisis de imágenes y Augmented Analytics.

Para esta dimensión otra bibliografía muy recomendable es

Machine Learning with R - Link al sitio de Springer Puedes acceder a los capítulos individuales utilizando el link desde un access point de la biblioteca de la universidad

En el apartado de ejercicios de los temas que siguen pondremos interés especial en las técnicas de clustering y modelos de regresión generalizados.

Streaming Analytics

Actuar sobre eventos en tiempo real en el momento relevante se está convirtiendo en una capacidad crítica de la analítica de datos en la actualidad. Extraer datos de dispositivos de transmisión de IoT, fuentes de video, fuentes de audio y plataformas de redes sociales, todo en tiempo real, es una capacidad esencial de las principales soluciones de la analítica de la actualidad.

¿Cómo utilizar la analítica de datos: el proceso analítico?

  1. Comprenda el problema empresarial.
  2. Recopile/identifique datos relevantes para el problema.
  3. Prepare los datos para el análisis.
  4. Analice los datos para generar conocimientos.
  5. Implemente/ponga en funcionamiento los análisis y los modelos.
  6. Supervise y optimice el rendimiento.

El primer paso para generar conocimientos a partir de sus datos es asegurarse de que estén organizados, sean precisos y procesables. Muchas empresas comienzan creando una forma estándar de acceder e integrar los datos a través de fuentes dispares utilizando una capa de datos virtuales. A continuación, después de automatizar Data Wrangling, las empresas pueden dedicar tiempo y energía a actuar sobre los valores atípicos o las inconsistencias de los datos. Luego, Visual Analytics proporcionará tableros interactivos y enriquecidos para la exploración de datos, lo que brindará a las empresas potentes capacidades de análisis en un formato intuitivo. Muchas organizaciones utilizan la ciencia de datos para crear modelos que brinden información predictiva. Además, las soluciones de la analítica de datos ahora extraen continuamente datos de transmisión en tiempo real para el análisis más preciso. Con nuevos conocimientos, las organizaciones podrán actuar con rapidez, simplificando las decisiones urgentes con una comprensión clara de los datos históricos y en tiempo real.

Hoy en día, las organizaciones pueden utilizar la analítica de datos para inspeccionar, limpiar, transformar y modelar sus datos. Las mejores soluciones de la analítica de datos lo hacen todo por ustedes, lo que le permitirá aprovechar al máximo sus datos y mejorar las estrategias empresariales.

Los beneficios de la analítica de datos

Simplifique, colabore y llegue más lejos

Las mejores soluciones actuales de la analítica de datos simplifican lo que solía ser un proceso muy complejo. La simplificación del ciclo de vida del análisis de un extremo a otro dentro de los ecosistemas de Big Data como Spark y Hadoop le permiten utilizar técnicas de la ciencia de datos a escala. La colaboración entre los equipos de la ciencia de datos, la línea empresarial y TI en proyectos de analítica Big Data aumentan la eficiencia y la productividad de toda la organización.

Detecte valores atípicos y tome medidas al respecto

La analítica de datos de transmisión de alto volumen tanto dentro de sus sistemas empresariales centrales como en el perímetro le permite encontrar anomalías, tomar decisiones y actuar en el punto de impacto. Con volúmenes de datos cada vez mayores, analizar, filtrar, resumir y obtener información en tiempo real le permitirá encontrar anomalías antes de que se conviertan en un problema mayúsculo.

Operacionalizar, monitorizar, gestionar y confiar

Muchas organizaciones luchan por hacer operativa la analítica. A medida que los datos se desvían y los modelos decaen, la capacidad de retener, actualizar e implementar automáticamente nuevos modelos analíticos en ubicaciones periféricas o directamente dentro de los sistemas empresariales centrales le permite comprender y actuar sobre resultados confiables.

Conecte la inteligencia a la acción

Con total visibilidad de todos los datos desde cualquier lugar, su organización puede tomar las mejores decisiones en base a información valiosa e inteligencia en tiempo real accionables. Mejore los resultados de negocio incorporando análisis al negocio y automatizando las decisiones. Obtenga más información, refínela y cree inteligencia con una solución con capacidades closed loop que incluya feedback continuo integrado.

Responda de forma rápida y correcta

Responda a los eventos en una fracción de segundos y asegúrese de que las personas adecuadas tomen las acciones adecuadas en el momento adecuado para corregir los problemas rápidamente. Emplee microservicios para la calificación perimetral, y aplicaciones modernas sin servidor con una pequeña huella basada en la tecnología de código abierto.

El impacto de la analítica de datos

La analítica de datos, cuando se aprovecha correctamente, puede ser una fuente de ventaja competitiva. Las organizaciones que se acercan a la analítica de datos con una visión enfocada, impulsan la transformación digital, mejoran la experiencia del cliente y crean una cultura empresarial basada en datos. Mediante la analítica de datos, las organizaciones podrán identificar nuevas oportunidades comerciales y utilizar conocimientos para priorizar acciones y crear nuevas fuentes de ingresos.

Para capitalizar el valor que la analítica de datos puede proporcionar a una organización, las empresas deberán considerar los datos para cada decisión comercial como una forma de optimizar los resultados e impulsar una toma de decisiones más informada.

A medida que las iniciativas de la analítica de datos se vuelvan más aceptadas, las organizaciones pasarán de los informes tradicionales a soluciones de análisis en tiempo real más avanzadas. Los programas de la analítica de datos dentro de las empresas están evolucionando rápidamente a medida que la transformación digital y las organizaciones basadas en datos se están volviendo cada vez más una prioridad.

Principales casos de uso de la analítica de datos

  • Detección de anomalías
  • Gestión de datos de clientes
  • Gestión del riesgo
  • Detección de fraudes
  • Personalización
  • Realización de estudios de mercado
  • Análisis de operaciones

Modelos y Flujos de Trabajo

Entendiendo la diferencia entre IA y ML

Se suele pensar que Inteligencia Artificial (IA) y Aprendizaje de máquina o Machine Learning son lo mismos. A pesar de ello los flujos de trabajo que siguen son idénticos, pero los aobjetos a los que se aplican están sustituidos.

Así en un visión de inteligencia artificial el flijo de trabajo sería el representado en la figura.

Flujo de trabajo IA

El flujo de Aprendizaje de máquina tiene dos pasos, entrenamiento y predicción

Flujo de trabajo IA

En la práctica, llamamos modelo a un conjunto de reglas que un algoritmo de aprendizaje automático aprende. Una vez que se ha aprendido el modelo, podemos darle nuevas observaciones y generará sus predicciones para los nuevos datos. Nos referimos a estos como modelos porque representan fenómenos del mundo real de una manera lo suficientemente simple como para que nosotros y la computadora podamos interpretarlos y comprenderlos. Así como un modelo de la Torre Eiffel puede ser una buena representación de la realidad pero no es exactamente lo mismo, los modelos estadísticos son intentos de representaciones de fenómenos del mundo real pero no los igualarán perfectamente.

Si bien ciertos algoritmos tienden a funcionar mejor que otros con ciertos tipos de datos, ningún algoritmo individual siempre superará a todos los demás en todos los problemas. Este concepto se llama el teorema de que no hay almuerzo gratis. En otras palabras, no obtienes algo por nada; debe esforzarse un poco para encontrar el mejor algoritmo para su problema particular. Los científicos de datos generalmente eligen algunos algoritmos que saben que tienden a funcionar bien para el tipo de datos y el problema en el que están trabajando, y ven qué algoritmo genera el modelo de mejor rendimiento. Verás cómo hacemos esto más adelante en el libro. Sin embargo, podemos reducir nuestra elección inicial dividiendo los algoritmos de aprendizaje automático en categorías, según la función que realizan y cómo la realizan.

Ejemplo de un algoritmo que aprende

Clases de Algortimos

Existen algortimos que son comunes a todas las instancias mencionados y podemos clasificarlos en:

  • Algortimos de Aprendizaje Supervisado
  • Algoritmos de Aprendizaje No Supervisado

Dentro de ellos hay clases:

Supervisados

Es aplicable a datos con estiquetas

Algoritmos Supervisados Incluye a algortimos del tipo

  1. Clasificación
  2. Regresión

No Supervisados

Algoritmos Supervisados

A deferencia del caso anterior aquí los datos no tienen una columna de etiquetas. Incluyen a prácticas como los algoritmos de

  1. Reducción de dimensión
  2. Clustering o agrupación

Revisión de algoritmos con R.

En la prósima parte del texto revisaremos estos algoritmos y sus implementaciones en R

  1. Regresión Lineal y Regresión Logística
  2. Clasificación basada en similitud (KNN)
  3. Redes Neuronales Artificiales
  4. Clasificación con árboles
  5. Centroides (KMeans)
  6. Reducción de dimensiones e Interpretación
  7. Sobreentrenamiento y subentrenamiento
  8. Mejora de performance y matriz de confusión.

K Nearest Neighbor

Kaesimo vecino más proóximo

El método de los k vecinos más cercanos (en inglés: k-nearest neighbors, abreviado \(k-nn\)) es un método de clasificación supervisada (Aprendizaje, estimación basada en un conjunto de entrenamiento y prototipos) que sirve para estimar la función de densidad \(F(x/Cj)\) de las predictoras \(x\) por cada clase \(C_{j}\) .

Este es un método de clasificación no paramétrico, que estima el valor de la función de densidad de probabilidad o directamente la probabilidad a posteriori de que un elemento \(x\) pertenezca a la clase \(C_{j}\) a partir de la información proporcionada por el conjunto de prototipos. En el proceso de aprendizaje no se hace ninguna suposición acerca de la distribución de las variables predictoras.

En el reconocimiento de patrones, el algoritmo k-nn es usado como método de clasificación de objetos (elementos) basado en un entrenamiento mediante ejemplos cercanos en el espacio de los elementos. k-nn es un tipo de aprendizaje vago (lazy learning), donde la función se aproxima solo localmente y todo el cómputo es diferido a la clasificación. La normalización de datos puede mejorar considerablemente la exactitud del algoritmo .

Algoritmo Knn

Los ejemplos de entrenamiento son vectores en un espacio característico multidimensional, cada ejemplo está descrito en términos de

\(p\) atributos considerando

\(q\) clases para la clasificación. Los valores de los atributos del i-ésimo ejemplo (donde

\[ x_{i}=(x_{1i},x_{2i},...,x_{pi})\in X \]

El espacio es particionado en regiones por localizaciones y etiquetas de los ejemplos de entrenamiento. Un punto en el espacio es asignado a la clase \(C\) si esta es la clase más frecuente entre los k ejemplos de entrenamiento más cercano. Generalmente se usa la distancia euclidiana.

distancia euclidiana.

\[d(x_{i},x_{j})=\sqrt {\sum _{r=1}^{p}(x_{ri}-x_{rj})^{2}} \]

La fase de entrenamiento del algoritmo consiste en almacenar los vectores característicos y las etiquetas de las clases de los ejemplos de entrenamiento. En la fase de clasificación, la evaluación del ejemplo (del que no se conoce su clase) es representada por un vector en el espacio característico. Se calcula la distancia entre los vectores almacenados y el nuevo vector, y se seleccionan los

\(k\) ejemplos más cercanos. El nuevo ejemplo es clasificado con la clase que más se repite en los vectores seleccionados.

Este método supone que los vecinos más cercanos nos dan la mejor clasificación y esto se hace utilizando todos los atributos; el problema de dicha suposición es que es posible que se tengan muchos atributos irrelevantes que dominen sobre la clasificación: dos atributos relevantes perderían peso entre otros veinte irrelevantes.

Para corregir el posible sesgo se puede asignar un peso a las distancias de cada atributo, dándole así mayor importancia a los atributos más relevantes. Otra posibilidad consiste en tratar de determinar o ajustar los pesos con ejemplos conocidos de entrenamiento. Finalmente, antes de asignar pesos es recomendable identificar y eliminar los atributos que se consideran irrelevantes.

En síntesis, el método \(k-nn\) se resume en dos algoritmos:

Algoritmo de entrenamiento

Para cada ejemplo \({\displaystyle \langle x,f(x)\rangle }\) , donde

\(x\in X\), agregar el ejemplo a la estructura representando los ejemplos de aprendizaje.

Algoritmo de clasificación

Dado un ejemplar

$ x_{q}$ que debe ser clasificado, sean

\(x_{1},...,x_{k}\) los \(k\) vecinos más cercanos a \(x_{q}\) en los ejemplos de aprendizaje, regresar

\[ {\hat {f}}(x)\leftarrow \arg \max _{v\in V}\sum _{i=1}^{k}[v=f(x_{i})]\]

donde usamos la notación de corchete de Iverson.

El valor

\(\hat {f}(x_{q})\) devuelto por el algoritmo como un estimador de $ f(x_{q})$ es solo el valor más común de

\(f\) entre los

\(k\) vecinos más cercanos a $ x_{q}$ . Si elegimos \(k=1\); entonces el vecino más cercano a \(x_{i}\) determina su valor.

Elección del k

La mejor elección de

k depende fundamentalmente de los datos; generalmente, valores grandes de \(k\) reducen el efecto de ruido en la clasificación, pero crean límites entre clases parecidas. Un buen \(k\) puede ser seleccionado mediante una optimización de uso. El caso especial en que la clase es predicha para ser la clase más cercana al ejemplo de entrenamiento (cuando \(k=1\) es llamada Nearest Neighbor Algorithm, Algoritmo del vecino más cercano).

La exactitud de este algoritmo puede ser severamente degradada por la presencia de ruido o características irrelevantes, o si las escalas de características no son consistentes con lo que uno considera importante. Muchas investigaciones y esfuerzos fueron puestos en la selección y crecimiento de características para mejorar las clasificaciones. Particularmente una aproximación en el uso de algoritmos que evolucionan para optimizar características de escalabilidad. Otra aproximación consiste en escalar características por la información mutua de los datos de entrenamiento con las clases de entrenamiento.

Caso de Estudio Knn

Riesgo y Rentabilidad de proyectos

Utilizaremos un Dataset que tiene datos de riesgo y rentabilidad de actividades comerciales e industriales de una provincia argentina, medidos entre 2015 y hoy.

Cargareos los datos con:

library(readr)
datos <- read_delim("https://themys.sid.uncu.edu.ar/rpalma/R-cran/Frontera_Pareto.csv", 
    ";", escape_double = FALSE, locale = locale(decimal_mark = ",", 
        grouping_mark = "|"), trim_ws = TRUE)

Ejercicio:

  • Bajar en archivo y examinarlo con excel
  • Hacer un análisis exploratorio

Análisis exploratorio con R

summary(datos)
      VAN               RISK      
 Min.   : 475520   Min.   :11.08  
 1st Qu.:1040938   1st Qu.:35.98  
 Median :1356333   Median :50.63  
 Mean   :1376995   Mean   :50.00  
 3rd Qu.:1704988   3rd Qu.:64.61  
 Max.   :2361011   Max.   :84.61  
head(datos$VAN)
[1] 558095.9 475519.7 489282.4 562683.5 562683.5 686547.9
length(datos$VAN)
[1] 254
head(datos$RISK)
[1] 19.06216 21.32237 25.54146 30.06202 34.88375 19.21282
length(datos$RISK)
[1] 254
plot(density(datos$VAN), main="Excursión del VAN", ylab="En millones de U$D",xlab="Número de Caso de Estudio")

plot(density(datos$RISK), main="Excursión del Riesgo", ylab="En millones de U$D",xlab="Número de Caso de Estudio")

Polteo Datos

mx <- datos$RISK
my <- datos$VAN

plot(mx,my,type="p", main="Frontera Pareto en Freedonia",ylab="VAN",xlab="Riesgo")

Entrenamiento Knn

Creacion de k clusters

Utilizaremos la totalidad de datos para entrenar. En este caso le diremos de antemano que sabemos que k es cinco.

Recomendamos ver como se comparta el experimento con distintos valores de k.

library(cluster)
fit <- kmeans(datos, 5)
fit
K-means clustering with 5 clusters of sizes 55, 60, 24, 45, 70

Cluster means:
        VAN     RISK
1 1775219.8 61.34622
2 1100270.2 40.79803
3 2092637.9 66.17535
4  771876.7 31.93042
5 1444938.7 55.04284

Clustering vector:
 [1] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 4 2 2 2 2 4 2 2 4 4 4 4 4 4 4
[39] 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 2 2 2 2 5 2 2 2 2 2 2 2 2 5
[77] 5 5 5 5 5 5 2 2 2
 [ reached getOption("max.print") -- omitted 169 entries ]

Within cluster sum of squares by cluster:
[1] 406220574972 517368427229 375204423804 669483568609 671089067812
 (between_SS / total_SS =  94.1 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
[6] "betweenss"    "size"         "iter"         "ifault"      

Como podemos ver la efectividad es del 94.2%

Cantidad de casos dentro de cada vecindad

fit$size
[1] 55 60 24 45 70

El centro de cada cluster está en las coordenadas

fit$centers
        VAN     RISK
1 1775219.8 61.34622
2 1100270.2 40.79803
3 2092637.9 66.17535
4  771876.7 31.93042
5 1444938.7 55.04284

Crear nemónicos (Groups) para cada vecindad

aggregate(datos,by=list(fit$cluster),FUN=mean)
  Group.1       VAN     RISK
1       1 1775219.8 61.34622
2       2 1100270.2 40.79803
3       3 2092637.9 66.17535
4       4  771876.7 31.93042
5       5 1444938.7 55.04284
mi_cluster <- data.frame(datos, fit$cluster)

Ejecuta este comando para inspeccionar toda la tabla

View(mi_cluster)

Ploteo de Clusters con PCA

Explicaremos brevemente que esl en análisis basado en componentes principales.

En esta sección, le mostraré qué es PCA, cómo funciona y por qué es útil. Imagine que medimos dos variables en siete personas y queremos comprimir esta información en una sola variable usando PCA. Lo primero que debemos hacer es centrar las variables restando la media de cada variable de su valor correspondiente para cada caso.

Además de centrar nuestras variables, también podemos escalarlas dividiendo cada variable por su desviación estándar. Esto es importante si las variables se miden en escalas diferentes; de lo contrario, las que se encuentran en escalas grandes tendrán mayor peso. Si nuestras variables están en escalas similares, este paso de estandarización no es necesario.

Con nuestros datos centrados y (posiblemente) escalados, PCA ahora encuentra un nuevo eje que satisface dos condiciones:

El eje pasa por el origen. El eje maximiza la varianza de los datos a lo largo de sí mismo.

Lo primero que hacemos antes de aplicar el cualquier algoritmo (normalmente) centrar los datos restando la media de cada variable para cada caso. Esto coloca el origen en el centro de los datos. Luego se encuentra el primer eje principal: es el eje que pasa por el origen y maximiza la varianza de los datos cuando se proyectan sobre él.

PCA primeros pasos Lo que significa para el primer eje principal “maximizar la varianza”. El gráfico del lado izquierdo muestra un eje principal candidato subóptimo. La gráfica del lado derecho muestra el eje principal candidato óptimo. Los datos se muestran proyectados en cada eje principal debajo de las respectivas parcelas. La varianza de los datos a lo largo del eje es mayor en el lado derecho.

PCA primeros pasos

Cálculo del vector propio para un componente principal. El las distancias a lo largo de cada variable están escaladas para que marquen un punto que está a una unidad a lo largo del eje principal del origen. Podemos ilustrar esto gráficamente tomando un triángulo definido por el cambio en una variable sobre el cambio en la otra variable y usando el teorema de Pitágoras para encontrar la distancia desde el origen para dividir.

PCA primeros pasos

En un espacio de características bidimensional, el primer eje principal es el que maximiza la varianza (como siempre lo es), y el segundo eje principal es ortogonal (en ángulo recto) al primero. En esta situación, graficar los componentes principales simplemente da como resultado una rotación de los datos.

PCA primeros pasos

clusplot(mi_cluster,mi_cluster$fit.cluster)

Figura de Familias sin PCA

plot(mi_cluster$RISK , mi_cluster$VAN , col=mi_cluster$fit.cluster)

Etiquetado de datos

train <- mi_cluster
cl  <- factor(mi_cluster$fit.cluster, levels = c("1", "2","3","4","5"),labels = c("Prost Penalist Casino","Bank Cred_pers Tel_Cel Bebidas", "Manufactura Metal_Mec Servicios Seguros,Bodegas","MOA Restaurant Emprendimientos BT","Transporte Pasajeros Comercio Ropa, Perecederos"))
summary(cl)
                          Prost Penalist Casino 
                                             55 
                 Bank Cred_pers Tel_Cel Bebidas 
                                             60 
Manufactura Metal_Mec Servicios Seguros,Bodegas 
                                             24 
              MOA Restaurant Emprendimientos BT 
                                             45 
Transporte Pasajeros Comercio Ropa, Perecederos 
                                             70 
plot(cl, main="Casos en la muestra", las = 2)

Predicción de cluster asignado

Tenemos una empresa nueva que tiene

  • VAN 500.000

  • RISK 62,23%

¿A qué grupo deberíamos asignarla?

  Encontrar los 4 vecinos más próximos

para realizar esto tengo que crear un vector que tenga 3 valores, el primerto es el VAN, el segundo es la rentabilidad y el tercero la cantidad de vecinos que voy a utilizar para la predicción.

mi_caso <- cbind (50,62.23,4 )

mi_caso
     [,1]  [,2] [,3]
[1,]   50 62.23    4

Busco 5 vecinos más próximos

library(class)
knn(train, mi_caso, k=20, cl, prob=TRUE)
[1] MOA Restaurant Emprendimientos BT
attr(,"prob")
[1] 1
5 Levels: Prost Penalist Casino ... Transporte Pasajeros Comercio Ropa, Perecederos