diff --git a/.ipynb_checkpoints/1. Bases cognitivas-checkpoint.ipynb b/.ipynb_checkpoints/1. Bases cognitivas-checkpoint.ipynb new file mode 100644 index 0000000..43f5e81 --- /dev/null +++ b/.ipynb_checkpoints/1. Bases cognitivas-checkpoint.ipynb @@ -0,0 +1,268 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](images/header_01.png)
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Datos y la pirámide DIKW\n", + "\n", + "Los datos son la materia prima del razonamiento y de la toma de decisiones y, dado su gran volumen y diversidad, son la característica fundamental de esta era. Sin embargo, y a pesar de que existe un claro consenso al respecto, no existe una definición absolutamente aceptada de lo que es un dato ni de sus productos derivados. [Aqui](http://www.success.co.il/is/zins_definitions_dik.pdf) una excelente discusión al respecto.\n", + "\n", + "Una definición aceptable de datos, en el contexto que nos interesa, es:\n", + "\n", + ">Los datos son un conjunto de símbolos o signos que representan estímulos del medio ambiente o señales, y que son registrados a partir de la observación. \n", + "\n", + "A partir de los datos se generan, sucesivamente, constructos de mayor abstracción: la información, el conocimiento y la sabiduría. La relación entre los datos y estos otros conceptos suele describirse a través de la llamada *pirámide de datos*, también conocida como *pirámide de la información*, *del conocimiento*, *de la sabiduría* o, simplemente, *pirámide DIKW* (por las siglas en inglés * **d**ata, **i**nformation, **k**nowledge, **w**isdom *). En la siguiente figura se muestra la un diagrama de la pirámide DIKW con un ejemplo simple: \n", + "\n", + "![](images/dikw.png)\n", + "\n", + "De manera similar, podemos definir el término *información* como un conjunto de datos organizados para un propósito específico y presentados en un contexto que les da significado y relevancia para el usuario. El *conocimiento* es el conjunto de reglas, en un contexto dado, que resultan de la interpretación y apropiación de la información por parte del usuario. La *sabiduría*, por su parte, es la capacidad de tomar decisiones adecuadas utilizando el conocimiento, la experiencia, la comprensión y la percepción. El fin de la ciencia de datos es transformar datos en acciones pertinentes a través de la generación de información, conocimiento y sabiduría." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Patrones y percepción\n", + "\n", + "Un *patrón* puede definirse como una regularidad en un sistema. La capacidad de identificar estas regularidades es lo que nos permite reconocer objetos en ambientes complejos. Esta capacidad es lo que podemos llamar **Reconocimiento de patrones**.\n", + "\n", + "El reconocimiento de patrones es una habilidad natural del ser humano, y de los seres vivos en general, y es lo que nos permite reconocer objetos en ambientes complejos y tomar decisiones de forma cotidiana. En la imagen siguiente, por ejemplo, podemos observar un camino de terracería y aunque se trata de tierra, piedras y vegetación mezclados, es muy simple distinguir los límites (imprecisos) entre el camino y los bordes, las piedras a un costado y la vegetación. Incluso podemos distinguir en el camino las zonas por donde transitan regularmente los automóviles.\n", + "\n", + "![](images/patterns01.png)
\n", + "\n", + "![](images/patterns01.jpeg)
\n", + "\n", + "Existen diferentes tipos de regularidades que pueden ser detectadas de forma natural por los humanos, entre las que se pueden destacar las siguientes: \n", + "* **Armonía**: Proveniente del griego ἁρμονία (harmonía), que significa “conjunto, acuerdo, concordia”, esta palabra se usa comúnmente para denotar formas de concordancia y acuerdo en el ámbito social y musical. Sin embargo, podemos hablar también de armonías visuales, olfativas, gustativas o táctiles.\n", + "![](images/armonias.jpg)
\n", + "* **Ritmo**: El ritmo es cualquier movimiento regular y recurrente, marcado por la sucesión regular de elementos débiles y fuertes, o bien de condiciones opuestas o diferentes. \n", + "![](images/rythm.jpg)
\n", + "En la definición del ritmo, el movimiento puede hacer referencia a una secuencia 'apreciadas' de estados: un escalón que 'sigue a otro', por ejemplo.

\n", + "* **Flujo**: La palabra flujo, proveniente del latín *fluxus* hace referencia al movimiento de una substancia, un fluido, que puede tratarse de una corriente o de una emanación. Aunque típicamente se asocia el flujo a un líquido, actualmente el término se utiliza para para referirse a cualquier efecto en el que una cosa parece pasar o viajar, ya sea que se mueva o no. Así, podemos hablar del flujo de actividades en un proceso o del flujo de efectivo en una empresa. \n", + "![](images/flow.png)
\n", + "* **Simetría**: La simetría se define como la 'correspondencia exacta en la disposición regular de las partes o puntos de un cuerpo o figura con relación a un centro, un eje o un plano'. \n", + "![](images/symmetry.png)
\n", + "* **Proporcionalidad**: La proporcionalidad es una relación o razón constante entre magnitudes medibles. \n", + "![](images/proportion.png)
\n", + "\n", + "\n", + "## Reconocimiento de patrones y conocimiento\n", + "El ser humano ha tratado, desde el surgimiento de la sociedad, de identificar las regularidades en un ambiente, típicamente azaroso, para generar modelos abstractos. \n", + "\n", + "[![](images/ptolemaic_small.jpg)](images/ptolemaic.jpg)
\n", + "\n", + "Estos modelos, utilizados por los seres humanos para dominar su entorno, son representaciones parciales de la realidad, limitadas por las capacidades del ser humano para sensar su entorno. Esta idea fue planteada hace cerca de 2500 años por Protágoras y sujeta, desde entonces, a controversia.\n", + "\n", + "![](images/protagoras.jpg)
\n", + "\n", + "Un punto de vista alterno/complementario, para valorar la calidad de los modelos, se deriva de la alegoría de la caverna, presentada por Platón alrededor de 380 a. C. En esta metáfora, Platón describe a un grupo de prisioneros que han vivido encadenados en una cueva viendo hacia una pared desnuda. Los prisioneros juzgan el mundo a través de las sombras proyectadas en ella por objetos comunes, en contraposición a los filósofos que ven los objetos como son. De esta manera, Platón discute la importancia de la educación: los modelos de los prisioneros son pobres, en este caso, debido a la falta de conocimiento, pero pueden ser mejorados gracias a un estudio más profundo.\n", + "\n", + "![](images/platon_cave_sanraedam_1604.jpg)
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pensamiento computacional\n", + "\n", + "El *pensamiento computacional* es un concepto que describe el proceso de razonamiento que conduce a la resolución de un problema por medios computacionales. El término fue introducido originalmente por [Seymour Papert](http://www.papert.org/articles/AnExplorationintheSpaceofMathematicsEducations.html) para resaltar el potencial de las representaciones computacionales para expresar ideas complejas, particularmente mediante el uso de simulaciones para enfatizar los aspectos dinámicos de los fenómenos físicos, en la enseñanza. Posteriormente, el concepto fue abordado por [Jeannette M. Wing](https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf) en el sentido que se utiliza actualmente, como la habilidad para descomponer un problema de manera que se pueda resolver de manera algorítmica. Wing enfatiza su importancia como una competencia básica para el aprendizaje, adicional a las de lectura, escritura y aritmética\n", + "De caracter controversial, en algunos casos es presentado como una [tercera forma de generar conocimiento](https://www.americanscientist.org/article/computational-thinking-in-science), además de las formas tradicionales de teoría y experimentación. De acuerdo a este concepto, las actividades de resolución de problemas se pueden organizar en cuatro etapas: \n", + "\n", + "![](images/comp_thinking.png)
\n", + "\n", + "* Descomposición: En esta etapa, el problema se replantea en pequeños subproblemas más manejables.\n", + "* *Reconocimiento de patrones*: En esta etapa, cada subproblema es analizado tratando de encontrar similaridades con otros casos resueltos u observados anteriormente.\n", + "* Abstracción: Esta etapa consiste en replantear el problema global y sus subproblemas, así como la solución, tratando de eliminar los aspectos específicos al caso y generalizar problema y solución.\n", + "* Algoritmos: Finalmente, se presenta la solución al problema en términos de una secuencia de pasos sistemáticos.\n", + "\n", + "Hay que notar que, en este contexto, el término de reconocimiento de patrones suele utilizarse de manera más general que el utilizado en ciencias de la computación, es decir, no sólo se trata del reconocimiento de patrones a partir de los datos, sino de segmentos de solución de problemas en general. También es digno de resaltar la coincidencia del enfoque del pensamiento computacional con el de ciencia de datos, en el sentido de estar enfocado en casos específicos y en el uso de las herramientas necesarias para sistematizar su análisis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ciencia de datos y otras disciplinas\n", + "La **ciencia de datos** es un nuevo campo interdisciplinario cuyo objetivo es analizar y desarrollar explicaciones de fenómenos complejos a partir del análisis de los datos generados por eventos particulares.\n", + "\n", + "La ciencia de datos se relaciona con otras disciplinas para el tratamiento y comprensión de datos, entre las que destacan las siguientes:\n", + "\n", + "![](images/rp_y_otros.png)\n", + "\n", + "Los límites específicos de estas disciplinas no están bien definidos, como puede apreciarse de los siguientes esquemas, encontrados en la Web:\n", + "\n", + "[![](images/ai-infographic.gif)](http://www.firstalign.com/services/artificial-intelligence.html)\n", + "\n", + "[![](images/main-qimg.png)](https://www.quora.com/What-is-machine-learning-and-how-it-is-linked-to-Big-Data-Data-Mining)\n", + "\n", + "[![](images/ds-disciplines.png)](https://www.altexsoft.com/whitepapers/machine-learning-bridging-between-business-and-data-science/)\n", + "\n", + "* La **estadística**, una rama de las matemáticas que se ocupa de la recopilación, organización, análisis, interpretación y presentación de datos para una mejor comprensión de la naturaleza. Como tal, su agenda principal consiste en inferir, a partir de ese estudio, reglas generales o conceptos que pueden aplicarse a observaciones nuevas o desconocidas. \n", + "\n", + "* La **inteligencia artificial**, una disciplina que tiene el objeto de desarrollar métodos de solución de problemas que, por sus mecanismos complejos de deducción, suelen compararse con los mecanismos utilizados por los seres vivos, particularmente el ser humano.\n", + "\t\n", + "* El **reconocimiento de patrones**, una de las disciplinas de las ciencias de la computación, relacionada con el análisis inteligente de datos. Su objetivo es la identificación de patrones o regularidades en los datos disponibles en un determinado contexto. El reconocimiento de patrones utiliza elementos de estadística, gramáticas formales y metáforas con la naturaleza para desarrollar sus métodos propios.\n", + "\t\n", + "* El **aprendizaje automático**, una disciplina orientada a desarrollar métodos que les permitan a las máquinas construir modelos analíticos a partir de datos. Como tal, puede considerarse una rama de la inteligencia artificial, basada en el reconocimiento de patrones, o como un área del reconocimiento de patrones basada en un enfoque de inteligencia artificial.\n", + "\t\n", + "* La **minería de datos**, una disciplina cuyo objetivo es descubrir patrones en conjuntos de datos complejos. La complejidad puede deberse a su volumen (espacial o de velocidad de generación) o a su falta de estructura. Para ello, se vale de métodos especializados de reconocimiento de patrones, provenientes lo mismo del aprendizaje automático que de la estadística, además de técnicas especializadas para manejo de bases de datos." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Industria 4.0 y la popularización de la IA\n", + "\n", + "La inteligencia artificial y otras áreas relacionadas, particularmente bajo las etiquetas de \"*Machine Learning*\", \"*Data Mining*\" y \"*Data Science*\", está viviendo una nueva etapa de popularidad, que en esta ocasión viene acompañada de un gran interés por parte de la industria. Este \"resurgimiento\" del área está fuertemente vinculada a la llamada \"economía de la información\" y a la creciente **Industria 4.0**. \n", + "\n", + "[![](images/Industry_4.0.png)](https://en.wikipedia.org/wiki/Industry_4.0)\n", + "\n", + "La adopción de las técnicas de inteligencia artificial se ha realizado en todos los ámbitos de la industria y con la participación de las empresas más importantes:\n", + "\n", + "[![](images/ia_landscape.png)](https://www.techemergence.com/artificial-intelligence-industry-an-overview-by-segment/)\n", + "\n", + "

En la siguiente gráfica se presenta un panorama sobre tendencias del uso de la IA en la industria para los próximos años:\n", + "\n", + "[![](images/te_research.png)](https://www.techemergence.com/ai-founders-and-executives-predict-5-year-trends-on-consumer-tech/)\n", + "\n", + "

Por otra parte, el interés de la industria en la IA se evidencia a través de las adquisiciones de empresas de AI realizadas por los gigantes tecnológicos:\n", + "\n", + "[![](images/ai_buys_giants.jpg)](https://twitter.com/MrJoseHernandez/status/939235139355398149)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusiones\n", + "\n", + "* El reconocimiento de patrones es una disciplina que busca explotar las capacidades naturales del ser humano para identificar regularidades en grandes volúmenes de observaciones con el fin de explicar el comportamiento de sistemas complejos. \n", + "\n", + "* Aunque actualmente se han puesto de moda muchos otros términos relacionados con el análisis de datos, el reconocimiento de patrones sigue siendo una de las áreas fundamentales para este fin.\n", + "\n", + "* Actualmente se vive una etapa de gran popularidad del área, gracias al creciente interés de la industria por incorporar las metodologías inteligentes de análisis de datos a procesos reales y con impacto práctico.\n", + "\n", + "* Para poder impactar en este creciente mercado, es importante dominar técnicas avanzadas de reconocimiento de patrones, lo mismo que sistematizar su uso en la solución de problemas reales." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "###### Tarea 1\n", + "\n", + "Describa un problema de reconocimiento de patrones de su interés y explique por qué un modelo tradicional sería inapropiado para resolverlo (utilice la celda siguiente, en esta libreta, para presentar su problema seleccionado)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Algunos problemas a considerar son:\n", + " 1. Predicción de la carrera a elegir en la Unison dadas ciertas preguntas hechas a estudiantes de preparatoria.\n", + " 2. Edición de fotografias automática personalizado\n", + " 3. Predicción del clima en hermosillo\n", + " 4. Predicción de terremotos.\n", + " 5. Sistema de recomendacion de ruta para evitar el embotellamiento\n", + "\n", + "### Problema: Sistema de recomendación de ruta para evitar embotellamiento\n", + "#### Autor: Isaac Neri Gómez Sarmiento\n", + "\n", + "Un problema que se presenta en las grandes ciudades es el embotellamiento. Este problema se debe a una gran multitud de factores. \n", + "\n", + " ### Problema: Sistema de recomendación de ruta para evitar embotellamiento\n", + " #### Autor: Isaac Neri Gómez Sarmiento\n", + " \n", + "Un problema que se presenta en las grandes ciudades es el embotellamiento. Este problema se debe a una gran multitud de factores, las cuales se enlistan algunas aquí:\n", + " \n", + "1. Horas pico\n", + "\n", + "\n", + "\n", + "2. Dia de la semana:\n", + "Puede que se congestionen más las calles entre semana que los fines de semana.\n", + "\n", + "\n", + "3. Factores naturales:\n", + "\n", + "\n", + " \n", + "4. Accidentes o reparaciones\n", + "\n", + "\n", + "\n", + "5. Dias festivos, manifestaciones\n", + "\n", + "\n", + "Se podrian usar algoritmos de detección de patrones para predecir si habrá un embotellamiento en cierta vialidad, en cierto dia de la semana y a cierta hora.\n", + "Lo anterior no se lograría si no se tiene una base de datos que vaya registrando todas estas variables a lo largo de un tiempo considerable.\n", + "  \n", + "\n", + "Para que no haya embotellamientos, el sistema podria redistribuir a los usuarios que lo usen, para que no vayan todos por una mismo camino.\n", + "\n", + "Un modelo tradicional debe encontrar si hay una correlación entre las variables (comparando de dos en dos o tres en tres para visualizarlo en un sistema de coordenadas bidimensional o tridimensional) y ver si se ajusta a una curva. En resúmen sería un proceso más tardado según la cantidad de datos con las que se trabajen.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Raw Cell Format", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/1. Bases cognitivas.ipynb b/1. Bases cognitivas.ipynb index acd17af..43f5e81 100644 --- a/1. Bases cognitivas.ipynb +++ b/1. Bases cognitivas.ipynb @@ -172,10 +172,65 @@ "source": [ "
\n", "\n", - "### Problema: xxxxx\n", - "#### Autor: xxxxx\n", - "\n", - "..." + "Algunos problemas a considerar son:\n", + " 1. Predicción de la carrera a elegir en la Unison dadas ciertas preguntas hechas a estudiantes de preparatoria.\n", + " 2. Edición de fotografias automática personalizado\n", + " 3. Predicción del clima en hermosillo\n", + " 4. Predicción de terremotos.\n", + " 5. Sistema de recomendacion de ruta para evitar el embotellamiento\n", + "\n", + "### Problema: Sistema de recomendación de ruta para evitar embotellamiento\n", + "#### Autor: Isaac Neri Gómez Sarmiento\n", + "\n", + "Un problema que se presenta en las grandes ciudades es el embotellamiento. Este problema se debe a una gran multitud de factores. \n", + "\n", + " ### Problema: Sistema de recomendación de ruta para evitar embotellamiento\n", + " #### Autor: Isaac Neri Gómez Sarmiento\n", + " \n", + "Un problema que se presenta en las grandes ciudades es el embotellamiento. Este problema se debe a una gran multitud de factores, las cuales se enlistan algunas aquí:\n", + " \n", + "1. Horas pico\n", + "\n", + "\n", + "\n", + "2. Dia de la semana:\n", + "Puede que se congestionen más las calles entre semana que los fines de semana.\n", + "\n", + "\n", + "3. Factores naturales:\n", + "\n", + "\n", + " \n", + "4. Accidentes o reparaciones\n", + "\n", + "\n", + "\n", + "5. Dias festivos, manifestaciones\n", + "\n", + "\n", + "Se podrian usar algoritmos de detección de patrones para predecir si habrá un embotellamiento en cierta vialidad, en cierto dia de la semana y a cierta hora.\n", + "Lo anterior no se lograría si no se tiene una base de datos que vaya registrando todas estas variables a lo largo de un tiempo considerable.\n", + "  \n", + "\n", + "Para que no haya embotellamientos, el sistema podria redistribuir a los usuarios que lo usen, para que no vayan todos por una mismo camino.\n", + "\n", + "Un modelo tradicional debe encontrar si hay una correlación entre las variables (comparando de dos en dos o tres en tres para visualizarlo en un sistema de coordenadas bidimensional o tridimensional) y ver si se ajusta a una curva. En resúmen sería un proceso más tardado según la cantidad de datos con las que se trabajen.\n" ] }, { @@ -205,9 +260,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.6.8" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/3. Casos de estudio.ipynb b/3. Casos de estudio.ipynb index 37cfc52..3487107 100644 --- a/3. Casos de estudio.ipynb +++ b/3. Casos de estudio.ipynb @@ -15,11 +15,16 @@ "source": [ "El objetivo de la ciencia de datos es desarrollar inteligencia a partir de datos en contextos específicos, por lo cual, es fundamental contar con una variedad de datos, de diferentes tipos y con diferente grado de complejidad, a fin de validar las diferentes técnicas de análisis. Existen diversos repositorios en Internet y bibliotecas en diferentes lenguajes que ofrecen una gran variedad de datos libres, destacándose sitios como el de [Kaggle](https://www.kaggle.com) y el Repositorio de aprendizaje automático y sistemas inteligentes de la Universidad de California en Irvine, [UCI](https://archive.ics.uci.edu/ml/datasets.html).\n", "\n", - "Para la discusión de temas en las lecciones siguientes se emplearán los conjutos de datos que se describen a continuación. En la presentación de cada caso de estudio, se realiza la primera fase del proceso CRISP-DM, esto es, la comprensión del negocio.\n", - "\n", - "\n", + "Para la discusión de temas en las lecciones siguientes se emplearán los conjutos de datos que se describen a continuación. En la presentación de cada caso de estudio, se realiza la primera fase del proceso CRISP-DM, esto es, la comprensión del negocio." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", "\n", - "### Conjunto de datos de flores Iris\n", + "## Conjunto de datos de flores Iris\n", "\n", "\n", "\n", @@ -37,7 +42,7 @@ "source": [ "
\n", "\n", - "### Conjunto de datos de diabetes de los indios Pima\n", + "## Conjunto de datos de diabetes de los indios Pima\n", "\n", "El conjunto de datos [*Pima Indian Diabetes Data Set*](https://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes) se ha convertido en un estándar para el análisis en el desempeño y precisión de métodos de diagnóstico de la diabetes, debido a que es la más amplia sistematización de observaciones de este problema. \n", "\n", @@ -56,7 +61,7 @@ "source": [ "
\n", "\n", - "### El atractor de Lorenz\n", + "## El atractor de Lorenz\n", "\n", "El sistema de Lorenz es uno de los ejemplos de sistema dinámico caótico mejor conocidos. Fue propuesto por Edward Lorenz del MIT en 1963 como un modelo simplificado de clima. \n", "\n", diff --git "a/4. Bases matem\303\241ticas.ipynb" "b/4. Bases matem\303\241ticas.ipynb" index 96d46ce..c57b038 100644 --- "a/4. Bases matem\303\241ticas.ipynb" +++ "b/4. Bases matem\303\241ticas.ipynb" @@ -93,9 +93,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from scipy.spatial import distance" @@ -104,9 +102,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -134,9 +130,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -173,9 +167,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -207,9 +199,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -238,9 +228,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -275,9 +263,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -309,9 +295,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -358,9 +342,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -404,9 +386,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -450,9 +430,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -518,11 +496,117 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { "collapsed": true }, + "source": [ + "DISTANCIA DE HAMMING " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "La distancia de Hamming es el número de bits en el que difieren 2 cadenas binarias (con el mismo número de elementos).\n", + "\n", + "Por ejemplo:\n", + "\n", + "a= 1010100 ; b= 1011011\n", + "\n", + "d(a,b)=4\n", + "\n", + "Para facilitar el conteo de numero de bits en el que difieren a y b, se utiliza la compuerta lógica XOR:\n", + "\n", + "a xor b=0001111\n", + "\n", + "Hay cuatro 1's y por lo tanto la distancia es d(a,b)=4\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " DISTANCIA DE PEARSON " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ésta se define como: \n", + "
$$d=1-r$$
\n", + "\n", + "$$d=1-\\dfrac{\\sum_{i=1}^{n}(x_i-\\bar{x})(y_i-\\bar{y})}{\\sqrt{\\sum_{i=1}^{n}(x_i-\\bar{x})^2\\sum_{i=1}^{n}(y_i-\\bar{y})^2}}$$\n", + "\n", + "\n", + "\n", + "Donde r es el coeficiente de Pearson, el cual mide el grado de linealidad entre dos variables \"x\" y \"y\". \n", + "\n", + "
\n", + "El coef. r puede tomar valores entre -1 y 1. Si r es igual a -1 o 1 quiere decir que las dos variables tienen una alta relación lineal (-1 para pendiente negativa y 1 para pendiente positiva). Si r es 0, no tienen una relación lineal.\n", + "
\n", + "\n", + "
\n", + "Entonces d toma valores entre 0 y 2. \n", + "
\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " DISTANCIA COSENO" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Esta está definida en términos del producto punto de dos vectores no nulos:\n", + "\n", + "
\n", + "$$D(a,b)=1-S(a,b)$$\n", + "$$D(a,b)=1-\\cos(\\theta)=1- \\dfrac{A\\cdot B}{\\lVert A\\rVert\\lVert B\\rVert}$$\n", + "
\n", + "\n", + "Donde S(a,b) es la similaridad entre los dos vectores, que se define como el coseno del ángulo entre ambos. Se utilizan usualmente valores del coseno entre 0 y 1.\n", + "\n", + "Si el $\\cos(\\theta)$ es 1, quiere decir que el angulo entre ambos vectores es 0. Podriamos decir que son \"paralelos\" y se interpretaría como que son muy similares y por lo tanto la distancia D entre ellos es 0.\n", + "\n", + "Si el $\\cos(\\theta)$ es 0, quiere decir que el angulo entre ambos vectores es $\\dfrac{\\pi}{2}$, y puede interpretarse que no son similares y la distancia D entre ellos es 1.\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " DISTANCIA DE GOWER " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Este tipo de distancia es apropiado cuando tenemos datos con valores como numericos o categóricos. \n", + "\n", + "Simplemente lo que se hace es escoger una metrica de distancia apropiada para el tipo de dato y luego normalizar para que queden los valores entre 0 y 1.\n", + "\n", + "Para el caso de los valores numéricos se puede usar distancia de Manhattan.\n", + "\n", + "Para el caso de los valores categóricos, k atributos se convierten en k valores binarios (0 o 1), donde a cada instancia se marca con 1 si contiene el atributo y 0 si no tiene el atributo. Se procede después a calcular la distancia con la distancia de Hamming u otra metrica para valores categóricos." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [] } @@ -544,9 +628,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.6.8" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/images/Dendro1.png b/images/Dendro1.png index e189f78..532dd02 100755 Binary files a/images/Dendro1.png and b/images/Dendro1.png differ diff --git a/images/header_05.png b/images/header_05.png new file mode 100644 index 0000000..de45fca Binary files /dev/null and b/images/header_05.png differ diff --git a/images/k-means0.png b/images/k-means0.png index 5708db9..08dd0e3 100755 Binary files a/images/k-means0.png and b/images/k-means0.png differ