Copia de Machine-Learning-con-Python-Aprendizaje-Supervisado-V2
Copia de Machine-Learning-con-Python-Aprendizaje-Supervisado-V2
2.ª edición
1
Ligdi González
2020
_______________________________
Machine Learning
con Python
Aprendizaje Supervisado
2
INDICE
CAPÍTULO 1................................................................................................................................ 6
INTRODUCCIÓN .................................................................................................................................................. 6
MACHINE LEARNING CON PYTHON ........................................................................................................... 6
CAPÍTULO 2 ............................................................................................................................... 8
PREPARAR EL ENTORNO DE PYTHON .............................................................................................................8
PYTHON ...........................................................................................................................................................8
LIBRERÍAS PARA LA CIENCIA DE DATOS ................................................................................................... 9
LIBRERÍAS PARA LA VISUALIZACIÓN DE DATOS ................................................................................... 10
LIBRERÍAS PARA MACHINE LEARNING ................................................................................................... 10
INSTALAR EL ENTORNO DE PYTHON ........................................................................................................11
TRABAJANDO CON EL IDE SPYDER .......................................................................................................... 13
TRABAJANDO CON EL IDE JUPYTER NOTEBOOK ................................................................................... 14
CAPÍTULO 3 ............................................................................................................................. 16
CURSOS INTENSIVOS DE PYTHON Y SCIPY ................................................................................................... 16
CURSO INTENSIVO DE PYTHON ................................................................................................................ 16
CURSO INTENSIVO DE NUMPY .................................................................................................................. 17
CURSO INTENSIVO DE PANDAS ................................................................................................................. 21
CURSO INTENSIVO DE MATPLOTLIB ........................................................................................................23
CAPÍTULO 4 ............................................................................................................................. 25
CARGAR LOS DATOS ......................................................................................................................................... 25
CONSIDERACIONES DE LOS ARCHIVOS CSV ........................................................................................... 25
CONJUNTO DE DATOS: DIABETES DE LOS INDIOS PIMA .....................................................................26
CARGAR ARCHIVOS CSV UTILIZANDO PYTHON .....................................................................................26
CARGAR ARCHIVOS UTILIZANDO PYTHON ............................................................................................. 27
CAPÍTULO 5 ............................................................................................................................. 28
ENTENDIENDO LOS DATOS ........................................................................................................................... 28
VERIFICAR LOS DATOS .............................................................................................................................. 28
DIMENSIONANDO LOS DATOS ...................................................................................................................29
TIPOS DE DATOS.......................................................................................................................................... 30
DESCRIPCIÓN ESTADÍSTICA ..................................................................................................................... 30
DISTRIBUCIÓN DE CLASES (PROBLEMAS DE CLASIFICACIÓN) ........................................................... 31
CORRELACIÓN ENTRE CARACTERÍSTICAS..............................................................................................32
CONSIDERACIONES ADICIONALES ...........................................................................................................32
CAPÍTULO 6 ............................................................................................................................. 33
VISUALIZANDO LOS DATOS ............................................................................................................................ 33
GRÁFICAR CON UNA SOLA VARIABLES .................................................................................................... 33
GRÁFICAR CON VARIAS VARIABLES ......................................................................................................... 35
CAPÍTULO 7 ............................................................................................................................. 37
PROCESAMIENTO DE LOS DATOS .................................................................................................................. 37
SEPARACIÓN DE LOS DATOS ...................................................................................................................... 37
ESTANDARIZACIÓN DE LOS DATOS ......................................................................................................... 38
NORMALIZACIÓN DE LOS DATOS............................................................................................................. 40
ELIMINACIÓN DE COLUMNAS ................................................................................................................... 41
CAPÍTULO 8 ............................................................................................................................. 43
SELECCIONANDO CARACTERÍSTICAS ...........................................................................................................43
IMPORTANCIA DE LAS CARACTERÍSTICAS ..............................................................................................43
3
MÉTODOS DE FILTRO ..................................................................................................................................44
MÉTODOS DE ENVOLTURA ........................................................................................................................46
MÉTODOS INTEGRADOS ............................................................................................................................ 48
CAPÍTULO 9 ............................................................................................................................. 49
ALGORITMOS DE CLASIFICACIÓN .................................................................................................................49
REGRESIÓN LOGÍSTICA ............................................................................................................................. 50
K - VECINOS MÁS CERCANOS ..................................................................................................................... 51
MÁQUINAS DE VECTORES DE SOPORTE .................................................................................................. 52
BAYESIANO INGENUO (NAIVE BAYES) ..................................................................................................... 53
ÁRBOLES DE DECISIÓN CLASIFICACIÓN ................................................................................................. 54
BOSQUES ALEATORIOS CLASIFICACIÓN.................................................................................................. 55
CAPÍTULO 10 ........................................................................................................................... 57
MÉTRICAS DE RENDIMIENTO ALGORITMOS DE CLASIFICACIÓN ........................................................... 57
MATRIZ DE CONFUSIÓN ............................................................................................................................. 57
REPORTE DE CLASIFICACIÓN ....................................................................................................................58
ÁREA BAJO LA CURVA ................................................................................................................................. 59
CAPÍTULO 11 ............................................................................................................................ 61
ALGORITMOS DE REGRESIÓN ........................................................................................................................ 61
REGRESIÓN LINEAL .................................................................................................................................... 61
REGRESIÓN POLINOMEAL .........................................................................................................................62
VECTORES DE SOPORTE REGRESIÓN ......................................................................................................63
ÁRBOLES DE DECISIÓN REGRESIÓN ........................................................................................................ 65
BOSQUES ALEATORIOS REGRESIÓN ........................................................................................................66
CAPÍTULO 12 ............................................................................................................................ 68
MÉTRICAS DE RENDIMIENTO ALGORITMOS DE REGRESIÓN ................................................................. 68
ERROR CUADRÁTICO MEDIO (RMSE)...................................................................................................... 68
ERROR ABSOLUTO MEDIO (MAE) .............................................................................................................69
CAPÍTULO 13 ............................................................................................................................. 71
PROYECTO DE MACHINE LEARNING - CLASIFICACIÓN ............................................................................. 71
DEFINICIÓN DEL PROBLEMA .................................................................................................................... 71
IMPORTAR LAS LIBRERÍAS......................................................................................................................... 72
CARGAR EL CONJUNTO DE DATOS ........................................................................................................... 72
ENTENDIENDO LOS DATOS ........................................................................................................................ 73
VISUALIZANDO LOS DATOS........................................................................................................................ 75
SEPARACIÓN DE LOS DATOS ...................................................................................................................... 78
SELECCIONANDO CARACTERÍSTICAS ...................................................................................................... 79
PROCESAMIENTO DE LOS DATOS ............................................................................................................ 80
SEPARACIÓN DE LOS DATOS ..................................................................................................................... 80
APLICACIÓN DE LOS ALGORITMOS DE CLASIFICACIÓN ....................................................................... 81
CAPÍTULO 14............................................................................................................................ 89
PROYECTO DE MACHINE LEARNING - REGRESIÓN ................................................................................... 89
DEFINICIÓN DEL PROBLEMA ................................................................................................................... 89
IMPORTAR LAS LIBRERÍAS........................................................................................................................ 90
CARGAR EL CONJUNTO DE DATOS .......................................................................................................... 90
ENTENDIENDO LOS DATOS ........................................................................................................................ 91
VISUALIZANDO LOS DATOS........................................................................................................................92
SEPARACIÓN DE LOS DATOS ......................................................................................................................94
SEPARACIÓN DE LOS DATOS ...................................................................................................................... 95
APLICACIÓN DE LOS ALGORITMOS DE REGRESIÓN .............................................................................96
CAPÍTULO 15 .......................................................................................................................... 102
4
CONTINUAR APRENDIENDO MACHINE LEARNING ................................................................................. 102
CONSTRUIR PLANTILLAS PARA PROYECTOS ........................................................................................ 102
CONJUNTOS DE DATOS PARA PRÁCTICA ............................................................................................... 103
CAPÍTULO 16.......................................................................................................................... 105
OBTENER MÁS INFORMACIÓN ..................................................................................................................... 105
CONSEJO GENERAL ................................................................................................................................... 105
AYUDA CON PYTHON ................................................................................................................................. 106
AYUDA CON SCIPY Y NUMPY .................................................................................................................... 106
AYUDA CON MATPLOTLIB ........................................................................................................................ 106
AYUDA CON PANDAS ................................................................................................................................. 107
AYUDA CON SCIKIT-LEARN ...................................................................................................................... 107
5
Capítulo 1
INTRODUCCIÓN
Este libro es una guía para aprender Machine Learning aplicado con Python. Se
descubrirá, paso a paso, el proceso que se puede usar para comenzar en Machine
Learning con el ecosistema de Python.
6
• Definir el problema: investigar y caracterizar el problema para comprender
mejor los objetivos del proyecto.
• Analizar los datos: usar estadísticas descriptivas y visualizarlas para
comprender mejor los datos que se tiene disponible.
• Preparar los datos: utilizar las transformaciones de datos para exponer mejor
la estructura del problema de predicción a los algoritmos de Machine Learning.
• Evaluar los algoritmos: diseñar pruebas para evaluar una serie de algoritmos
estándar en los datos y seleccionar los mejores para investigar más a fondo.
En la última parte del libro, unirá todo lo aprendido anteriormente, para el desarrollo
de un proyecto, uno con algoritmos de clasificación y otro con algoritmos de regresión.
Cada una de las lecciones están diseñadas para leerse de principio a fin en orden, y
mostrar exactamente cómo completar cada tarea en un proyecto de Machine Learning.
Por supuesto, se puede dedicar a capítulos específicos, posteriormente, para refrescar
los conocimientos. Los capítulos están estructurados para demostrar las librerías y
funciones y mostrar técnicas específicas para una tarea de Machine Learning.
7
Capítulo 2
PREPARAR EL ENTORNO DE
PYTHON
PYTHON
Python lidera en lenguajes de desarrollo de Machine Learning debido a su simplicidad
y facilidad de aprendizaje. Python es utilizado por más y más científicos de datos y
8
desarrolladores para la construcción y análisis de modelos. Además, es un éxito entre
los principiantes que son nuevos en Machine Learning.
SciPy
SciPy es una librería de software para ingeniería y ciencia, SciPy incluye funciones para
algebra lineal, optimización, integración y estadísticas. Proporciona rutinas numéricas
eficientes como integración numérica, optimización y muchas otras a través de sus
submódulos específicos. La funcionalidad principal de esta librería se basa en NumPy
y sus matrices y el agregar una colección de algoritmos y comandos de alto nivel para
manipular y visualizar datos.
NumPy
9
NumPy es una librería de administración de datos que normalmente está emparejado
con TensorFlow, SciPy, matplotlib y muchas otras librerías de Python orientadas hacia
Machine Learning y la ciencia de datos.
Pandas
Pandas es una librería de Python diseñada para trabajar con datos “etiquetados” y
“relacionales” de manera simple e intuitivos, está diseñado para una manipulación,
agregación y visualización de datos rápida y fácil. Pandas agrega estructura de datos y
herramientas que están diseñadas para el análisis de datos prácticos en finanzas,
estadísticas e ingeniería. Pandas funciona bien con datos incompletos, desordenados y
no etiquetados, es decir, el tipo de datos que es probable que se encuentre en el mundo
real, y proporciona herramientas para configurar, fusionar, remodelar y dividir
conjuntos de datos. Con esta librería se puede agregar y eliminar columnas fácilmente
desde el DataFrame, convertir estructuras de datos en objetos y manejar datos faltantes
(NaN).
Matplotlib
Es una librería estándar de Python para crear diagramas y gráficos en 2D, es de muy
bajo nivel, lo que significa que requiere más comandos para generar gráficos y figuras
agradables que con algunas librerías más avanzadas, sin embargo, la otra cara de eso
es la flexibilidad, con suficientes comandos, puedes hacer casi cualquier tipo de
gráficos que desees con matplotlib.
Scikit-learn
10
análisis de datos, por lo que es una excelente opción tanto para investigadores como
para desarrolladores. Está construido sobre las populares librerías NumPy, SciPy y
matplotlib, por lo que tendrás una sensación familiar al utilizarla.
Scikit-learn expone una interfaz concisa y consistente para los algoritmos comunes de
Machine Learning, por lo que es sencillo llevar a los sistemas de producción. La librería
combina código de calidad y buena documentación, facilidad de uso y alto rendimiento,
y es un estándar de la industria de facto para Machine Learning con Python.
http://bit.ly/2Qmt2Zu
11
Luego seleccionar la versión de Python a utilizar, se recomienda seleccionar la versión
3,6 ya que la mayoría de las librerías de Machine Learning están desarrolladas para
esta versión, mientras que la otra esta quedando cada día más obsoleta para su uso.
Una vez que se haya descargado, proceder a instalarlo en el computador, se debe tener
un poco de paciencia porque en ocasiones todo este proceso lleva un tiempo.
Al finalizar todo esto ya estará instalado en el computador, Python, gran parte de las
librerías a implementar en Machine Learning e inclusive varios IDEs que se puede
utilizar para los desarrollos de proyectos.
12
TRABAJANDO CON EL IDE SPYDER
Spyder se puede encontrar en el navegador de Anaconda “Anaconda-Navigator”.
Para abrir Spyder solamente se tiene que presionar “Launch” sobre el recuadro de la
aplicación.
Una vez que inicie Spyder deberas ver una ventana de editor abierto en el lado
izquierdo y una ventana de consola de Python en el lado inferior derecho. Por su parte,
el panel ubicado en la parte superior derecha se usa un explorador de variables, un
explorador de archivos y un navegador de ayuda. Al igual que la mayoría de los IDE, se
puede cambiar qué paneles son visibles y su diseño dentro de la ventana.
13
Se puede comenzar a trabajar con Spyder inmediatamente en la ventana de la consola.
De manera predeterminada, Spyder proporciona una consola IPython que se puede
usar para interactuar directamente con el motor de Python. Funciona, esencialmente,
de la misma manera que funciona en la línea de comando, la gran diferencia es que
Spyder puede inspeccionar los contenidos del motor de Python y puede hacer otras
cosas como mostrar variables y sus contenidos dentro del explorador de variables.
http://bit.ly/2MxKDvb
14
Una vez seleccionado para abrir Jupyter, se abre una pestaña en el navegador web
predeterminado del computador. Desde acá se puede navegar a través de las carpetas
del computador para determinar en donde se guardará el documento del proyecto. Se
debe crear un nuevo Notebook de Python 3, en este momento se abre una nueva
pestaña, acá es donde se debe empezar a desarrollar el proyecto.
Para efectos del libro todas las líneas de códigos y resultados de códigos se hará
utilizando como IDE, Jupyter Notebook, esto se debe que la presentación de los datos
es ideal para facilitar el entendimiento, pero puedes seleccionar cualquier IDE de tú
preferencia.
15
Capítulo 3
CURSOS INTENSIVOS DE
PYTHON Y SCIPY
16
Las ventajas técnicas que ofrece Python en comparación con otros lenguajes de
programación son las siguientes:
Con todas estas características hace que Python pueda ser implementando en un sin
fin de aplicaciones.
Por lo tanto, Python basa su popularidad en dos pilares, el primero es que es fácil de
aprender ya que contiene una sintaxis clara e intuitiva y la segunda razón es que es muy
poderoso ya que puede ejecutar una variedad de complejas líneas de código.
http://bit.ly/2JEOBnR
17
Según lo explicado anteriormente, en la primera figura se tiene una matriz
unidimensional o 1D. En la segunda figura, se tiene una matriz bidimensional o 2D, en
donde las filas se indican como el eje 0, mientras que las columnas son el eje 1.
Sabiendo todo esto, se crea dos matrices una unidimensional y otra bidimensional, esto
utilizando por supuesto NumPy.
18
Con la primera instrucción se indica al programa de Python que de ahora en adelante
np será la referencia para todo lo referente a NumPy. De esta manera, muy simple, se
declara las matrices dentro de NumPy.
NumPy contiene varias instrucciones para obtener más información sobre las matrices
que se han creado utilizando esta librería, algunas de ellas son las siguientes:
Se puede encontrar el tipo de datos de los elementos que están almacenados en una
matriz, para ello se utiliza la función “dtype”, el cual arrojará el tipo de datos junto con
el tamaño.
Del mismo modo, se puede encontrar el tamaño y la forma de la matriz con la función
“size” y “shape”, respectivamente.
Otra de las operaciones que se puede realizar con NumPy es el cambio de tamaño y
forma de las matrices.
19
Otra función que se puede utilizar con NumPy es seleccionar un solo elemento de la
matriz, para ello solamente se tiene que especificar el número de columna y fila en
donde está ubicado y devolverá el valor almacenado en dicha ubicación.
Se puede realizar más operaciones con las matrices de NumPy, como son la suma,
resta, multiplicación y división de las dos matrices.
20
que se vaya programando seguramente se irán aprendiendo, recuerda que la página
web propia de esta librería ofrece muy buena información sobre todas las funciones
que ofrece por lo que no está demás visitarla.
http://bit.ly/2MSJkqu
http://bit.ly/2QiAN2v
Usando esta librería se puede lograr cinco pasos típicos en el procesamiento y análisis
de datos, independientemente del origen de los datos: cargar, preparar, manipular,
modelar y analizar.
21
® Remodelación y giro de conjuntos de fechas.
® Etiquetado, corte, indexación y subconjunto de grandes conjuntos de datos.
® Las columnas de una estructura de datos se pueden eliminar o insertar.
® Agrupa por datos para agregación y transformaciones.
® Alto rendimiento de fusión y unión de datos.
® Funcionalidad de la serie de tiempo.
Como cualquier otra librería en Python, se debe importarla dentro del programa, en
este caso se suele usar el alias pd, mientras que para la librería NumPy se carga como
np.
La manera en que se crea este DataFrame será la misma para todas las estructuras.
Una vez creado el DataFrame se puede explorarlo con todas las instrucciones con las
que Pandas cuenta. Lo primero que se debe hacer es conocer la forma de los datos para
ello se utiliza la instrucción shape. Con esta instrucción se puede conocer las
dimensiones del DataFrame, es decir el ancho y altura.
22
Por otra parte, se puede utilizar la función len() en combinación con la instrucción
index para conocer la altura del DataFrame.
http://bit.ly/2yibciB
http://bit.ly/2NFsYCa
23
Al momento de graficar se debe tener en cuenta las siguientes consideraciones:
http://bit.ly/2CwmX99
http://bit.ly/2AuS57z
24
Capítulo 4
CARGAR LOS DATOS
Encabezado de archivo
25
Delimitador
El delimitador que se usa de manera estándar para separar los valores en los campos
es la coma (,). El archivo a utilizar podría utilizar un delimitador diferente como un
espacio en blanco o punto y coma (;), en estos casos se debe especificar explícitamente.
http://bit.ly/2wqG0g6
26
También se puede cargar los datos directamente desde una dirección web, para esto
solamente se tiene que incluir la dirección web dentro del paréntesis donde en estos
momentos se tiene el nombre del archivo.
Descripción Comando
HTML read_html
MS EXCEL read_excel
JSON read_json
SQL read_sql
27
Capítulo 5
ENTENDIENDO LOS DATOS
Una vez cargados los datos deben ser comprendidos para obtener los mejores
resultados. En este capítulo se explicará varias formas en que se puede usar Python
para comprender mejor los datos de Machine Learning.
Para implementar cada uno de estos ítems se utilizará el conjunto de datos con el que
se trabajo en el anterior capítulo correspondiente a la diabetes de los indios Pima.
28
Para visualizar las primeras 5 filas de los datos se utiliza la función head() de Pandas
DataFrame.
Para conocer la forma y el tamaño del conjunto de datos utilizamos la propiedad shape
de Pandas.
El resultado de este código representa el número de filas y luego las columnas. Por lo
tanto, el conjunto de datos cuenta con 768 filas y 9 columnas.
29
TIPOS DE DATOS
Conocer el tipo de dato de cada característica es importante. Conociendo esta
información se puede hacer una idea si se deban convertir los datos originales en otros
formatos para que sean más fácil su implementación junto a los algoritmos de Machine
Learning.
Para conocer los tipos de datos se puede implementar la función dtypes de Pandas, de
esta forma se puede conocer el tipo de datos de cada característica que forma parte del
conjunto de datos.
El resultado es una lista con cada una de las columnas del conjunto de datos, en donde
se específica el tipo de datos que se maneja.
DESCRIPCIÓN ESTADÍSTICA
La descripción estadística se refiere a la información que se puede obtener de los datos
referentes a propiedades estadísticas de cada característica. Para implementarlo
solamente se debe utilizar la función describe() de Pandas, y las propiedades que
devuelve son las siguientes:
® Conteo
® Media
® Desviación estándar
® Valor mínimo
® 25%
® 50%
® 75%
® Valor máximo
30
Resultado una vez ejecutado el código anterior:
Como se puede observar devuelve mucha información del conjunto de datos, pero lo
importante de acá es verificar si todas las cantidades de datos coinciden, de esta forma
se puede saber si hay o no datos perdidos.
31
CORRELACIÓN ENTRE CARACTERÍSTICAS
La correlación se refiere a la relación entre dos variables y cómo pueden o no cambiar
juntas. Para implementar esto se debe indicar el método a utilizar, el más común es el
coeficiente de correlación de Pearson, que asume una distribución normal de los
atributos involucrados. Si la correlación se encuentra entre -1 o 1 muestra una
correlación negativa o positiva completa, respectivamente. Mientras que un valor de 0
no muestra ninguna correlación en absoluto. Para calcular una matriz de correlación
se utiliza la función corr().
CONSIDERACIONES ADICIONALES
Los puntos acá tratados son solamente algunos consejos que se deben considerar al
momento de revisar los datos, adicionalmente a estos, se debe tomar en consideración
lo siguiente:
32
Capítulo 6
VISUALIZANDO LOS DATOS
Como se explico en el anterior capítulo se debe entender los datos para obtener buenos
resultados al momento de implementar los algoritmos de Machine Learning. Otra
forma de aprender de los datos es implementando la visualización de los mismos.
® Histogramas
® Diagrama de cajas o Box Plot
Histograma
Una forma rápida de tener una idea de la distribución de cada atributo es observar los
histogramas. Estos son utilizados para presentar la distribución y las relaciones de una
sola variable en un conjunto de características. Los histogramas agrupan los datos en
33
contenedores y de la forma de los mismos, se puede obtener rápidamente una idea de
si un atributo es gaussiano, sesgado o inclusive tiene una distribución exponencial.
Inclusive puede ayudar a determinar si hay posibles valores atípicos.
Otra forma de revisar la distribución de cada atributo es usar los diagramas de cajas.
Esto resume la distribución de cada atributo, trazando una línea para la mediana o
valor medio y un cuadro alrededor de los percentiles 25 y 75.
34
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2XgTTOg
® Matriz de correlación
Matriz de correlación
La correlación presenta una indicación de qué tan relacionados están los cambios entre
dos variables. La correlación positiva se refiere a cuando dos variables cambian en la
misma dirección. En cambio, la correlación es negativa cuando cambian en direcciones
opuestas, una sube y la otra baja. La matriz de correlación se refiere a la correlación
entre cada par de atributos, de esta forma se puede verificar qué variables tienen una
alta correlación.
35
Resultado una vez ejecutado el código anterior:
http://bit.ly/2XgTTOg
36
Capítulo 7
PROCESAMIENTO DE LOS
DATOS
En este capítulo aprenderás a cómo preparar los datos para Machine Learning en
Python utilizando scikit-learn:
37
Observando el conjunto de datos con el que se ha venido trabajando, la variable de
salida o dependiente vendría siendo la columna “Outcome”, debido a que en esta se
refleja si la persona tiene diabetes o no.
Definido esto se procede a realizar la separación de los datos, creando la variable “X”
para los datos de entrada o independientes y la variable “y” para la columna
correspondiente a “Outcome”.
38
Para cumplir con este procedimiento se utiliza la función StandardScaler de la librería
scikit-learn y se aplica, en este caso a todos los datos del conjunto de datos “X”.
Nota: al ejecutar este código probablemente salga un error, el mensaje lo que indica
es que todos los datos del tipo entero y flotante han sido convertidos en flotante para
poder implementar la instrucción StandardScaler.
Como se puede observar al ejecutar el código genera una matriz del tipo NumPy con
los datos estandarizados, en caso de que se quieran convertir los datos en DataFrame
de Pandas se debe ejecutar las siguientes líneas de código adicionales.
39
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2Hjq2f4
http://bit.ly/2H63A9R
Igual que en el caso anterior, al ejecutar el código genera una matriz del tipo NumPy
con los datos normalizados, en caso de que se quieran convertir los datos en DataFrame
de Pandas se debe ejecutar las siguientes líneas de código adicionales.
40
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2Hjq2f4
http://bit.ly/2H63A9R
ELIMINACIÓN DE COLUMNAS
Otra forma de procesar los datos es eliminando columnas con datos que no son
necesarios para el análisis. La función a utilizar para cumplir con esta forma es drop,
junto con el nombre de la columna a eliminar.
41
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2Hjq2f4
http://bit.ly/2H63A9R
42
Capítulo 8
SELECCIONANDO
CARACTERÍSTICAS
Las características de datos que se utiliza para entrenar los modelos de Machine
Learning tienen una gran influencia en el rendimiento que puede lograr. Las
características irrelevantes o parcialmente relevantes pueden afectar negativamente el
rendimiento del modelo. En este capítulo, se describirán las técnicas de selección
automática de características que pueden ser utilizadas para preparar los datos.
1. Método de filtro
2. Método de envoltura
3. Métodos integrados
Cuando se tiene este tipo de conjuntos de datos de alta dimensión y se utilizan todas
para la creación de modelos de Machine Learning puede ocasionar:
43
® Las características adicionales actúan como un ruido para el cual el modelo de
Machine Learning puede tener un rendimiento extremadamente bajo.
® El modelo tarda más tiempo en entrenarse.
® Asignación de recursos innecesarios para estas características.
MÉTODOS DE FILTRO
La siguiente imagen describe mejor los métodos de selección de características basados
en filtros:
En la siguiente tabla se puede utilizar para definir los coeficientes de correlación para
diferentes tipos de datos, en este caso, continuo y categórico.
LDA: el análisis discriminante lineal se usa para encontrar una combinación lineal de
características que caracteriza o separa dos o más clases, o niveles, de una variable
categórica.
44
ANOVA: significa análisis de la varianza y es similar a LDA, excepto por el hecho de
que opera mediante una o más funciones independientes categóricas y una función
dependiente continua. Proporciona una prueba estadística de si las medias de varios
grupos son iguales o no.
Los métodos de filtro no eliminan la multicolinealidad, por lo tanto, se debe lidiar con
ellos también antes de entrenar modelos para tus datos.
El resultado obtenido en esta parte del programa es el puntaje que tiene cada una de
las características una vez aplicado el método Chi-cuadrado. De acuerdo a esto ya se
puede definir las más importantes características que pueden afectar el análisis con
Machine Learning.
45
Resumiendo, los resultados obtenidos, se puede observar las 5 características elegidas,
tomadas con los puntajes más altos: “Pregnancies” (embarazos), “Glucose” (glucosa),
“Insulin” (insulina), “BMI” (índice de masa corporal), “Age” (años).
http://bit.ly/2C0BojO
MÉTODOS DE ENVOLTURA
Al igual que los métodos de filtro, se muestra una gráfica en donde se explica mejor
este método:
46
Selección hacia delante (Forward Selection): es un método iterativo en el que
se comienza sin tener ninguna característica en el modelo. En cada iteración, se sigue
agregando la función que mejor mejora nuestro modelo hasta que la adición de una
nueva variable no mejore el rendimiento del modelo.
Aplicando esta teoría al conjunto de datos que se ha trabajado hasta los momentos, se
aplicará el método de la eliminación de características recursivas junto con el algoritmo
de regresión logística.
Para este método se eligió las 4 funciones principales y el resultado fue el siguiente:
“Pregnancies” (embarazos), “Glucose” (glucosa), “BMI” (índice de masa corporal) y
“DiabetesPedigreeFunction” (función pedigrí de la diabetes).
Como se puede observar estos datos se encuentran marcadas como Verdaderos (True)
en la matriz de características seleccionadas y como 1 en la matriz de clasificación de
características.
47
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2C0BojO
MÉTODOS INTEGRADOS
Combina las cualidades de los métodos de filtro y envoltura. Se implementa mediante
algoritmos que tienes sus propios métodos de selección de características
incorporados.
Algunos de los ejemplos más populares de estos métodos son la regresión LASSO y
RIDGE, que tienen funciones de penalización incorporadas para reducir el sobreajuste.
http://bit.ly/2C0BojO
48
Capítulo 9
ALGORITMOS DE
CLASIFICACIÓN
1. Regresión logística
2. K Vecinos más cercanos
3. Máquinas de vectores de soporte
4. Naive bayes
5. Árboles de decisión clasificación
6. Bosques aleatorios clasificación
Para este análisis se tomará el conjunto de datos de diabetes de los indios Pima. De
igual forma, se asume que se conoce la parte teórica de cada algoritmo de Machine
Learning y cómo usarlos, no se explicará la base ni la parametrización de cada
algoritmo.
49
REGRESIÓN LOGÍSTICA
La Regresión Logística es un método estadístico para predecir clases binarias. El
resultado o variable objetivo es de naturaleza dicotómica. Dicotómica significa que solo
hay dos clases posibles. Por ejemplo, se puede utilizar para problemas de detección de
cáncer o calcular la probabilidad de que ocurra un evento.
50
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2LotXZX
51
Como se puede observar acá simplemente se debe definir el algoritmo, entrenar el
modelo con los datos de entrenamiento y realizar una predicción.
http://bit.ly/2SswHqL
http://bit.ly/2JTXZDR
52
Para este algoritmo, de igual forma, se debe definir el modelo, entrenarlo y realizar una
predicción.
http://bit.ly/2P0F8LY
http://bit.ly/2Ufeaz9
53
Igual que los casos anteriores, para este algoritmo se define el algoritmo a
implementar, seguidamente se entrena utilizando los datos de entrenamiento y
finalmente se realiza una predicción, bien sea con los datos de prueba o con nueva data.
http://bit.ly/2kpp6ws
http://bit.ly/2lAagUr
Los algoritmos de aprendizaje basados en árbol se consideran uno de los mejores y más
utilizados métodos de aprendizaje supervisado. Los métodos basados en árboles
potencian modelos predictivos con alta precisión, estabilidad y facilidad de
interpretación. A diferencia de los modelos lineales, mapean bastante bien las
relaciones no lineales.
54
Resultado una vez ejecutado el código anterior:
http://bit.ly/35McqTm
http://bit.ly/2p3vSuo
55
En los boques aleatorios se cultivan varios árboles en lugar de un solo árbol. Para
clasificar un nuevo objeto basado en atributos, cada árbol da una clasificación y se dice
que el árbol “vota” por esa clase. El bosque elige la clasificación con más votos, sobre
todos los árboles en el bosque.
http://bit.ly/37bxAuD
http://bit.ly/2smgZ7F
56
Capítulo 10
MÉTRICAS DE RENDIMIENTO
ALGORITMOS DE
CLASIFICACIÓN
Para los problemas de clasificación de Machine Learning se cuentan con una gran
cantidad de métricas que se pueden usar para evaluar las predicciones de estos
problemas. En esta sección se explicará cómo implementar varias de estas métricas.
1. Matriz de confusión
2. Reporte de clasificación
3. Área bajo la curva
MATRIZ DE CONFUSIÓN
La matriz de confusión es una de las métricas más intuitivas y sencillas que se utiliza
para encontrar la precisión y exactitud del modelo. Se utiliza para el problema de
clasificación donde la salida puede ser de dos o más tipos de clases.
57
Se debe aclarar que la matriz de confusión en sí misma no es una medida de
rendimiento como tal, pero casi todas las métricas de rendimiento se basan en ella y en
los números que contiene.
La matriz de confusión nos arroja como resultado que la mayoría de las predicciones
caen en la línea diagonal principal de la matriz, siendo estas predicciones correctas.
http://bit.ly/2LQkSet
REPORTE DE CLASIFICACIÓN
La librería scikit-learn proporciona un informe muy conveniente cuando se trabaja en
problemas de clasificación, este da una idea rápida de la precisión de un modelo
utilizando una serie de medidas. La función classification_report() muestra la
precisión, la sensibilidad, la puntuación F1 y el soporte para cada clase.
58
Resultado una vez ejecutado el código anterior:
http://bit.ly/2MfsS8J
http://bit.ly/2ETCL60
59
Resultado una vez ejecutado el código anterior:
El valor obtenido es relativamente cercano a 1 y mayor a 0.5, lo que sugiere que gran
parte de las predicciones realizadas han sido correctas.
http://bit.ly/2MfsS8J
http://bit.ly/2ETCL60
60
Capítulo 11
ALGORITMOS DE REGRESIÓN
1. Regresión lineal
2. Regresión polinomeal
3. Vectores de soporte regresión
4. Árboles de decisión regresión
5. Bosques aleatorios regresión
Para este análisis se tomará el conjunto de datos de publicidad que puedes encontrar
en la página de Kaggle como “Advertising Data”. De igual forma, se asume que se
conoce la parte teórica de cada algoritmo de Machine Learning y cómo usarlos, no se
explicará la base ni la parametrización de cada algoritmo.
REGRESIÓN LINEAL
La regresión lineal es una técnica paramétrica utilizada para predecir variables
continuas, dependientes, dado un conjunto de variables independientes. Es de
61
naturaleza paramétrica porque hace ciertas suposiciones basadas en el conjunto de
datos. Si el conjunto de datos sigue esas suposiciones, la regresión arroja resultados
increíbles, de lo contrario, tiene dificultades para proporcionar una precisión
convincente.
http://bit.ly/2RpwDGK
http://bit.ly/2Su2aHM
REGRESIÓN POLINOMEAL
La regresión polinomial es un caso especial de la regresión lineal, extiende el modelo
lineal al agregar predictores adicionales, obtenidos al elevar cada uno de los predictores
originales a una potencia. El método estándar para extender la regresión lineal a una
62
relación no lineal entre las variables dependientes e independientes, ha sido
reemplazar el modelo lineal con una función polinomial.
Para este algoritmo se debe realizar un paso adicional, antes de definir el modelo,
primeramente, se debe definir el grado del polinomio y transformar los datos
correspondientes a X. Realizado todo esto ahora si se puede definir el modelo,
entrenarlos y finalmente realizar una predicción.
http://bit.ly/2H889RX
63
real, se vuelve muy difícil predecir la información disponible, que tiene infinitas
posibilidades, sin embargo, la idea principal es siempre la misma: minimizar el error,
individualizar el hiperplano que maximiza el margen, teniendo en cuenta que se tolera
parte del error.
Para este algoritmo, de igual forma, se debe definir el modelo, entrenarlo y realizar una
predicción. Para este conjunto de datos se realiza, previamente, un escalamiento en los
datos ya que el modelo no era del todo efectivo con los datos originales.
http://bit.ly/2CY3xbH
http://bit.ly/2TEDkG2
64
ÁRBOLES DE DECISIÓN REGRESIÓN
Los árboles de decisión son una técnica de aprendizaje supervisado que predice valores
de respuestas mediante el aprendizaje de reglas de decisión derivadas de
características.
Igual que los casos anteriores, para este algoritmo se define el algoritmo a
implementar, seguidamente se entrena utilizando los datos de entrenamiento y
finalmente se realiza una predicción, bien sea con los datos de prueba o con nueva data.
http://bit.ly/2tHfP3U
http://bit.ly/2tStiGi
65
BOSQUES ALEATORIOS REGRESIÓN
Los bosques aleatorios es un algoritmo de aprendizaje supervisado que, como ya se
puede ver en su nombre, crea un bosque y lo hace de alguna manera aleatorio. Para
decirlo en palabras simples: el bosque aleatorio crea múltiples árboles de decisión y los
combina para obtener una predicción más precisa y estable. En general, mientras más
árboles en el bosque se vea, más robusto es el bosque.
66
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2FTuYoA
http://bit.ly/2PhGwpT
Recuerda que este algoritmo, al igual que los anteriores, se puede configurar
definiendo ciertos parámetros para mejorar el rendimiento del modelo. Todos estos
parámetros se encuentran definidos en la librería scikit-learn.
67
Capítulo 12
MÉTRICAS DE RENDIMIENTO
ALGORITMOS DE REGRESIÓN
En este capítulo se revisará las métricas más comunes para evaluar las predicciones
sobre problemas de Machine Learning de regresión.
Indica el ajuste absoluto del modelo a los datos, cuán cerca están los puntos de datos
observados de los valores predichos del modelo. El error cuadrático medio o RMSE es
una medida absoluta de ajuste.
68
Resultado una vez ejecutado el código anterior:
http://bit.ly/2TzzKNY
69
Para este parámetro un valor de 0.0 indica que no hay error, es decir las predicciones
son perfectas.
http://bit.ly/2TzzKNY
𝑹𝟐
𝑅 " indica la bondad o la aptitud del modelo, a menudo se utiliza con fines descriptivos
y muestra que también las variables independientes seleccionadas explican la
variabilidad en sus variables dependiente.
La mejor puntuación posible es 1.0 y puede ser negativa, porque el modelo puede ser
arbitrariamente peor. Un modelo constante que siempre predice el valor esperado de
“y”, sin tener en cuenta las características de entrada, obtendrá una puntuación de 0.0.
http://bit.ly/2TzzKNY
70
Capítulo 13
PROYECTO DE MACHINE
LEARNING - CLASIFICACIÓN
Este conjunto describe los registros médicos de los indios Pima y si cada paciente
tendrá un inicio de diabetes dentro de los cinco años. Como tal es un problema de
clasificación.
71
El conjunto de datos se puede encontrar en la página de Kaggle como “Pima Indians
Diabetes Database”.
Importar las librerías se puede realizar a medida que se vaya programando, lo que
recomiendo es que se coloquen todas estas líneas de códigos al principio del programa
para que sea fácil conocer los módulos que se están utilizando dentro del programa,
así como también mantener un orden en la programación.
Recuerda que para descargar los archivos de Kaggle deberás estar suscrito en la
página, esto es completamente gratis y tendrás a tu disposición un gran número de
conjuntos de datos con los que podrás practicar más adelante.
72
ENTENDIENDO LOS DATOS
El siguiente paso en el desarrollo de un proyecto de Machine Learning es el de entender
los datos con lo se cuenta. Para este paso se utilizan varias funciones que se tiene
disponible en la librería de Pandas.
73
Resultado una vez ejecutado el código anterior:
74
El conjunto de datos cuentas con 9 columnas, de las cuales 8 son las variables
independientes y la última columna corresponde a la variable dependiente.
Adicionalmente todos los datos son numéricos, entre enteros y flotantes.
75
Resultado una vez ejecutado el código anterior:
76
Resultado una vez ejecutado el código anterior:
Como podemos observar en las gráficas obtenidas los resultados son muy similares a
los obtenidos en el punto anterior.
77
SEPARACIÓN DE LOS DATOS
Conociendo el conjunto de datos que se está trabajando dentro del proyecto, se procede
a realizar la separación de los datos en dos conjuntos, el primero de variables
independientes, X, y un segundo conjunto de variable dependientes, y.
78
SELECCIONANDO CARACTERÍSTICAS
Como se observo la variable X cuenta con 8 columnas, para este caso se aplicará el
procedimiento para seleccionar las 5 características que tengan mayor influencia en la
variable dependiente. Para este ejemplo se utilizará el método de filtro.
Las 5 características que tienen mayor impacto para la variable dependiente son las
siguientes:
Columna 0 – pregnancies
Columna 1 – glucose
Columna 4 – insulin
Columna 5 – bmi
Columna 7 – age
Por lo tanto, se convierte ahora las variables X con solo estas 5 columnas.
79
Resultado una vez ejecutado el código anterior:
Para este caso solamente se estandarizarán los datos, ya que los mismos se encuentran
en distintas escalas y esto puede ocasionar errores en el análisis.
80
Se utilizará solamente un 25% del conjunto de datos como datos de prueba, por lo que
se coloca en el tamaño de la prueba 0.25.
Regresión Logística
Los anteriores datos es la representación de los datos de pruebas, originales, con los
datos obtenidos por el modelo. A continuación, se realiza el análisis respectivo con las
métricas correspondientes a los algoritmos de clasificación.
81
La primera métrica a evaluar será la de la matriz de confusión, para ello primero se
importará la librería y posteriormente la función.
Los resultados obtenidos acá son bastante satisfactorios, ya que el modelo pudo
obtener unos buenos resultados.
Ahora se evalúa los resultados, pero esta vez utilizando el reporte de clasificación
disponible en la librería scikit-learn.
82
Resultado una vez ejecutado el código anterior:
Realizado todo este procedimiento se continúa evaluando el modelo, para ello se aplica
las dos métricas que se utilizo con el anterior, primeramente, la matriz de confusión.
83
Como se puede observar los resultados obtenidos acá son un poco mejores que los
obtenidos con el anterior algoritmo.
Igual que en los casos anteriores, se evalúa el modelo obtenido por medio de la matriz
de confusión y el reporte de clasificación.
84
Naive Bayes
Definido el modelo, se verifica el error del mismo, para ello se utiliza la función de la
matriz de confusión y el reporte de clasificación.
85
Resultado una vez ejecutado el código anterior:
86
Resultado una vez ejecutado el código anterior:
87
Resultado una vez ejecutado el código anterior:
Como se puede observar, los algoritmos evaluados obtuvieron unos resultados muy
parecidos unos con otros.
En estos casos se selecciona el algoritmo que sea mucho más rápido y fácil de
implementar, que sería Regresión Logística.
No todos los casos son así, en ocasiones cuando se está trabajando con un problema de
clasificación, los resultados, después de implementar varios algoritmos, son distintos
entre ellos, por lo que acá se selecciona el algoritmo con el que se obtengan los mejores
resultados.
88
Capítulo 14
PROYECTO DE MACHINE
LEARNING - REGRESIÓN
89
IMPORTAR LAS LIBRERÍAS
El primer paso en cualquier proyecto de Machine Learning es el de importar las
librerías a utilizar. Es normal que al principio no se conozca todas las librerías a utilizar
y que se vayan agregando poco a poco, pero por lo menos se debe comenzar con las
básicas que normalmente se utilizan al implementar cualquier proyecto de Machine
Learning.
Importar las librerías se puede realizar a medida que se vaya programando, lo que
recomiendo es que se coloquen todas estas líneas de códigos al principio del programa
para que sea fácil conocer los módulos que se están utilizando dentro del programa,
así como también mantener un orden en la programación.
Recuerda que para descargar los archivos de Kaggle deberás estar suscrito en la
página, esto es completamente gratis y tendrás a tu disposición un gran número de
conjuntos de datos con los que podrás practicar más adelante.
90
ENTENDIENDO LOS DATOS
El siguiente paso en el desarrollo de un proyecto de Machine Learning es el de entender
los datos con lo se cuenta. Para este paso se utilizan varias funciones que se tiene
disponible en la librería scikit-learn.
91
Resultado una vez ejecutado el código anterior:
El conjunto de datos cuentas con 5 columnas, de las cuales 4 son las variables
independientes y la última columna corresponde a la variable dependiente.
Detallando los datos se puede observar que la primera columna es de numeración por
lo que se puede descartar cuando se haga la separación de los datos.
92
Resultado una vez ejecutado el código anterior:
93
Como podemos observar en las gráficas obtenidas los resultados son muy similares a
los obtenidos en el punto anterior.
94
Seguidamente se define los variables correspondientes a y, o variable dependiente, que
vendría siendo la última columna del conjunto de datos.
De igual forma los datos se encuentran adecuados para ser utilizados dentro de los
algoritmos de Machine Learning, por lo que no es necesario realizar un
procesamiento a los mismos.
Se utilizará solamente un 25% del conjunto de datos como datos de prueba, por lo que
se coloca en el tamaño de la prueba 0.25.
95
APLICACIÓN DE LOS ALGORITMOS DE REGRESIÓN
Se implementarán los algoritmos explicados con anterioridad y se evaluará los resultados con
respecto al error de cada uno de ellos.
Regresión Lineal
Los anteriores datos es la representación de los datos de pruebas, originales, con los
datos obtenidos por el modelo. A continuación, se realiza el análisis respectivo con las
métricas correspondientes a los algoritmos de regresión.
La primera métrica a evaluar será el error cuadrático medio, para ello primero se
importará la librería y posteriormente la función.
96
Los resultados obtenidos acá son bastante satisfactorios, recuerdo que si el valor está
más cercano a 0 quiere indicar que el modelo es bueno.
Ahora se evalúa los resultados, pero esta vez utilizando la métrica 𝑅" , importando
primero la función en scikit-learn para luego implementarla.
Esta métrica, a diferencia a la anterior, entre más cerca este el resultado a 1 es un muy
buen modelo, por lo que el resultado obtenido indica que el modelo desarrollado es
bueno.
Regresión Polinomial
97
Realizado todo este procedimiento se continúa evaluando el modelo, para ello se aplica
las dos métricas que se utilizo con el anterior, primeramente, el error cuadrático medio.
Como se puede observar los resultados obtenidos acá son muy parecidos al anterior
modelo.
98
Resultado una vez ejecutado el código anterior:
Igual que en los casos anteriores, se evalúa el modelo obtenido por medio del error
cuadrático medio y la métrica 𝑅" .
Si se observa los resultados de las métricas de evaluación no son para nada buenos, por
lo que se puede deducir que este no es el mejor algoritmo para este conjunto de datos.
99
Resultado una vez ejecutado el código anterior:
Definido el modelo, se verifica el error del mismo, para ello se utiliza la función del
error cuadrático medio y la métrica 𝑅" .
100
Resultado una vez ejecutado el código anterior:
Como se puede observar, los algoritmos evaluados obtuvieron unos resultados muy
parecidos unos con otros, exceptuando el de vectores de soporte regresión. Esto no
quiere decir que este algoritmo sea malo, sino que simplemente no es el más adecuado
para este conjunto de datos.
Se puede elegir cualquier algoritmo con el que se obtuvieron buenos resultado, en caso
de que se requiera un algoritmo que sea rápido y fácil de implementar se puede elegir
el de Regresión Lineal o el de Regresión Polinomial.
101
Capítulo 15
CONTINUAR APRENDIENDO
MACHINE LEARNING
En este capítulo encontrarás áreas en las que podrás practicar las nuevas habilidades
adquiridas de Machine Learning con Python.
102
CONJUNTOS DE DATOS PARA PRÁCTICA
Lo importante para mejorar las habilidades aprendidas dentro del libro es seguir
practicando. En la web puedes encontrar varios conjuntos de datos que puedes utilizar
para practicar los conocimientos y, a su vez para crear un portafolio de proyectos para
mostrar dentro de la hoja de vida.
El primer lugar donde puedes encontrar conjuntos de datos que puedes utilizar en
proyectos de Machine Learning es en el repositorio de Machine Learning de UCI
(Universidad de California en Irvine). Los conjuntos de datos de este repositorio son
estandarizados, relativamente limpios, bien entendidos y excelentes para que se use
como conjuntos de datos de práctica.
Con este repositorio se puede construir y desarrollar aún más las habilidades en el área
de Machine Learning. También es útil para empezar a crear un portafolio que puede
ser mostrado a futuros empleadores demostrando que puede ser capaz de entregar
resultados en proyectos de Machine Learning utilizando Python.
Otra página que cuenta con muy buenos conjuntos de datos para practicar es Kaggle.
Acá, puedes descargar y practicar las habilidades aprendidas, pero también puedes
participar en competencias. En una competencia, el organizador te proporciona un
conjunto de datos de entrenamiento, un conjunto de datos de prueba en el que debes
hacer predicciones, una medida de rendimiento y un límite de tiempo. Luego, los
competidores trabajan para crear el modelo más preciso posible. Los ganadores a
menudo reciben premios en efectivo.
Estas competencias a menudo duran semanas o meses y pueden ser muy divertidas.
También ofrecen una gran oportunidad para probar tus habilidades con herramientas
de Machine Learning con conjuntos de datos que a menudo requieren mucha limpieza
y preparación. Un buen sitio para comenzar serían las competencias para
principiantes, ya que a menudo son menos desafiantes y tienen mucha ayuda en forma
de tutoriales para comenzar.
No importa la página que se utilice para obtener los conjuntos de datos, los pasos que
se deben seguir para mejorar las habilidades de Machine Learning son los siguientes:
103
2. Usar las librerías y funciones aprendidas en este libro para trabajar a través del
conjunto de datos y desarrollar un modelo preciso.
3. Escribir el flujo de trabajo y las conclusiones obtenidas para que puedan ser
consultados más adelante e inclusive si es posible compartir esta información en
algún sitio web, un lugar recomendado es en Github.
104
Capítulo 16
OBTENER MÁS
INFORMACIÓN
Este libro es solo el comienzo de tu camino para aprender Machine Learning con
Python. A medida que se desarrolle nuevos proyectos, es posible que necesites ayude.
En este capítulo se indica algunas de las mejores fuentes de ayuda de Python y Machine
Learning que puede encontrar.
CONSEJO GENERAL
En general, en la página LigdiGonzalez podrás encontrar mucha más información
sobre Machine Learning. Desde información teórica como ejercicios prácticos, de esta
forma podrás aumentar tus habilidades dentro de este tema. Toda la información
contenida acá es en español.
105
Para mayor información se puede revisar la siguiente información:
http://bit.ly/2JbWcaX
De igual forma, la documentación oficial de Python y SciPy es excelente. Tanto las guías
de usuario como la documentación de API son una excelente ayuda para aclarar dudas.
Acá podrás tener una comprensión más completa de la configuración más profunda
que puedes explorar. La información publicada es en inglés.
Otro recurso muy útil son los sitios de preguntas y respuestas, como StackOverflow. Se
puede buscar mensajes de error y problemas que se tenga y encontrar ejemplos de
códigos e ideas que pueden ayudar en los proyectos. Esta página se encuentra tanto en
español como en inglés, aunque en está ultima se encuentra la mayor cantidad de
información.
Notas de SciPy:
http://scipy-lectures.org/
106
muchos ejemplos, con sus respectivos códigos, que pueden ser bastante útil para
implementar en los proyectos propios.
107
Ligdi González
2020
_______________________________
Machine Learning
con Python
Aprendizaje Supervisado
108