{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Machine Learning con Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Esta notebook fue creada originalmente como un blog post por [Raúl E. López Briega](http://relopezbriega.com.ar/) en [Mi blog sobre Python](http://relopezbriega.github.io). El contenido esta bajo la licencia BSD.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Machine" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Una de las ramas de estudio que cada vez esta ganando más popularidad dentro de las [ciencias de la computación](https://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n) es el ***aprendizaje automático*** o ***[Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico)***. Muchos de los servicios que utilizamos en nuestro día a día como google, gmail, netflix, spotify o amazon se valen de las herramientas que les brinda el [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) para alcanzar un servicio cada vez más personalizado y lograr así ventajas competitivas sobre sus rivales. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Qué es Machine Learning?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pero, ¿qué es exactamente [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico)?. El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es el diseño y estudio de las herramientas informáticas que utilizan la experiencia pasada para tomar decisiones futuras; es el estudio de programas que pueden aprenden de los datos. El objetivo fundamental del [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es ***generalizar, o inducir una regla desconocida\n", "a partir de ejemplos donde esa regla es aplicada***. El ejemplo más típico donde podemos ver el uso del [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es en el filtrado de los correo basura o spam. Mediante la observación de miles de correos electrónicos que han sido marcados previamente como basura, los filtros de spam aprenden a clasificar los mensajes nuevos. El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) combina conceptos y técnicas de diferentes áreas del conocimiento, como las [matemáticas](https://es.wikipedia.org/wiki/Matem%C3%A1ticas), [estadísticas](https://es.wikipedia.org/wiki/Estad%C3%ADstica) y las [ciencias de la computación](https://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n); por tal motivo, hay muchas maneras de aprender la disciplina." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tipos de Machine Learning\n", "\n", "El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) tiene una amplia gama de aplicaciones, incluyendo motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica. Pero para poder abordar cada uno de estos temas es crucial en primer lugar distingir los distintos tipos de problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) con los que nos podemos encontrar.\n", "\n", "### Aprendizaje supervisado\n", "\n", "En los problemas de [aprendizaje supervisado](https://es.wikipedia.org/wiki/Aprendizaje_supervisado) se enseña o entrena al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) a partir de datos que ya vienen etiquetados con la respuesta correcta. Cuanto mayor es el conjunto de datos más el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) puede aprender sobre el tema. Una vez concluído el entrenamiento, se le brindan nuevos datos, ya sin las etiquetas de las respuestas correctas, y el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje utiliza la experiencia pasada que adquirió durante la etapa de entrenamiento para predecir un resultado. Esto es similar al método de aprendizaje que se utiliza en las escuelas, donde se nos enseñan problemas y las formas de resolverlos, para que luego podamos aplicar los mismos métodos en situaciones similares.\n", "\n", "### Aprendizaje no supervisado\n", "\n", "En los problemas de [aprendizaje no supervisado](https://es.wikipedia.org/wiki/Aprendizaje_no_supervisado) el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) es entrenado usando un conjunto de datos que no tiene ninguna etiqueta; en este caso, nunca se le dice al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) lo que representan los datos. La idea es que el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) pueda encontrar por si solo patrones que ayuden a entender el conjunto de datos. El [aprendizaje no supervisado](https://es.wikipedia.org/wiki/Aprendizaje_no_supervisado) es similar al método que utilizamos para aprender a hablar cuando somos bebes, en un principio escuchamos hablar a nuestros padres y no entendemos nada; pero a medida que vamos escuchando miles de conversaciones, nuestro cerebro comenzará a formar un modelo sobre cómo funciona el lenguaje y comenzaremos a reconocer patrones y a esperar ciertos sonidos. \n", "\n", "### Aprendizaje por refuerzo\n", "\n", "En los problemas de aprendizaje por refuerzo, el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) aprende observando el mundo que le rodea. Su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones. Por lo tanto, el sistema aprende a base de ensayo-error. Un buen ejemplo de este tipo de aprendizaje lo podemos encontrar en los juegos, donde vamos probando nuevas estrategias y vamos seleccionando y perfeccionando aquellas que nos ayudan a ganar el juego. A medida que vamos adquiriendo más practica, el efecto acumulativo del refuerzo a nuestras acciones victoriosas terminará creando una estrategia ganadora." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sobreentrenamiento\n", "\n", "Como mencionamos cuando definimos al [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), la idea fundamental es encontrar patrones que podamos generalizar para luego poder aplicar esta generalización sobre los casos que todavía no hemos observado y realizar predicciones. Pero también puede ocurrir que durante el entrenamiento solo descubramos casualidades en los datos que se parecen a patrones interesantes, pero que no generalicen. Esto es lo que se conoce con el nombre de *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste) o sobreajuste*.\n", "\n", "El *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)* es la tendencia que tienen la mayoría de los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) a ajustarse a unas características muy específicas de los datos de entrenamiento que no tienen relación causal con la *función objetivo* que estamos buscando para generalizar. El ejemplo más extremo de un modelo *sobreentrenado* es un modelo que solo memoriza las respuestas correctas; este modelo al ser utilizado con datos que nunca antes ha visto va a tener un rendimiento azaroso, ya que nunca logró generalizar un patrón para predecir.\n", "\n", "### Como evitar el sobreentrenamiento\n", "\n", "Como mencionamos anteriormente, todos los modelos de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) tienen tendencia al *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)*; es por esto que debemos aprender a convivir con el mismo y tratar de tomar medidas preventivas para reducirlo lo más posible. Las dos principales estrategias para lidiar son el *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)* son: la ***retención de datos*** y la ***[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)***.\n", "\n", "En el primer caso, la idea es dividir nuestro [conjunto de datos](https://es.wikipedia.org/wiki/Conjunto_de_datos), en uno o varios conjuntos de entrenamiento y otro/s conjuntos de evaluación. Es decir, que no le vamos a pasar todos nuestros datos al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) durante el entrenamiento, sino que vamos a *retener* una parte de los datos de entrenamiento para realizar una evaluación de la efectividad del modelo. Con esto lo que buscamos es evitar que los mismos datos que usamos para entrenar sean los mismos que utilizamos para evaluar. De esta forma vamos a poder analizar con más precisión como el modelo se va comportando a medida que más lo vamos entrenando y poder detectar el punto crítico en el que el modelo deja de generalizar y comienza a *sobreajustarse* a los datos de entrenamiento.\n", "\n", "La *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* es un procedimiento más sofisticado que el anterior. En lugar de solo obtener una simple estimación de la efectividad de la *generalización*; la idea es realizar un análisis estadístico para obtener otras medidas del rendimiento estimado, como la media y la varianza, y así poder entender cómo se espera que el rendimiento varíe a través de los distintos conjuntos de datos. Esta variación es fundamental para la evaluación de la confianza en la estimación del rendimiento.\n", "La *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* también hace un mejor uso de un conjunto de datos limitado; ya que a diferencia de la simple división de los datos en uno el entrenamiento y otro de evaluación; la *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* calcula sus estimaciones sobre todo el [conjunto de datos](https://es.wikipedia.org/wiki/Conjunto_de_datos) mediante la realización de múltiples divisiones e intercambios sistemáticos entre datos de entrenamiento y datos de evaluación.\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Pasos para construir un modelo de machine learning\n", "\n", "Construir un modelo de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), no se reduce solo a utilizar un [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje o utilizar una librería de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico); sino que es todo un proceso que suele involucrar los siguientes pasos:\n", "\n", "1. **Recolectar los datos**. Podemos recolectar los datos desde muchas fuentes, podemos por ejemplo extraer los datos de un sitio web o obtener los datos utilizando una [API](https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones) o desde una base de datos. Podemos también utilizar otros dispositivos que recolectan los datos por nosotros; o utilizar datos que son de dominio público. El número de opciones que tenemos para recolectar datos no tiene fin!. Este paso parece obvio, pero es uno de los que más complicaciones trae y más tiempo consume. \n", "\n", "2. **Preprocesar los datos**. Una vez que tenemos los datos, tenemos que asegurarnos que tiene el formato correcto para nutrir nuestro [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje. Es prácticamente inevitable tener que realizar varias tareas de preprocesamiento antes de poder utilizar los datos. Igualmente este punto suele ser mucho más sencillo que el paso anterior.\n", "\n", "3. **Explorar los datos**. Una vez que ya tenemos los datos y están con el formato correcto, podemos realizar un pre análisis para corregir los casos de valores faltantes o intentar encontrar a simple vista algún patrón en los mismos que nos facilite la construcción del modelo. En esta etapa suelen ser de mucha utilidad las medidas estadísticas y los gráficos en 2 y 3 dimensiones para tener una idea visual de como se comportan nuestros datos. En este punto podemos detectar [valores atípicos](https://es.wikipedia.org/wiki/Valor_at%C3%ADpico) que debamos descartar; o encontrar las características que más influencia tienen para realizar una predicción.\n", "\n", "4. **Entrenar el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo)**. Aquí es donde comenzamos a utilizar las técnicas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) realmente. En esta etapa nutrimos al o los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje con los datos que venimos procesando en las etapas anteriores. La idea es que los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) puedan extraer información útil de los datos que le pasamos para luego poder hacer predicciones. \n", "\n", "5. **Evaluar el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo)**. En esta etapa ponemos a prueba la información o conocimiento que el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) obtuvo del entrenamiento del paso anterior. Evaluamos que tan preciso es el algoritmo en sus predicciones y si no estamos muy conforme con su rendimiento, podemos volver a la etapa anterior y continuar entrenando el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) cambiando algunos parámetros hasta lograr un rendimiento aceptable. \n", "\n", "6. **Utilizar el modelo**. En esta ultima etapa, ya ponemos a nuestro modelo a enfrentarse al problema real. Aquí también podemos medir su rendimiento, lo que tal vez nos obligue a revisar todos los pasos anteriores. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Librerías de Python para machine learning\n", "\n", "Como siempre me gusta comentar, una de las grandes ventajas que ofrece [Python](http://python.org/) sobre otros lenguajes de programación; es lo grande y prolifera que es la comunidad de desarrolladores que lo rodean; comunidad que ha contribuido con una gran variedad de librerías de primer nivel que extienden la funcionalidades del lenguaje. Para el caso de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), las principales librerías que podemos utilizar son: \n", "\n", "### Scikit-Learn\n", "\n", "[Scikit-learn](http://scikit-learn.org/stable/) es la principal librería que existe para trabajar con [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), incluye la implementación de un gran número de [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje. La podemos utilizar para clasificaciones, extraccion de características, regresiones, agrupaciones, reducción de dimensiones, selección de modelos, o preprocesamiento. Posee una [API](https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones) que es consistente en todos los modelos y se integra muy bien con el resto de los paquetes científicos que ofrece [Python](http://python.org/). Esta librería también nos facilita las tareas de evaluación, diagnostico y [validaciones cruzadas](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada) ya que nos proporciona varios métodos de fábrica para poder realizar estas tareas en forma muy simple. \n", "\n", "\n", "### Statsmodels\n", "\n", "[Statsmodels](http://statsmodels.sourceforge.net/) es otra gran librería que hace foco en modelos estadísticos y se utiliza principalmente para análisis predictivos y exploratorios. Al igual que [Scikit-learn](http://scikit-learn.org/stable/), también se integra muy bien con el resto de los paquetes cientificos de [Python](http://python.org/). Si deseamos ajustar modelos lineales, hacer una análisis estadístico, o tal vez un poco de modelado predictivo, entonces [Statsmodels](http://statsmodels.sourceforge.net/) es la librería ideal. Las pruebas estadísticas que ofrece son bastante amplias y abarcan tareas de validación para la mayoría de los casos. \n", "\n", "### PyMC\n", "\n", "[pyMC](http://pymc-devs.github.io/pymc/index.html) es un módulo de [Python](http://python.org/) que implementa modelos estadísticos bayesianos, incluyendo la [cadena de Markov Monte Carlo(MCMC)](https://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo). [pyMC](http://pymc-devs.github.io/pymc/index.html) ofrece funcionalidades para hacer el análisis bayesiano lo mas simple posible. Incluye los modelos [bayesianos](https://es.wikipedia.org/wiki/Inferencia_bayesiana), distribuciones estadísticas y herramientas de diagnostico para la covarianza de los modelos. Si queremos realizar un análisis [bayesiano](https://es.wikipedia.org/wiki/Inferencia_bayesiana) esta es sin duda la librería a utilizar.\n", "\n", "### NTLK\n", "\n", "[NLTK](http://www.nltk.org/) es la librería líder para el procesamiento del lenguaje natural o [NLP](https://es.wikipedia.org/wiki/Procesamiento_de_lenguajes_naturales) por sus siglas en inglés. Proporciona interfaces fáciles de usar a más de 50 cuerpos y recursos léxicos, como [WordNet](https://wordnet.princeton.edu/), junto con un conjunto de bibliotecas de procesamiento de texto para la clasificación, tokenización, el etiquetado, el análisis y el razonamiento semántico. \n", "\n", "Obviamente, aquí solo estoy listando unas pocas de las muchas librerías que existen en [Python](http://python.org/) para trabajar con problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), los invito a realizar su propia investigación sobre el tema." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Algoritmos más utilizados\n", "\n", "Los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) que más se suelen utilizar en los problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) son los siguientes:\n", "\n", "1. [Regresión Lineal](https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal)\n", "2. [Regresión Logística](https://es.wikipedia.org/wiki/Regresi%C3%B3n_log%C3%ADstica)\n", "3. [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n)\n", "4. [Random Forest](https://es.wikipedia.org/wiki/Random_forest)\n", "5. [SVM](https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte) o Máquinas de vectores de soporte.\n", "6. [KNN](https://es.wikipedia.org/wiki/K-vecinos_m%C3%A1s_cercanos) o K vecinos más cercanos.\n", "7. [K-means](https://es.wikipedia.org/wiki/K-means)\n", "\n", "Todos ellos se pueden aplicar a casi cualquier problema de datos y obviamente estan todos implementados por la excelente librería de [Python](http://python.org/), [Scikit-learn](http://scikit-learn.org/stable/). Veamos algunos ejemplos de ellos." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Regresión Lineal\n", "\n", "Se utiliza para estimar los valores reales (costo de las viviendas, el número de llamadas, ventas totales, etc.) basados en variables continuas. La idea es tratar de establecer la relación entre las variables independientes y dependientes por medio de ajustar una mejor línea recta con respecto a los puntos. Esta línea de mejor ajuste se conoce como línea de regresión y esta representada por la siguiente ecuación lineal:\n", "\n", "$$Y = \\beta_{0} + \\beta_{1}X_{1} + \\beta_{2}X_{2} + ... + \\beta_{n}X_{n}$$\n", "\n", "Veamos un pequeño ejemplo de como se implementa en [Python](http://python.org/). En este ejemplo voy a utilizar el dataset Boston que ya viene junto con [Scikit-learn](http://scikit-learn.org/stable/) y es ideal para practicar con [Regresiones Lineales](https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal); el mismo contiene precios de casas de varias áreas de la ciudad de Boston. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# graficos embebidos\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATTARGET
00.00632182.3100.5386.57565.24.0900129615.3396.904.9824.0
10.0273107.0700.4696.42178.94.9671224217.8396.909.1421.6
20.0272907.0700.4697.18561.14.9671224217.8392.834.0334.7
30.0323702.1800.4586.99845.86.0622322218.7394.632.9433.4
40.0690502.1800.4587.14754.26.0622322218.7396.905.3336.2
\n", "
" ], "text/plain": [ " CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO \\\n", "0 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 \n", "1 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 \n", "2 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 \n", "3 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 \n", "4 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 \n", "\n", " B LSTAT TARGET \n", "0 396.90 4.98 24.0 \n", "1 396.90 9.14 21.6 \n", "2 392.83 4.03 34.7 \n", "3 394.63 2.94 33.4 \n", "4 396.90 5.33 36.2 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# importando pandas, numpy y matplotlib\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# importando los datasets de sklearn\n", "from sklearn import datasets\n", "\n", "boston = datasets.load_boston()\n", "boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)\n", "boston_df['TARGET'] = boston.target\n", "boston_df.head() # estructura de nuestro dataset." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# importando el modelo de regresión lineal\n", "from sklearn.linear_model import LinearRegression\n", "\n", "rl = LinearRegression() # Creando el modelo.\n", "rl.fit(boston.data, boston.target) # ajustando el modelo" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[('CRIM', -0.10717055656035465),\n", " ('ZN', 0.046395219529796909),\n", " ('INDUS', 0.020860239532179539),\n", " ('CHAS', 2.6885613993179454),\n", " ('NOX', -17.795758660309225),\n", " ('RM', 3.804752460258007),\n", " ('AGE', 0.0007510617033251836),\n", " ('DIS', -1.4757587965198111),\n", " ('RAD', 0.30565503833909574),\n", " ('TAX', -0.012329346305270286),\n", " ('PTRATIO', -0.95346355469055721),\n", " ('B', 0.0093925127221896297),\n", " ('LSTAT', -0.52546663290078854)]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Lista de coeficientes B para cada X\n", "list(zip(boston.feature_names, rl.coef_))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Pred
030.008213
125.029861
230.570232
328.608141
427.942882
\n", "
" ], "text/plain": [ " Pred\n", "0 30.008213\n", "1 25.029861\n", "2 30.570232\n", "3 28.608141\n", "4 27.942882" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# haciendo las predicciones\n", "predicciones = rl.predict(boston.data)\n", "predicciones_df = pd.DataFrame(predicciones, columns=['Pred'])\n", "predicciones_df.head() # predicciones de las primeras 5 lineas" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-2.2467754490437951e-15" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculando el desvio\n", "np.mean(boston.target - predicciones)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como podemos ver, el desvío del modelo es pequeño, por lo que sus resultados para este ejemplo son bastante confiables." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Regresión Logística\n", "\n", "Los modelos lineales, también pueden ser utilizados para clasificaciones; es decir, que primero ajustamos el modelo lineal a la probabilidad de que una cierta clase o categoría ocurra y, a luego, utilizamos una función para crear un umbral en el cual especificamos el resultado de una de estas clases o categorías. La función que utiliza este modelo, no es ni más ni menos que la función logística.\n", "\n", "$$f(x) = \\frac{1}{1 + e^{-1}}$$\n", "\n", "Veamos, aquí también un pequeño ejemplo en [Python](http://python.org/)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Creando un dataset de ejemplo \n", "from sklearn.datasets import make_classification\n", "X, y = make_classification(n_samples=1000, n_features=4)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Importando el modelo\n", "from sklearn.linear_model import LogisticRegression\n", "\n", "rlog = LogisticRegression() # Creando el modelo\n", "\n", "# Dividiendo el dataset en entrenamiento y evaluacion\n", "X_entrenamiento = X[:-200]\n", "X_evaluacion = X[-200:]\n", "y_entrenamiento = y[:-200]\n", "y_evaluacion = y[-200:]\n", "\n", "rlog.fit(X_entrenamiento, y_entrenamiento) #ajustando el modelo\n", "\n", "# Realizando las predicciones\n", "y_predic_entrenamiento = rlog.predict(X_entrenamiento) \n", "y_predic_evaluacion = rlog.predict(X_evaluacion)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sobre datos de entrenamiento: 0.95\n", "sobre datos de evaluación: 0.94\n" ] } ], "source": [ "# Verificando la exactitud del modelo\n", "entrenamiento = (y_predic_entrenamiento == y_entrenamiento).sum().astype(float) / y_entrenamiento.shape[0]\n", "print(\"sobre datos de entrenamiento: {0:.2f}\".format(entrenamiento))\n", "evaluacion = (y_predic_evaluacion == y_evaluacion).sum().astype(float) / y_evaluacion.shape[0]\n", "print(\"sobre datos de evaluación: {0:.2f}\".format(evaluacion))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como podemos ver en este ejemplo también nuestro modelo tiene bastante precisión clasificando las categorías de nuestro dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arboles de decisión\n", "\n", "Los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) son diagramas con construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema.\n", "Los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) están compuestos por nodos interiores, nodos terminales y ramas que emanan de los nodos interiores. Cada nodo interior en el árbol contiene una prueba de un atributo, y cada rama representa un valor distinto del atributo. Siguiendo las ramas desde el nodo raíz hacia abajo, cada ruta finalmente termina en un nodo terminal creando una segmentación de los datos. Veamos aquí también un pequeño ejemplo en [Python](http://python.org/)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Creando un dataset de ejemplo\n", "X, y = datasets.make_classification(1000, 20, n_informative=3)\n", "\n", "# Importando el arbol de decisión\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn import tree\n", "\n", "ad = DecisionTreeClassifier(criterion='entropy', max_depth=5) # Creando el modelo\n", "ad.fit(X, y) # Ajustando el modelo\n", "\n", "#generando archivo para graficar el arbol\n", "with open(\"mi_arbol.dot\", 'w') as archivo_dot:\n", " tree.export_graphviz(ad, out_file = archivo_dot)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# utilizando el lenguaje dot para graficar el arbol.\n", "!dot -Tjpeg mi_arbol.dot -o arbol_decision.jpeg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Luego de usar el lenguaje [dot](http://www.graphviz.org/content/dot-language) para convertir nuestro arbol a formato jpeg, ya podemos ver la imagen del mismo.\n", "\n", "\"arbol" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "precisión del modelo: 0.92\n" ] } ], "source": [ "# verificando la precisión\n", "print(\"precisión del modelo: {0: .2f}\".format((y == ad.predict(X)).mean()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En este ejemplo, nuestro árbol tiene una precisión del 89%. Tener en cuenta que los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) tienen tendencia a *sobreentrenar* los datos." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Random Forest\n", "\n", "En lugar de utilizar solo un arbol para decidir, ¿por qué no utilizar todo un bosque?!!. Esta es la idea central detrás del [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de [Random Forest](https://es.wikipedia.org/wiki/Random_forest). Tarbaja construyendo una gran cantidad de [arboles de decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) muy poco profundos, y luego toma la clase que\n", "cada árbol eligió. Esta idea es muy poderosa en [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico). Si tenemos en cuenta que un sencillo clasificador entrenado podría tener sólo el 60 por ciento de precisión, podemos entrenar un montón de clasificadores que sean por lo general acertados y luego podemos utilizar la sabiduría de todos los aprendices juntos.\n", "Con [Python](http://python.org/) los podemos utilizar de la siguiente manera:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "precisión del modelo: 1.00\n" ] } ], "source": [ "# Creando un dataset de ejemplo\n", "X, y = datasets.make_classification(1000)\n", "\n", "# Importando el random forest\n", "from sklearn.ensemble import RandomForestClassifier\n", "\n", "rf = RandomForestClassifier() # Creando el modelo\n", "rf.fit(X, y) # Ajustando el modelo\n", "\n", "# verificando la precisión\n", "print(\"precisión del modelo: {0: .2f}\".format((y == rf.predict(X)).mean()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SVM o Máquinas de vectores de soporte\n", "\n", "La idea detrás de [SVM](https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte) es encontrar un plano que separe los grupos dentro de los datos de la mejor forma posible. Aquí, la separación significa que la elección\n", "del plano maximiza el margen entre los puntos más cercanos en el plano; éstos puntos se denominan vectores de soporte. Pasemos al ejemplo." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# importanto SVM\n", "from sklearn import svm\n", "\n", "# importando el dataset iris\n", "iris = datasets.load_iris()\n", "X = iris.data[:, :2] # solo tomamos las primeras 2 características\n", "y = iris.target\n", "\n", "h = .02 # tamaño de la malla del grafico\n", "\n", "# Creando el SVM con sus diferentes métodos\n", "C = 1.0 # parametro de regulacion SVM \n", "svc = svm.SVC(kernel='linear', C=C).fit(X, y)\n", "rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(X, y)\n", "poly_svc = svm.SVC(kernel='poly', degree=3, C=C).fit(X, y)\n", "lin_svc = svm.LinearSVC(C=C).fit(X, y)\n", "\n", "# crear el area para graficar\n", "x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", "y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n", " np.arange(y_min, y_max, h))\n", "\n", "# titulos de los graficos\n", "titles = ['SVC con el motor lineal',\n", " 'LinearSVC',\n", " 'SVC con el motor RBF',\n", " 'SVC con el motor polinomial']\n", "\n", "\n", "for i, clf in enumerate((svc, lin_svc, rbf_svc, poly_svc)):\n", " # Realizando el gráfico, se le asigna un color a cada punto\n", " plt.subplot(2, 2, i + 1)\n", " plt.subplots_adjust(wspace=0.4, hspace=0.4)\n", "\n", " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", "\n", " Z = Z.reshape(xx.shape)\n", " plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)\n", "\n", " # Graficando tambien los puntos de datos\n", " plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)\n", " plt.xlabel('largo del petalo')\n", " plt.ylabel('ancho del petalo')\n", " plt.xlim(xx.min(), xx.max())\n", " plt.ylim(yy.min(), yy.max())\n", " plt.xticks(())\n", " plt.yticks(())\n", " plt.title(titles[i])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### KNN o k vecinos más cercanos\n", "\n", "Este es un método de clasificación no paramétrico, que estima el valor de la probabilidad a posteriori de que un elemento $x$ pertenezca a una clase en particular a partir de la información proporcionada por el conjunto de prototipos.\n", "La regresión [KNN](https://es.wikipedia.org/wiki/K-vecinos_m%C3%A1s_cercanos) se calcula simplemente tomando el promedio del punto k más cercano al punto que se está probando. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['sepal length (cm)',\n", " 'sepal width (cm)',\n", " 'petal length (cm)',\n", " 'petal width (cm)']" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Creando el dataset iris\n", "iris = datasets.load_iris()\n", "X = iris.data\n", "y = iris.target\n", "iris.feature_names" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "El error medio del modelo es: 0.02\n" ] } ], "source": [ "# importando KNN \n", "from sklearn.neighbors import KNeighborsRegressor\n", "\n", "knnr = KNeighborsRegressor(n_neighbors=10) # Creando el modelo con 10 vecinos\n", "knnr.fit(X, y) # Ajustando el modelo\n", "\n", "# Verificando el error medio del modelo\n", "print(\"El error medio del modelo es: {:.2f}\".format(np.power(y - knnr.predict(X),\n", "2).mean()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### K-means\n", "\n", "[K-means](https://es.wikipedia.org/wiki/K-means) es probablemente uno de los algoritmos de agrupamiento más conocidos y, en un sentido más amplio, una de las técnicas de aprendizaje no supervisado más conocidas.\n", "[K-means](https://es.wikipedia.org/wiki/K-means) es en realidad un [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) muy simple que funciona para reducir al mínimo la suma de las distancias cuadradas desde la media dentro del agrupamiento. Para hacer esto establece primero un número previamente especificado de conglomerados, K, y luego va asignando cada observación a la agrupación más cercana de acuerdo a su media. Veamos el ejemplo" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n9m7QCesAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Creando el dataset\n", "grupos, pos_correcta = datasets.make_blobs(1000, centers=3,\n", "cluster_std=1.75)\n", "\n", "# Graficando los grupos de datos\n", "f, ax = plt.subplots(figsize=(7, 5))\n", "colores = ['r', 'g', 'b']\n", "\n", "for i in range(3):\n", " p = grupos[pos_correcta == i]\n", " ax.scatter(p[:,0], p[:,1], c=colores[i],\n", " label=\"Grupo {}\".format(i))\n", "\n", "ax.set_title(\"Agrupamiento perfecto\")\n", "ax.legend()\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "KMeans(copy_x=True, init='k-means++', max_iter=300, n_clusters=3, n_init=10,\n", " n_jobs=1, precompute_distances='auto', random_state=None, tol=0.0001,\n", " verbose=0)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# importando KMeans\n", "from sklearn.cluster import KMeans\n", "\n", "# Creando el modelo\n", "kmeans = KMeans(n_clusters=3)\n", "kmeans.fit(grupos) # Ajustando el modelo" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 9.11516192, 9.17538524],\n", " [-4.4747179 , 5.36904317],\n", " [ 6.23263898, 3.44671141]])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# verificando los centros de los grupos\n", "kmeans.cluster_centers_" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nwZvbJhd7pE9JkHvCPb8d2FVqt0xRijLdYPUycEXg+RVI7yqEMeYLgaf7rLX7pnlcRakDLoR0O07E\ncHYrpO+ADUvhKiRQ7Qz0lvJFD6UN172+DXZeG0ke3qbzUgqAMaYH6Jny+6cpsJiDCCyuA14BfoIK\nLBSlJCrhUhHeX3xQqNT6qbRB/k7ufqHMPsqNDdO2WzLG3IAvXX/YWvufp9MgRZktlGpjdKH3VUkq\nHZCV+uGC2y1Za/uB/unuR1FmG5VN/FU3CKW+UQcLRakh9S/d1sRfpTKo67qi1AFJHQYETfxV4rng\nc1aTHkCDlaJcEDQoKDMJDVaKoihK4ik3NqQm30RRFEVRaosGK0WZARhj1hqTGZDFrK11exTlQqPD\ngIqScJIsnlCUqaJl7RWl7tAcKkXRYUBFURQl8WjPSlEST/mJtSpjV+oNnbNSlBlAOcFH57iUmYDm\nWSnKLEfNY5WZgOZZKYqiKHWHzlkpSt2h5rFK/aHDgIpSh6jAQkk6OmelKIqiJB6ds1IURVHqDg1W\niqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIk\nHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUo\niqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLR\nYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIknikHK2PM\nF4wxLxljDrplXSUbpiiKoige0+lZWWC7tfZqt+ypVKNmEsaYnlq3oZrU8/nV87mBnt9Mp97Pr1ym\nOwxoKtKKmU1PrRtQZXpq3YAq0lPrBlSZnlo3oMr01LoBVaan1g1IEtMNVv/RGPMzY8zDxpj2irRI\nURRFUSIUDVbGmKeMMYdjlg8DXwWuBFYCvwa2XYD2KoqiKLMQY62d/k6MeRvwHWttV8xr0z+AoiiK\nUndYa0ueSpoz1YMYYy611v7aPb0ZODzdxiiKoihKHFMOVsCXjDErEVXgC8CfVaZJiqIoihKmIsOA\niqIoilJNquJgYYz5iDHmF8aYCWNMd2D924wx5wOJxA9V4/jVptD5udf+3Bhz1BhzxBhzfa3aWCnq\nNfnbGLPOXaOjxpjP1ro9lcYY8ytjzNPumv2k1u2ZLsaYR4wxJ4wxhwPrOp0I7DljzMBMVSQXOLe6\n+d4ZY64wxvyLu2f+3BjT69aXdf2qZbd0GJnH+t8xrx0LJBLfWaXjV5vY8zPGLAc+CiwH1gEPGWNm\nuqVV3SV/G2MagK8g12g58DFjzLLatqriWKDHXbP31boxFWAXcr2C3AM8Za19J/A993wmEndu9fS9\nGwM+ba1dAawC7nLft7KuX1VupNbaI9ba56qx7yRQ5PxuAv7RWjtmrf0VcAyohxtFvYlk3of8aPqV\ntXYM+AZy7eqNurlu1tofAG9EVn8YeNQ9fhT4owvaqApR4NygTq6ftfZVa+0h9/gM8AxwOWVev1r8\n6r/SdWv3GWOurcHxq8llwEuB5y8hF2WmU2/J35cDLwae18t1CmKB7xpj9htj1te6MVViobX2hHt8\nAlhYy8ZUgXr73nlpTlcDP6bM6zcdI9tCCcMfKvK2V4ArrLVXAxuB/2aMmT/VNlSTKZ5fHIlXsMzC\n5O/EX5MKsNp9z25Ahl1+r9YNqiZWlGL1dF3r7ntnjJkHfAv4lLX2dPC1Uq7flKXr1to1U3jPKDDq\nHh8wxvwSeAdwYKrtqBZTOT/gZeCKwPNFbl2iKfVcjTF/B3ynys25EESv0xWEe8QzHi8H0lr7mjFm\nNzL0+YPatqrinDDGXGKtfdUYcynwm1o3qFJYa3PnUg/fO2NMIxKo/sFa+09udVnX70IMA+bGXY0x\nC9zkNsaYJUigev4CtKGaBMeVnwD+xBgz1xhzJXJ+M1qJ5f6JPAomf88w9gPvcOrUuYgo5okat6li\nGGNavBELY0wrcD31cd2iPAHc7h7fDvxTkW1nFPX0vTPGGOBh4F+ttQ8EXirv+llrK74gH+6LwHng\nVaDfrb8V+DlwEBgEbqzG8au9FDo/91ofIqw4AqytdVsrcK5fA54Gfub+mRbWuk0VOq8bgGfdtfrz\nWrenwud2JXDILT+vh/MD/hGZRhh13707gE7gu8BzwADQXut2VujcPl5P3zvgWiDr/h8PumVduddP\nk4IVRVGUxDPTc4AURVGUWYAGK0VRFCXxaLBSFEVREo8GK0VRFCXxaLBSFEVREo8GK0VRFCXxaLBS\nFEVREo8GK0VRFCXx/H9z9yAbRnT/GAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Graficando segun modelo\n", "f, ax = plt.subplots(figsize=(7, 5))\n", "colores = ['r', 'g', 'b']\n", "\n", "for i in range(3):\n", " p = grupos[pos_correcta == i]\n", " ax.scatter(p[:,0], p[:,1], c=colores[i],\n", " label=\"Grupo {}\".format(i))\n", "\n", "ax.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], \n", " s=100, color='black', label='Centros')\n", "\n", "ax.set_title(\"Agrupamiento s/modelo\")\n", "ax.legend()\n", "\n", "plt.show() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Con esto doy por concluída esta introducción al [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) con [Python](http://python.org/), espero les sea útil.\n", "\n", "Saludos!\n", "\n", "*Este post fue escrito utilizando IPython notebook. Pueden descargar este [notebook](https://github.com/relopezbriega/relopezbriega.github.io/blob/master/downloads/MachineLearningPython.ipynb) o ver su version estática en [nbviewer](http://nbviewer.ipython.org/github/relopezbriega/relopezbriega.github.io/blob/master/downloads/MachineLearningPython.ipynb).*" ] } ], "metadata": { "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.4.3+" } }, "nbformat": 4, "nbformat_minor": 0 }