





























































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documento de estudio para comprender los conceptos, algoritmos y conocimientos básicos para el estudio de Machine Learning aplicado con un lenguaje de programación como podría ser Python, R o Scala.
Tipo: Apuntes
1 / 69
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






























































Los algoritmos de Machine Learning los utilizamos diariamente y en ocasiones, es tan normal su uso que no nos damos cuenta de que lo que estamos utilizando se encuentra programado con algoritmos de Machine Learning. Veamos varios ejemplos de esto. Los correos electrónicos es uno de los primeros ejemplos que nos dan al momento de aprender sobre Machine Learning y se puede decir que fue uno de los algoritmos que se empezaron a utilizar de manera masiva y que en su momento, y hasta el día de hoy, lo hemos agradecido infinitamente. El simple hecho de que se pueda detectar si un correo recibido es algo que nos interese o simplemente un “correo no deseado”, hace que nos ahorremos mucho tiempo en el día a día. Esta clasificación se hace por medio del aprendizaje del algoritmo tomando en cuenta parámetros ya establecidos. Por ejemplo, si el asunto o el contenido del correo contiene palabras definidas por el proveedor del correo como prohibidas, pero también aprende del usuario, pues con el simple hecho de seleccionar un correo y clasificarlo como “no deseado”, el algoritmo aprende y cuando se vuelve a recibir un correo de este usuario, se irá directamente a la bandeja de “spam” o “correo no deseado”. Esta fue una de las aplicaciones de Machine Learning que en su momento tuvo un gran impacto para los que usábamos los correos electrónicos simplificando las tareas. Otra de las aplicaciones que usamos día a día es el reconocimiento facial en las fotos que publicamos en Facebook. Este es uno de los algoritmos que ha perfeccionado en los últimos años Facebook y es considerado uno de los mejores en esta área. Con el simple hecho de publicar una foto en la plataforma, el modelo realiza un escaneo de la misma y comparando con los datos que tiene almacenados, puede relacionar los nombres de cada una de las personas que se encuentran en la foto. Este algoritmo se ha venido perfeccionando con el paso del tiempo. Cuando comenzó a implementarse podíamos observar que en ocasiones se equivocaba para determinar quién era quién, pero a día de hoy ocurre cada vez menos, por lo que el algoritmo ha ido mejorando su aprendizaje. Las recomendaciones a las películas de Netflix conjuga una serie de algoritmos que unidos, realiza las recomendaciones de las películas y series. El algoritmo aprende tanto de las películas vistas como de las películas que dejamos de ver, las que incluimos en nuestra lista de visualización, así como también si utilizamos un celular, una Tablet o una pantalla y mucha más información que se utiliza para realizar las mejores recomendaciones para cada uno de los usuarios. Un dato curioso de Netflix es que para 2006 publicó un concurso de Machine Learning y minería de datos que revolucionaría por completo el mundo de la ciencia de datos. El propósito era sencillo, Netflix quería mejorar la precisión de sus predicciones respecto a cuánto le gustaría a un usuario, una determinada película basada en su historial de preferencias. Para
entonces Netflix ya había desarrollado un sistema de recomendación propio, el cual hacía recomendaciones personales de nuevas películas basadas en cuánto le gusta o disgusta al usuario otras películas. Sin embargo, la empresa deseaba experimentar nuevos enfoques y abrió el concurso a cualquier persona que pudiese desarrollar un algoritmo que mejorara en al menos, un 10% de las predicciones del algoritmo propio sobre el mismo set de datos. El premio para quien lograra este objetivo, era de un millón de dólares. El equipo ganador de este concurso fue Bellkor’s Pragmatic Chaos los cuales registraron un algoritmo que generaba una mejora del 10.6%. sin embargo, Netflix nunca llegó a utilizar el algoritmo ganador, ya que él mismo contaba con más de 800 algoritmos, lo que hacía un cambio significativo de la tecnología para soportar cientos de algoritmos trabajando simultáneamente. Otra de las aplicaciones en las que usamos Machine Learning, es la traducción simultánea. ¿Cuándo nos hubiésemos imaginado en que con solo poner la pantalla de nuestro celular sobre una imagen con letras en otros idiomas como chino o ruso, este nos iba a traducir automáticamente y de manera muy eficiente lo que se decía en nuestro idioma?. Hace unos años atrás, esto era inimaginable pero ahora es tan sencillo como tomar una foto. Esto se logró gracias a una de las tantas ramas que tiene Machine Learning. Otra de las aplicaciones que tiene y que en ocasiones nos molesta y creemos que nos están espiando por algún lado, son las publicaciones de publicidad tanto en Facebook como en Google. Esto no es magia o que nos estén espiando, es que simplemente estas dos grandes compañías manejan tanta información sobre nosotros que fácilmente la pueden utilizar para vendernos productos o paquetes que en ocasiones ni nosotros mismos sabíamos que queríamos, pero todo esto se logra por la cantidad de datos que ellos manejan y que ahora lo utilizan las empresas de publicidad y mercadeo. La realidad virtual es otro de los grandes ejemplos de Machine Learning, el cual con unos gráficos muy bien realizados, nos permite transportarnos a cualquier sitio y vivir experiencias como si estuviésemos allí. Esta tecnología también la vemos aplicada en equipos mucho más avanzados como en Curiosity, un robot enviado a Marte para realizar exploraciones. Este robot es capaz de determinar qué es importante de analizar y qué se puede descartar. Esto es gracias al sistema que corre en él con varios algoritmos de Machine Learning. Y si hablamos de Curiosity, mención especial se merecen los automóviles autónomos, los cuales conjugan una serie de algoritmos y tecnologías que hacen capaz que estos vehículos puedan lograr su objetivo. Estos son solo unos pocos ejemplos en donde podemos poner en práctica los algoritmos de Machine Learning. Lo importante es saber que nunca es tarde para aprender sobre este tema porque cada año o más bien cada mes, vamos a poder ver nuevas aplicaciones en este ámbito por lo que es importante por lo menos conocer de qué se trata.
su vez la conversación estaría limitada a un medio textual únicamente. De esta forma no sería necesario que la máquina transformara el texto en habla. En el caso de que el evaluador no pueda distinguir entre el humano y la máquina acertadamente, la máquina habría pasado la prueba. Para el año 1952 Arthur Samuel escribe el primer programa de ordenador capaz de aprender. El software era simplemente un programa que jugaba a las damas y que podía aprender de sus errores partida tras partida, mejorando de esta forma sus habilidades. Para el año 1957 Fran Rosenblatt diseña el Perceptron, una red neuronal en hardware para reconocimiento de caracteres. El propósito era el de explicar y modelar las habilidades de reconocimiento de patrones de los sistemas visuales biológicos. En 1979 los estudiantes de la Universidad de Stanford, diseñan un carro capaz de moverse autónomamente por una habitación evitando obstáculos. El carro pudo cruzar con éxito toda una habitación llena de sillas y obstáculos sin intervención humana en aproximadamente cinco horas. El video de esta prueba lo puedes encontrar en Youtube (http://bit.ly/2GulU8y). Para el año 1981 Gerald DeJong crea el concepto de Aprendizaje Basado en Experiencia, haciendo que un computador analice información de entrenamiento y cree una regla general que le permita descartar información no importante. Ya en 1985, Terry Sejnowski inventa NetTalk, un software que aprende a pronunciar palabras de la misma manera que lo haría un niño. Durante los primeros años de los 90s, científicos empiezan a crear programas que analicen grandes cantidades de datos y saquen conclusiones, o aprendan de los resultados. En 1996 el computador Deep Blue de IBM vence en una partida de ajedez a Gary Kasparov, campeón del mundo vigente, aunque al final Kasparov ganó tres partidas más, derrotando a Deep Blue. Para mayo de 1997 se vuelven a enfrentar, pero esta vez con una nueva versión de computador llamado Deeper Blue. Esta vez se jugaron seis partidas siendo el vencedor el computador. Para el año 2006 Geoffrey Hinton presenta el concepto de Deep Learning o aprendizaje profundo. Con este concepto se explicaron los nuevos algoritmos que permiten que los computadores distingan diversos objetos y textos tanto en imágenes, como en videos. En 2010 el Kinect de Microsoft es capaz de reconocer veinte características del cuerpo humano a una velocidad de treinta veces por segundo. Para 2011 el ordenador Watson de IBM vence a dos inteligentes concursantes en la tercera ronda del concurso estadounidense de preguntas y respuestas Jeopardy. También en este año se crea Google Brain por Jeff Dean de Google y Andrew Ng,
profesor de la Universidad de Stanford. El propósito de este proyecto fue el de crear una red neuronal utilizando toda la capacidad de la infraestructura de Google para detectar patrones en videos e imágenes. En el año 2012 los laboratorios Google X, ahora llamado solamente X, desarrollan un algoritmo de aprendizaje automático que permite navegar de forma autónoma por los videos de Youtube para identificar los videos que contienen gatos. Ya en 2014 se pudo ejecutar de manera exitosa la prueba de Turing de 1950. Un programa de ordenador ha logrado convencer a más del 30% de los jueces que era genuinamente un humano. Se trata de un chatbot (robot programado para charlas online) que obedece al nombre de Eugene Goostman. El programa fue capaz de convencer al 33% de los jueces que participaron en la prueba de que estaban chateando con un niño ucraniano de 13 años. Para este año Facebook desarrolla DeepFace, un algoritmo de software que puede reconocer individuos en fotos al mismo nivel que los humanos. Y empezamos en el año en donde se puede observar los más grandes avances de Machine Learning que fue en 2015. Este año Amazon lanza su propia plataforma de aprendizaje automático o Machine Learning. A su vez, Microsoft crea el kit de herramientas para el aprendizaje de máquinas distribuidas, que permite la distribución eficiente de problemas de aprendizaje automático en múltiples computadoras. En este mismo año Google entrena un agente conversacional de inteligencia artificial que no sólo puede interactuar convincentemente con humanos como un servicio de soporte técnico, sino también discutir la moralidad, expresar opiniones y responder preguntas generales basadas en hechos. A su vez, openAI es creada. Esta es una compañía de investigación de inteligencia artificial sin fines de lucro, que tiene como objetivo promover y desarrollar inteligencia artificial amigable, de tal manera que beneficie a la humanidad en su conjunto. Entre sus fundadores se encuentra Elon Musk el mismo de Tesla y Spacex. Debido a los grandes avances obtenidos en el área Machine Learning e inteligencia artificial, más de 3. investigadores de estas áreas, respaldados por Stephen Hawking, Elon Musk y Steve Wozniak, firman una carta abierta advirtiendo del peligro de las armas autónomas que seleccionan y atacan objetivos sin intervención humana, esto con el propósito de llamar tensión a los gobiernos que están desarrollando este tipo de tecnologías. ya Para el 2016, el algoritmo de inteligencia artificial de Google vence a un jugador profesional en el juego de mesa chino Go, que es considerado el juego de mesa más complejo del mundo y mucho más difícil que el ajedrez. El algoritmo desarrollado por Google DeepMind logró ganar cinco juegos de cinco en la competencia de Go. Y finalmente llegamos al año 2017 en donde OpenAI entrena chat bots o agentes conversacionales que inventan su propio lenguaje para cooperar y lograr su objetivo de manera efectiva. Poco después, Facebook también capacitó exitosamente agentes para negociar e incluso mentir. Meses después, un algoritmo desarrollado también por OpenAI derrota a los mejores jugadores en partidos uno contra uno del juego en línea Dota 2.
exactamente, pero sí sabemos que cuenta con la información de las películas que hemos visto durante todo el tiempo que hemos estado suscritos a la plataforma y a su vez, conoce las películas que le hemos dado “me gusta” o por el contrario, manita hacia abajo indicando que no nos gusta. Con toda esta información este algoritmo de Machine Learning puede determinar, si esta nueva película nos va a gustar o por el contrario es preferible que no nos la recomiende, porque seguramente no será de nuestro agrado. Clasificación de Machine Learning. Esta clasificación es de las más tradicionales que se hacen en este área.
Este aprende y crea el modelo que cada vez que vea esta imagen, tendrá como predicción un gato. Por lo tanto, como ya nuestro ejemplo ha aprendido, entonces podemos introducir una imagen, pero esta vez sin indicarte cuál es su significado ni qué representa pero como ya lo aprendió, puede predecir automáticamente que es un gato.
Obviamente la respuesta es incorrecta, por lo que se le indica el algoritmo y a su vez se le puede dar la respuesta correcta: En ocasiones el algoritmo tiene que seguir dando respuestas hasta que obtenga la correcta. Una vez dada esta información al algoritmo, la aprende para una nueva oportunidad. Si ahora hay este algoritmo ya aprendido se le introduce nuevamente una foto de una mariposa, la respuesta que dará será la correcta, ya que ha aprendido.
Este algoritmo es utilizado en un sinfín de aplicaciones hoy en día, como el análisis de discursos, documentos, entre otros sin importar el idioma en que se encuentre.
Las variables independientes o características son las que se manipulan para determinar el valor de una variable dependiente. Dicho de manera más sencilla, son las características que queremos usar para predecir algún valor dado de “y”. Por su parte, las variables dependientes u objetivo es la que depende de los valores de la variable independiente. En pocas palabras, es la característica que estamos tratando de predecir. Esto también se puede conocer comúnmente como una variable de respuesta. Ahora bien, podemos decir que la regresión lineal es un método para predecir la variable dependiente (y) en función de los valores de la variable independiente (x). Se puede decir para los casos donde queremos predecir alguna cantidad continua, como por ejemplo predecir el tráfico en una tienda minorista, predecir el tiempo de permanencia de un usuario o el número de páginas visitadas en un blog. Pongamos un ejemplo: tenemos los datos de los años de experiencia en un trabajo. Esto vendría siendo nuestra variable independiente (x) y a su vez, tenemos los salarios para cada uno de los años de experiencia, siendo nuestra variable dependiente (y). Con estos datos vamos a entrenar nuestro algoritmo de Regresión Lineal para que genere un modelo que al introducir algún año de experiencia nos de como resultado la predicción del salario.
Si graficamos los datos entregados, tendríamos una gráfica parecida a esta: Aquí observamos la relación, entre los años de experiencia y el salario. Si analizamos la gráfica nos damos cuenta de que a medida que cuentan los años de experiencia aumenta el salario. Con los datos entregados y aplicando el algoritmo de Regresión Lineal, obtenemos el modelo para realizar la predicción. Este modelo consiste en una línea recta que relaciona los datos: Esta no es una línea cualquiera. La misma se construye a través de ecuaciones matemáticas y los datos entregados, pero la idea principal es construir un modelo, en este caso una línea, que se ajuste lo más posible a los datos entregados. Ya con el modelo obtenido, podremos utilizarlo para realizar una predicción. En este caso queremos predecir el salario de una persona que tiene cuatro años de experiencia. Para ello tenemos nuestro algoritmo de regresión lineal el cual, ha generado un modelo con los datos entregados previamente. Ahora queremos conocer el salario de un empleado con cuatro años de experiencia por lo que introducimos esta información a nuestro modelo. Si utilizamos la gráfica podemos obtener el valor del salario. Para ello llevamos la línea del 4 hasta la recta que sería nuestro modelo y verificamos el valor relacionado ubicado en el eje y. en nuestro ejemplo, el salario sería de 68000. De esta forma tan sencilla podemos obtener esta información. Lo importante es determinar un buen modelo, ya que con esto podemos predecir los datos.
Si tenemos toda esta información, podemos introducirla a un algoritmo de Regresión Lineal y a su vez, este nos generará un modelo para predecir las ventas. La regresión lineal se divide en dos: en simple y en múltiple. La regresión lineal simple sería como nuestro primer ejemplo en donde teníamos una sola variable independiente (años de experiencia) y con esta única información predecíamos (salario). En cambio, la regresión lineal múltiple examina la relación entre las variables independientes y una variable dependiente. Este sería nuestro último ejemplo donde teníamos varios canales o medios de comunicación de publicidad y con esta información podíamos obtener las ventas. En resumen, la regresión lineal es un método para predecir la variable dependiente (y) en función de las variables independientes (x) y a su vez se clasifica en dos: regresión lineal simple y regresión lineal múltiple. Aprendizaje Supervisado: Polynomial Regression (o regresión no lineal). Tiene similitudes con el algoritmo anterior. Veamos el siguiente ejemplo en donde tenemos un conjunto de datos que gráficamente se observa de esta manera:
Si aplicamos el algoritmo de regresión lineal, el modelo queda de esta forma: Recordemos que este algoritmo se trata de obtener una línea recta que mejor se ajuste a los datos, reduciendo el error entre ambos. Como podemos observar, la línea del modelo se ajusta a los datos entregados. Ahora bien, observemos el siguiente ejemplo: Si le aplicamos el algoritmo de regresión lineal quedaría algo así: Como se observa existe un gran error entre la línea y los datos. Es decir, este modelo no se ajusta a los datos por lo que no podemos utilizar este algoritmo para este conjunto de datos. A su vez, si recordamos las premisas para el algoritmo de regresión lineal, sabremos que uno de los criterios que tienen que cumplir los datos es que fueran lineales y en este caso no es así, por lo que no podemos aplicar este algoritmo. Esta es la razón por la que necesitamos aplicar el Algoritmo de Regresión no Lineal o Polinomial, el cual generaría un modelo de esta forma:
Como podemos observar, los datos no son lineales, por lo que tenemos que utilizar el algoritmo de regresión no lineal. Si calculamos un modelo con polinomios de grado 2, obtendríamos algo como esto: Como podemos observar, este modelo no cubre todos los datos. Ahora bien, si subimos el grado del polinomio a tres, obtenemos algo como esto: El modelo se ajusta más a los datos pero existen pequeños errores. Si empleáramos un polinomio de grado 4 obtenemos este modelo:
Este se ajusta mucho más a nuestros datos, siendo este el modelo para este conjunto de datos. De todas formas, se deben de hacer pruebas con distintos grados de polinomios para obtener el que más se ajusta a nuestros datos. Así mismo, es importante destacar que no siempre aumentar el grado del polinomio hará que el modelo mejore. En ocasiones, hace que se empeore el modelo del algoritmo, por lo que esto es solo un proceso de experimentación para obtener el más adecuado y que reduzca los errores entre el modelo y los datos. Aunque la regresión no lineal suene compleja, porque involucra realizar pruebas con polinomios de múltiples grados y el grado puede ser cualquier número, al final no es para nada complicado llevar esto a la práctica. Aprendizaje Supervisado: Support Vector Regression (algoritmo de soporte de vectores de regresión). Este algoritmo puede ser aplicado para predicciones del tipo de Regresión, como para Clasificación. Hablaremos del soporte de vectores para regresión. Supongamos que tenemos el siguiente conjunto de datos: Lo primero que hace este algoritmo es construir una curva o hiperplano que modele la tendencia de los datos: