Aprendeml Sample
Aprendeml Sample
Éste es un libro de Leanpub. Leanpub anima a los autores y publicadoras con el proceso de
publicación. Lean Publishing es el acto de publicar un libro en progreso usando herramientas
sencillas y muchas iteraciones para obtener retroalimentación del lector hasta conseguir el libro
adecuado.
Nota Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Version 1.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Repositorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Tu opinión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Un Ejercicio Práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Predecir cuántas veces será compartido un artículo de Machine Learning. . . . . . . . . . . 16
Regresión Lineal con Python y SKLearn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Visualicemos la Recta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Predicción en regresión lineal simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Regresión Lineal Múltiple en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Visualizar un plano en 3 Dimensiones en Python . . . . . . . . . . . . . . . . . . . . . . . . . 23
Predicción con el modelo de Mútiples Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Regresión Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Ejercicio de Regresión Logística en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Regresión Logística con SKLearn: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Visualización de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Creamos el Modelo de Regresión Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Validación de nuestro modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Reporte de Resultados del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Clasificación de nuevos valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Arbol de Decisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
¿Qué es un árbol de decisión? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
¿Cómo funciona un árbol de decisión? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Arbol de Decisión con Scikit-Learn paso a paso . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Predicción del “Billboard 100”: ¿Qué artista llegará al número uno del ranking? . . . . . . . 30
Obtención de los datos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Análisis Exploratorio Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Balanceo de Datos: Pocos artistas llegan al número uno . . . . . . . . . . . . . . . . . . . . . 30
Preparamos los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Mapeo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Buscamos la profundidad para el árbol de decisión . . . . . . . . . . . . . . . . . . . . . . . . 31
Visualización del árbol de decisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Predicción de Canciones al Billboard 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Datos desbalanceados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Problemas de clasificación con Clases desequilibradas . . . . . . . . . . . . . . . . . . . . . . 34
¿Cómo nos afectan los datos desbalanceados? . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Métricas y Confusion Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Vamos al Ejercicio con Python! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Análisis exploratorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Estrategias para el manejo de Datos Desbalanceados: . . . . . . . . . . . . . . . . . . . . . . . 35
Probando el Modelo sin estrategias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Estrategia: Penalización para compensar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Estrategia: Subsampling en la clase mayoritaria . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Estrategia: Oversampling de la clase minoritaria . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Estrategia: Combinamos resampling con Smote-Tomek . . . . . . . . . . . . . . . . . . . . . . 35
Estrategia: Ensamble de Modelos con Balanceo . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Resultados de las Estrategias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Cómo funciona K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Casos de Uso de K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Datos de Entrada para K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ÍNDICE GENERAL
El Algoritmo K-means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Elegir el valor de K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Ejemplo K-Means con Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Agrupar usuarios Twitter de acuerdo a su personalidad con K-means . . . . . . . . . . . . . 43
Visualización de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Definimos la entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Obtener el valor K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Ejecutamos K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Clasificar nuevas muestras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
K-Nearest-Neighbor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
¿Qué es el algoritmo k-Nearest Neighbor ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
¿Dónde se aplica k-Nearest Neighbor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Pros y contras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
¿Cómo funciona kNN? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Un ejemplo k-Nearest Neighbor en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
El Ejercicio: App Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Un poco de Visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Preparamos las entradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Usemos k-Nearest Neighbor con Scikit Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Precisión del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Y ahora, la gráfica que queríamos ver! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Elegir el mejor valor de k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Clasificar ó Predecir nuevas muestras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Sistemas de Recomendación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
¿Qué son los Sistemas ó Motores de Recomendación? . . . . . . . . . . . . . . . . . . . . . . . 50
Tipos de motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
¿Cómo funciona Collaborative Filtering? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Predecir gustos (User-based) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ÍNDICE GENERAL
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Version 1.9
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Extras
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Repositorio
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Tu opinión
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
¿Qué es el Machine Learning?
Veamos algunas definiciones existentes sobre Machine Learning para intentar dar comprensión a
esta revolucionaria materia.
A computer program is said to learn from experience E with respect to some class of tasks
T and performance measure P, if its performance at tasks in T, as measured by P, improves
with experience E.
La experiencia E hace referencia a grandes volúmenes de datos recolectados (muchas veces el Big
Data) para la toma de decisiones T y la forma de medir su desempeño P para comprobar que mejoran
con la adquisición de más experiencia.
Diagrama de Venn
Drew Conway creó un simpático diagrama de Venn en el que inerrelaciona diversos campos. Aquí
copio su versión al Español:
¿Qué es el Machine Learning? 3
Diagrama de Venn
En esta aproximación al ML, podemos ver que es una intersección entre conocimientos de Matemá-
ticas y Estadística con Habilidades de Hackeo del programador.
Los algoritmos de ML intentan utilizar menos recursos para «entrenar» grandes volúmenes de
datos e ir aprendiendo por sí mismos. Podemos dividir el ML en 2 grandes categorías: Aprendizaje
Supervisado o Aprendizaje No Supervisado.
Entre los Algoritmos más utilizados en Inteligencia Artificial encontramos:
• Arboles de Decisión
• Regresión Lineal
• Regresión Logística
• k Nearest Neighbor
• PCA / Principal Component Analysis
• SVM
• Gaussian Naive Bayes
• K-Means
• Redes Neuronales Artificiales
• Aprendizaje Profundo ó Deep Learning
Resumen
El Machine Learning es una nueva herramienta clave que posibilitará el desarrollo de un futuro
mejor para la humanidad brindando inteligencia a robots, coches y hogares. Las Smart Cities, el
IOT (Internet of things) ya se están volviendo una realidad y también las aplicaciones de Machine
Learning en Asistentes como Siri, las recomendaciones de Netflix o Sistemas de Navegación en
Drones. Para los ingenieros o informáticos es una disciplina fundamental para ayudar a crear y
transitar este nuevo futuro.
Instalar el Ambiente de Desarrollo
Python
Para programar tu propia Máquina de Inteligencia Artificial necesitarás tener listo tu ambiente de
desarrollo local, en tu computadora de escritorio o portatil. En este capitulo explicaremos una manera
sencilla de obtener Python y las librerías necesarias para programar como un Científico de Datos y
poder utilizar los algoritmos más conocidos de Machine Learning.
Agenda
Nuestra agenda de hoy incluye:
1. Descargar Anaconda
2. Instalar Anaconda
3. Iniciar y Actualizar Anaconda
4. Actualizar paquete scikit-learn
5. Instalar Librerías para Deep Learning
Comencemos!
1. Descargar Anaconda
Veamos como descargar Anaconda a nuestro disco y obtener esta suite científica de Python
Instalar el Ambiente de Desarrollo Python 6
Con esto guardaremos en nuestro disco duro unos 460MB (según sistema operativo) y obtendremos
un archivo con el nombre similar a Anaconda3-5.1.10-MacOSX-x86_64.pkg
2. Instalar Anaconda
En este paso instalaremos la app en nuestro sistema. (Deberá tener permisos de Administrador si
instala para todos los usuarios).
Ejecutamos el archivo que descargamos haciendo doble click.
Se abrirá un Típico Wizard de instalación.
Seguiremos los pasos, podemos seleccionar instalación sólo para nuestro usuario, seleccionar la ruta
en disco donde instalaremos y listo.
Al instalarse el tamaño total podrá superar 1Gb en disco.
Anaconda viene con una suite de herramientas gráficas llamada Anaconda Navigator. Iniciemos la
aplicación y veremos una pantalla como esta:
1 $ conda -V
y obtenemos la versión
1 conda 4.3.30
luego tipeamos
1 $ python -V
Para confirmar que todo funciona bien, crearemos un archivo de texto para escribir un breve script
de python. Nombra al archivo [Link] y su contenido será:
1 # scipy
2 import scipy
3 print('scipy: %s' % scipy.__version__)
4 # numpy
5 import numpy
6 print('numpy: %s' % numpy.__version__)
7 # matplotlib
8 import matplotlib
9 print('matplotlib: %s' % matplotlib.__version__)
10 # pandas
11 import pandas
12 print('pandas: %s' % pandas.__version__)
13 # statsmodels
14 import statsmodels
15 print('statsmodels: %s' % statsmodels.__version__)
16 # scikit-learn
17 import sklearn
18 print('sklearn: %s' % sklearn.__version__)
1 $ python [Link]
1 scipy: 0.18.1
2 numpy: 1.12.1
3 matplotlib: 1.5.3
4 pandas: 0.19.2
5 statsmodels: 0.8.0
6 sklearn: 0.18.1
1 $ python [Link]
Y crearemos un nuevo script para probar que se instalaron correctamente. Le llamaremos versiones_-
[Link] y tendrá las siguientes lineas:
1 # tensorflow
2 import tensorflow
3 print('tensorflow: %s' % tensorflow.__version__)
4 # keras
5 import keras
6 print('keras: %s' % keras.__version__)
1 $ python versiones_deep.py
1 tensorflow: 1.0.1
2 Using TensorFlow backend.
3 keras: 2.0.2
Resumen
Para nuestra carrera en Machine Learning, el enfrentamiento con Big Data y el perfeccionamiento
como Data Scientist necesitamos un buen entorno en el que programar y cacharrear -lease, probar
cosas y divertirse-. Para ello contamos con la suite de herramientas gratuitas de Anaconda que nos
ofrece un entorno amable y sencillo en el que crear nuestras máquinas en código Python.
Instalar el Ambiente de Desarrollo Python 11
¿Qué es el EDA?
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
EDA deconstruido
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Más Recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Regresión Lineal con Python
¿Qué es la regresión lineal?
La regresión lineal⁶ es un algoritmo⁷ de aprendizaje supervisado⁸ que se utiliza en Machine Learning
y en estadística. En su versión más sencilla, lo que haremos es “dibujar una recta” que nos indicará la
tendencia de un conjunto de datos continuos (si fueran discretos, utilizaríamos Regresión Logística⁹).
En estadísticas, regresión lineal es una aproximación para modelar la relación entre una variable
escalar dependiente “y” y una o mas variables explicativas nombradas con “X”.
Recordemos rápidamente la fórmula de la recta:
Y = mX + b
Aqui vemos un ejemplo donde vemos datos recabados sobre los precios de las pizzas en Dinamarca
(los puntos en rojo) y la linea negra es la tendencia. Esa es la línea de regresión que buscamos que
el algoritmo aprenda y calcule sólo.
⁶[Link]
⁷[Link]
⁸[Link]
⁹[Link]
Regresión Lineal con Python 15
Un Ejercicio Práctico
En este ejemplo cargaremos un archivo .csv de entrada¹³ obtenido por webscraping¹⁴ que contiene
diversas URLs a artículos sobre Machine Learning de algunos sitios muy importantes como
Techcrunch¹⁵ o KDnuggets¹⁶ y como características de entrada -las columnas- tendremos:
1 # Imports necesarios
2 import numpy as np
3 import pandas as pd
4 import seaborn as sb
5 import [Link] as plt
6 %matplotlib inline
7 from mpl_toolkits.mplot3d import Axes3D
8 from matplotlib import cm
9 [Link]['[Link]'] = (16, 9)
10 [Link]('ggplot')
11 from sklearn import linear_model
12 from [Link] import mean_squared_error, r2_score
¹⁸[Link]
¹⁹[Link]
²⁰[Link]
²¹[Link]
Regresión Lineal con Python 17
²²
Se ven algunos campos con valores NaN (nulos) por ejemplo algunas urls o en comentarios. Veamos
algunas estadísticas básicas de nuestros datos de entrada:
²³
Aqui vemos que la media de palabras en los artículos es de 1808. El artículo más corto tiene 250
palabras y el más extenso 8401. Intentaremos ver con nuestra relación lineal, si hay una correlación
entre la cantidad de palabras del texto y la cantidad de Shares obtenidos. Hacemos una visualización
en general de los datos de entrada:
²⁴
En estas gráficas vemos entre qué valores se concentran la mayoría de registros. Vamos a filtrar los
datos de cantidad de palabras para quedarnos con los registros con menos de 3500 palabras y también
con los que tengan Cantidad de compartidos menos a 80.000. Lo gratificaremos pintando en azul los
puntos con menos de 1808 palabras (la media) y en naranja los que tengan más.
1 # Vamos a RECORTAR los datos en la zona donde se concentran más los puntos
2 # esto es en el eje X: entre 0 y 3.500
3 # y en el eje Y: entre 0 y 80.000
4 filtered_data = data[(data['Word count'] <= 3500) & (data['# Shares'] <= 80000)]
5
6 colores=['orange','blue']
7 tamanios=[30,60]
8
9 f1 = filtered_data['Word count'].values
10 f2 = filtered_data['# Shares'].values
11
12 # Vamos a pintar en colores los puntos por debajo y por encima de la media de Cantid\
13 ad de Palabras
14 asignar=[]
15 for index, row in filtered_data.iterrows():
16 if(row['Word count']>1808):
17 [Link](colores[0])
18 else:
²⁴[Link]
Regresión Lineal con Python 19
19 [Link](colores[1])
20
21 [Link](f1, f2, c=asignar, s=tamanios[0])
22 [Link]()
²⁵
11
12 # Hacemos las predicciones que en definitiva una línea (en este caso, al ser 2D)
13 y_pred = [Link](X_train)
14
15 # Veamos los coeficienetes obtenidos, En nuestro caso, serán la Tangente
16 print('Coefficients: \n', regr.coef_)
17 # Este es el valor donde corta el eje Y (en X=0)
18 print('Independent term: \n', regr.intercept_)
19 # Error Cuadrado Medio
20 print("Mean squared error: %.2f" % mean_squared_error(y_train, y_pred))
21 # Puntaje de Varianza. El mejor puntaje es un 1.0
22 print('Variance score: %.2f' % r2_score(y_train, y_pred))
1 Coefficients: [5.69765366]
2 Independent term: 11200.303223074163
3 Mean squared error: 372888728.34
4 Variance score: 0.06
Visualicemos la Recta
Veamos la recta que obtuvimos:
²⁶
1 #Vamos a comprobar:
2 # Quiero predecir cuántos "Shares" voy a obtener por un artículo con 2.000 palabras,
3 # según nuestro modelo, hacemos:
4 y_Dosmil = [Link]([[2000]])
5 print(int(y_Dosmil))
Nos devuelve una predicción de 22595 “Shares” para un artículo de 2000 palabras.
²⁶[Link]
Regresión Lineal con Python 22
Y = b + m1 X1 + m2 X2 + … + m(n) X(n)
y deja de ser una recta) En nuestro caso, utilizaremos 2 “variables predictivas” para poder
graficar en 3D, pero recordar que para mejores predicciones podemos utilizar más de 2 entradas y
prescindir del grafico. Nuestra primer variable seguirá siendo la cantidad de palabras y la segunda
variable será la suma de 3 columnas de entrada: la cantidad de enlaces, comentarios y cantidad de
imágenes. Vamos a programar!
Nota: hubiera sido mejor aplicar PCA para reducción de dimensiones²⁷, manteniendo la
información más importante de todas
Ya tenemos nuestras 2 variables de entrada en XY_train y nuestra variable de salida pasa de ser
“Y” a ser el eje “Z”. Creamos un nuevo objeto de Regresión lineal con SKLearn pero esta vez tendrá
las dos dimensiones que entrenar: las que contiene XY_train. Al igual que antes, imprimimos los
coeficientes y puntajes obtenidos:
²⁷[Link]
Regresión Lineal con Python 23
Como vemos, obtenemos 2 coeficientes (cada uno correspondiente a nuestras 2 variables predictivas),
pues ahora lo que graficamos no será una linea si no, un plano en 3 Dimensiones. El error obtenido
sigue siendo grande, aunque algo mejor que el anterior y el puntaje de Varianza mejora casi el doble
del anterior (aunque sigue siendo muy malo, muy lejos del 1).
1 fig = [Link]()
2 ax = Axes3D(fig)
3
4 # Creamos una malla, sobre la cual graficaremos el plano
5 xx, yy = [Link]([Link](0, 3500, num=10), [Link](0, 60, num=10))
6
7 # calculamos los valores del plano para los puntos x e y
8 nuevoX = (regr2.coef_[0] * xx)
9 nuevoY = (regr2.coef_[1] * yy)
10
11 # calculamos los correspondientes valores para z. Debemos sumar el punto de intercep\
12 ción
13 z = (nuevoX + nuevoY + regr2.intercept_)
14
15 # Graficamos el plano
16 ax.plot_surface(xx, yy, z, alpha=0.2, cmap='hot')
17
18 # Graficamos en azul los puntos en 3D
19 [Link](XY_train[:, 0], XY_train[:, 1], z_train, c='blue',s=30)
20
21 # Graficamos en rojo, los puntos que
22 [Link](XY_train[:, 0], XY_train[:, 1], z_pred, c='red',s=40)
23
24 # con esto situamos la "camara" con la que visualizamos
25 ax.view_init(elev=30., azim=65)
26
27 ax.set_xlabel('Cantidad de Palabras')
28 ax.set_ylabel('Cantidad de Enlaces,Comentarios e Imagenes')
29 ax.set_zlabel('Compartido en Redes')
30 ax.set_title('Regresión Lineal con Múltiples Variables')
Regresión Lineal con Python 25
²⁸
Podemos rotar el gráfico para apreciar el plano desde diversos ángulos modificando el valor del
parámetro azim en view_init con números de 0 a 360.
Esta predicción nos da 20518 y probablemente sea un poco mejor que nuestra predicción anterior
con 1 variables.
Resumen
Hemos visto cómo utilizar SKLearn en Python para crear modelos de Regresión Lineal con 1 o
múltiples variables. En nuestro ejercicio no tuvimos una gran confianza en las predicciónes. Por
²⁸[Link]
Regresión Lineal con Python 26
ejemplo en nuestro primer modelo, con 2000 palabras nos predice que podemos tener 22595 pero el
margen de error haciendo raíz del error cuartico medio es más menos 19310. Es decir que escribiendo
un artículo de 2000 palabras lo mismo tenemos 3285 Shares que 41905. En este caso usamos este
modelo para aprender a usarlo y habrá que ver en otros casos en los que sí nos brinde predicciones
acertadas. Para mejorar nuestro modelo, deberíamos utilizar más dimensiones y encontrar datos de
entrada mejores.
Atención: también es posible, que no exista ninguna relación fuerte entre nuestras variables de
entrada y el éxito en Shares del artículo… Esto fue un experimento!
Recursos y enlaces
• Descarga la Jupyter Notebook²⁹ y el archivo de entrada csv³⁰
• ó puedes visualizar online³¹
• o ver y descargar desde mi cuenta github³²
²⁹[Link]
³⁰[Link]
³¹[Link]
³²[Link]
³³[Link]
³⁴[Link]
³⁵[Link]
³⁶[Link]
³⁷[Link]
Regresión Logística
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Introducción
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Requerimientos técnicos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Visualización de Datos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Regresión Logística 28
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Arbol de Decisión
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Indice Gini:
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Ganancia de información:
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Mapeo de Datos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Análisis
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos y enlaces
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Qué es overfitting y cómo
solucionarlo
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Datos desbalanceados
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Agenda:
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Análisis exploratorio
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Datos desbalanceados 35
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Enlaces de interés
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Random Forest, el poder del
Ensamble
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Evaluamos resultados
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos y Adicionales
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Conjunto de Entrenamiento, Test y
Validación
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Un nuevo Mundo
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Stratified K-Fold
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Leave P Out
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
ShuffleSplit
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
TimeSeriesSplit
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recomendaciones finales:
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos Adicionales
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
K-Means
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
El Algoritmo K-means
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Elegir el valor de K
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Visualización de Datos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Definimos la entrada
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Obtener el valor K
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
K-Means 44
Ejecutamos K-Means
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
K-Nearest-Neighbor
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Pros y contras
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Requerimientos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Un poco de Visualización
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos y enlaces
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Naive Bayes: ¿Comprar casa o
Alquilar?
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
El teorema de Bayes
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Visualización de Datos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos Adicionales
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Sistemas de Recomendación
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Tipos de motores
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Ejemplo de Dataset
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Vamos al código!
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Sparcity
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Validemos el error
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Hay más…
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
1958 - Perceptron
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Neuronas Sigmoides
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Redes Feedforward
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
1986 - Backpropagation
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Más recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Aprendizaje Profundo: una Guía
rápida
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Una sencilla Red Neuronal con Keras
y Tensorflow
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
A Entrenar la red!
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Evaluamos y Predecimos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Código Python
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Visualización de datos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Entrenamiento y Resultados
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos Adicionales
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Pronóstico de Ventas con Redes
Neuronales (Parte 2)
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Conclusión de Embeddings
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Quiero Python!
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos Adicionales
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Clasificación de Imágenes en Python
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Requerimientos Técnicos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
1- Importar librerías
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
6-Entrenamos la CNN
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
7-Resultados de la clasificación
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Los recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
¿Cómo funcionan las Convolutional
Neural Networks?
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Muchas imágenes
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Pixeles y neuronas
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
No Olvides: Pre-procesamiento
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Convoluciones
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
La función de Activación
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Subsampling
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Arquitectura básica
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
No incluido
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Detección de Objetos con Python
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Agenda
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Anotarlo Todo
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
El lego dataset
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
El código Python
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Leer el Dataset
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Train y Validación
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Data Augmentation
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Detección de Objetos con Python 73
Entrenar la Red!
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Probar la Red
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Resumen
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Recursos
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Coche Robot que conduce solo
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
(Por completar)
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Crea tu propio servicio de Machine
Learning
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]
Por completar
Este contenido no está disponible en el libro de muestra. El libro se puede comprar en Leanpub en
[Link]