Introducci贸n al curso

1

Introducci贸n al curso de Machine Learning Aplicado con Python

C贸mo definir un problema de Machine Learning

2

Importancia de definir el problema en Machine Learning

3

Predecir el ingreso de pel铆culas de IMDB

4

Terminolog铆a de Machine Learning

5

Materiales del curso: Notebooks de Jupyter

El ciclo de ingenier铆a de Machine Learning

6

El ciclo de Machine Learning

Montar un ambiente de trabajo Pydata

7

Configuraci贸n del ambiente de trabajo con Google Collab

8

Qu茅 es y c贸mo se utiliza Numpy

9

Arrays en Numpy

10

Operaciones aritm茅ticas en Numpy

Preparaci贸n de los datos

11

Cargar los datos necesarios para el proyecto

12

Inspecci贸n de los tipos de datos

13

Inspecci贸n cuantitativa y de salud de los datos

14

Limpiar los datos

15

Manejo de datos faltantes

Modelaci贸n y evaluaci贸n

16

El objeto estimador de Scikit-Learn

17

Implementar un modelo de regresi贸n (Lasso)

18

Ajustando Modelos de Machine Learning, Underfitting y Overfitting

19

Evaluando el modelo

Feature Engineering

20

Feedback del modelamiento

21

An谩lisis exploratorio

22

Continuando con el an谩lisis exploratorio

23

Creaci贸n de features

24

Creando m谩s features

25

Selecci贸n de features y la maldici贸n de la dimensionalidad

Modelos y Evaluaci贸n m谩s avanzada

26

Cross Validation

27

Selecci贸n de modelos

28

Curvas de aprendizaje

29

Introducci贸n a Ensembles y 脕rboles de Decisi贸n

30

Random Forest y Gradient Boosting Trees

31

Optimizaci贸n de hiperpar谩metros

32

Conclusiones del curso

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Cargar los datos necesarios para el proyecto

11/32
Recursos

Las librer铆as con las que vamos a trabajar y que tenemos que cargar son:

a) Numpy
b) Pandas
c) Matplotlib.pyplot
d) Seaborn

Aportes 87

Preguntas 11

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

隆Me encanta!
Para los que estamos trabajando en Google colab, esta forma me funcion贸 muy bien para llamar los datos:

movies = pd.read_csv('https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv?raw=true',encoding='utf-8')

type(movies)

Quienes esten usando Colab y Windows, y a煤n no hayan podido subir el archivo peliculas.csv:

**from google.colab import files
files.upload() **
Con esto, tendr谩n el bot贸n tradicional para subir archivos y, una vez seleccionado podr谩n continuar con la siguiente instrucci贸n:
movies = pd.read_csv(鈥/content/peliculas.csv鈥,encoding=鈥榰tf-8鈥)

Tutorial con explicaci贸n aqu铆 (Gracias @cmcamachoz!!!):
https://www.adictosaltrabajo.com/2019/06/04/google-colab-python-y-machine-learning-en-la-nube/

[SOLUCI脫N]
Si no les ha funcionado en Google Colaboraty ya que el enlace de git es la p谩gina, deben cargar el link del raw (archivo bruto)

Este es el link que obtendr铆amos al navegar por git :
https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv

Hay dos opciones:

  1. Poner un ?raw=true al final de la url
    https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv?raw=true
import pandas as pd

movies = pd.read_csv('https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv?raw=true',encoding='utf-8')
  1. Reemplazar la palabra blob por raw
    https://github.com/JuanPabloMF/datasets-platzi-course/raw/master/datasets/peliculas.csv
import pandas as pd

movies = pd.read_csv('https://github.com/JuanPabloMF/datasets-platzi-course/raw/master/datasets/peliculas.csv',encoding='utf-8')

No encontraba en el google collaborator como llamar el archivo csv de github. Me fui al repositorio

Abri los enlaces datasets/
Despues peliculas.csv
Y le di download. La url que me mostr贸 all铆 la copi茅 y la puse en el notebook

movies = pd.read_csv('https://raw.githubusercontent.com/JuanPabloMF/datasets-platzi-course/master/datasets/peliculas.csv')```


Y me ley贸 el archivo. Nunca he trabajado con github. Otra cosa por aprender

Este video muestra varias formas de importar archivos al dataframe de Google Collab. Hay varios detalles que no se ven en la clase
https://www.youtube.com/watch?v=nDqtSZma38k


Resumen conceptual:

  1. Numpy: Es una extensi贸n de Python, que le agrega mayor soporte para vectores y matrices, constituyendo una biblioteca de funciones matem谩ticas de alto nivel para operar con esos vectores o matrices鈥
  2. Pandas: Es una biblioteca de software escrita como extensi贸n de NumPy para manipulaci贸n y an谩lisis de datos para el lenguaje de programaci贸n Python. En particular, ofrece estructuras de datos y operaciones para manipular tablas num茅ricas y series temporales.
  3. Matplotlib: Es una biblioteca completa para crear visualizaciones est谩ticas, animadas e interactivas en Python.
  4. Seaborn: Es una biblioteca de visualizaci贸n de datos de Python basada en matplotlib. Proporciona una interfaz de alto nivel para dibujar gr谩ficos estad铆sticos atractivos e informativos.

https://ligdigonzalez.com/introduccion-a-numpy-python-1/
Induccion a la libreria numpy. Es bueno.

Buena explicaci贸n en Google Colaboratory no tuve problema alguno, todo corri贸, simplemente sub铆 el archivo pel铆culas.csv a la plataforma. .
Para los que est谩n usando VSC en W10, expresen bien la ruta y colocan r adelante:

Para que puedan descargar datasets, pueden registrarse en kaggle, all铆 pueden ver hasta competencias si quieren participar, y datasets disponibles para que puedan realizar los mismos comandos que estamos aprendiendo.

genial!!

<h1>Los que descargaron los files al PC y usan Colab. ponen estas dos lineas para buscar la ruta del archivo</h1>
from google.colab import files 
files.upload()

#Luego lo cargan con el siguiente comando

pd.read_csv('nombre_archivo_a_usar.csv')

馃槂

Para los que usan colab y y quieren cargar el dataset desde las carpetas del drive

from google.colab import drive
drive.mount('/content/drive/')

Les deber谩 aparecer unas indicaciones con un URL y un espacio para un c贸digo de autorizaci贸n que obtienen del URL.

Una vez hagan esto pueden acceder a sus archivos en su drive desde colab

movies = pd.read_csv(鈥榙rive/My Drive/platzi/peliculas.csv鈥, encoding = 鈥榰tf-8鈥)

Funciona correctamente de la siguiente manera;

movies = pd.read_csv('C:/Users/Usuario/Documents/platzi/ML/peliculas.csv', encoding='utf-8')

En Colab puedes subir el archivo de manera Manual. "Sin c贸digo solo tienes que darle Click Upload"
super sencillo. y lo puedes poner en la carpeta donde mejor te guste.
Una forma de hacerlo se muestra aqu铆 en StackOverFlow
https://stackoverflow.com/questions/53630073/google-colaboratory-import-data-stack-size-exceeded
Luego para llamar ese Archivo. "En mi caso lo guarde en content y DataBase"
movies = pd.read_csv(鈥/content/DataBase/peliculas.csv鈥,encoding=鈥榰tf-8鈥)

Para Google Colab

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

movies = pd.read_csv('https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv?raw=true',encoding='utf-8')
type(movies)
movies.head()
movies.shape
movies.columns
movies.index
columna1 = movies['movie_title']
columna1.head()
linea = movies.loc[10,:]
linea
movies.loc[:,'movie_title']```



Se logro el objetivo, debo ser autocritico tambien y decir que es tarea de nosotros los estudiantes profundizar en el estudio de la informacion de las librerias usadas, sin embargo, tambi茅n creo que Platzi deberia hacer un esfuerzo por profundizar un poco en esa teor铆a, seria bueno tambien aprender a buscar los datos y construir el csv o bueno al menos lo digo en mi caso que es la primera vez que veo estos temas.

LOC vs ILOC
4 formas de obtener el mismo resultado (Pirates of the Caribbean: At World鈥檚 End\xa0)

movies.iloc[1,0]
movies.loc[1,'movie_title']
movies.iloc[1][0]
movies.loc[1]['movie_title']
%load_ext google.colab.data_table

Incluir eso despu茅s de importar Pandas, para visualizar mejor las tablas.

Me sale esto

ParserError: Error tokenizing data. C error: Expected 19 fields in line 66, saw 20```

Y mi c贸digo es este


movies = pd.read_csv(r鈥機:\Users\vmcar\OneDrive\Escritorio\Machine learning\vol\datasets\peliculas.csv鈥, encoding=鈥榰tf-8鈥)```

Me podr铆an ayudar a saber cu谩l es el problema
Gracias de antemano

Quien est茅 en Jupiter, una vez tenga los datos en su pc, puede hacerlo as铆:
primero lo subimos

luego lo llamamos

Buen d铆a,

Pregunta, porque al llamar el archivo, al profesor le funciona solo poniendo 鈥/vol/datasets鈥? Veo que le falta la primera parte de la URL y tiene los \ invertidos a los que salen normalmente cuando se copia una URL del explorador de archivos.

Gracias.

Aqu铆 la linea que buscan
movies = pd.read_csv(鈥https://github.com/JuanPabloMF/datasets-platzi-course/blob/master/datasets/peliculas.csv?raw=true鈥,encoding =鈥榰tf-8鈥)
type(movies)

Entendido

Creo que hasta el momento ha sido el mejor profesor que he visto!

A parte de LOC existe ILOC pero en este caso, iloc utiliza n煤meros. Es decit, aqu铆 solo sirve si te sabes las posiciones de loas features y/o rows

muy buena explicacion, aprendi todo lo que no me ense帽aron mis docentes en un solo video de 10 minutos sobre el dataframe y como acceder a sus datos 鈥 掳!!! 馃槃

Pandas es un paquete de Python que proporciona estructuras de datos similares a los dataframes de R. Pandas depende de Numpy, la librer铆a que a帽ade un potente tipo matricial a Python.

Todo Perfecto

Buenas librerias! Ya no hay mas excusas para no hacer cosas geniales!

Excelente, Gracias.

Todo funcionando!

Interesante

Yo estoy trabajando a la par Google Colab y Jupyter Lab:

GC (Adjuntando el archivo):

from google.colab import files
uploaded = files.upload()

movies = pd.read_csv('peliculas.csv',encoding='utf-8')

JL(Dejando los CSV en al mismo nivel que los archivos, en mi caso es C:\Users\Global):

movies = pd.read_csv('peliculas.csv',encoding='utf-8')

Dure como 2 horas en video tutoriales en pandas, y que calidad de libreria , gracias profe

Usando Google Drive para cargar el archivo a google colab podemos usar lo siguiente.
https://buomsoo-kim.github.io/colab/2018/04/16/Importing-files-from-Google-Drive-in-Google-Colab.md/

  • dataFrame pandas structure: contiene un numpy array de dos dimensiones, Posee un index de columnas y un index general de las filas.
  • Los 铆ndices nos permiten acceder de forma f谩cil a filas y columnas.

tengo problemas no me corre el codigo apesar que lo escribo como tu, no se que hacer lo escribi asi y nada que me aparece
movie = pd.read_csv(鈥楥:\Users\HP\Desktop\Biblioteca virtual\Notas de maching learning\lista d epeliculas para ejercicio leccion\peliculas.csv鈥, encoding=鈥榰tf=8鈥)

Me funciona si llamo el archivo desde la url, pero desde la unidad de disco local c:\ me genera un error

genial herramienta鈥

Con colab
from google.colab import files
files.upload()

Excelente explicaci贸n para empezar

Excelente ! 馃槃

Esas herramientas de visualizaci贸n son muy poderosas

estoy trabajando en jupyter y excelente plataforma una que otra dificultad pero con los aportes de los compa帽eros ha sido facil gracias a todos

Muy amplia las funcionalidades que tiene鈥

super

Azucar sintactico 馃槢

Hasta aqui se puede ver la simplicidad con que se puede acceder a los datos que tenemos en el dataframe y eso es gracias al uso de las librerias, buen aporte muy bien explicado y esperemos poder aplicarlo a nuestros problemas

En lo unico que me enrede un poco fue en cargar el dataframe peliculas.csv, pero despues de hacerlo todo funciono perfectamente trabajando con jupyter.

Trabaje con anaconda,todo bien explicado se ve como facil

Si llamo el archivo peliculas.csv desde la URL funciono bien, desde el disco duro realice lo siguiente porque la ruta de llamdo al archivo no me funcionaba.
En Win10 en C, dentro de la carpeta usuarios cree una carpeta llamada colibri y alli copie el archvio .csv y en jupyter copie la linea asi.
movies = pd.read_csv(鈥/Users/colibri/peliculas.csv鈥,encoding=鈥榰tf-8鈥) # funciono bien.

Buen contenido!

Pandas DataFrame is two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns). A Data frame is a two-dimensional data structure, i.e., data is aligned in a tabular fashion in rows and columns. Pandas DataFrame consists of three principal components, the data, rows, and columns.

Para aquellos que necesiten ubicarse y reconocer en que carpeta se encuentran actualmente para colocar el path o ruta de csv, pueden usar:

import os
os.getcwd()

He visto este video varias veces, ya que quer铆a tener la dimensi贸n de todo lo que se indica aqu铆. Es super importante estos fundamentos ya que realmente la calidad de la IA que creemos depende mucho de como el humano dimensiona y revisa los datos.

Genial Tema鈥 se entiende bien鈥 sigamos adelante

Muy buena la clase. Gracias por los aportes de los compa帽eros para Google Colab en Windows. Yo utilic茅 este c贸digo para acceder a la informaci贸n csv.

movies = pd.read_csv('https://github.com/JuanPabloMF/datasets-platzi-course/raw/master/datasets/peliculas.csv',encoding='utf-8')
type(movies)

Excelente!!!

Una opci贸n para cargar el archivo desde Colab, es copiar el archivo .csv en la carpeta Colab Notebooks de Google Drive y cargar en nuestro colab el contenido de nuestro drive, luego seleccioanmos el archivo .csv y copiamos el path.

movies = pd.read_csv('/content/drive/My Drive/Colab Notebooks/peliculas.csv',encoding='utf-8')
type(movies)
movies.head()

Espero les sirva de guia.

excelente

Asi funcion贸 en Colab.
movies = pd.read_csv(鈥https://raw.githubusercontent.com/JuanPabloMF/datasets-platzi-course/master/datasets/peliculas.csv鈥)
movies.head()
Me encanta que va explicando uno por uno. Gran curso

Excelente el material y la forma de transmitirlo, vamos bien.

tengan en cuenta, en el video llama a pandas de la siguiente forma

import pandas as pd 

sin embargo luego usa

pandas.core.frame.DataFrame

tengas en cuenta, que declaramos a pandas como pd, por lo tanto tenemos es que usar

`pd.core.frame.DataFrame

En caso que una columna carezca de t铆tulo o r贸tulo, la llamada a la columna c贸mo se hace? Quiz谩 suene absurda esa pregunta. Aunque la respuesta evidente que me viene a la mente es 鈥渄arle un nombre鈥. 驴Es as铆?
Y, en caso de tener dos columnas que comparten un mismo t铆tulo, 驴se hace necesario asignar nombres diferentes?
No me tiren piedras!

Gracias Lorena, funcion贸 de esta manera, aunque no entiendo el significado del ?raw=true, por si de pronto alguien puede ampliar algo al respecto

En Google Colab hay que subir primero el archivo as铆 y luego lo llamas directamente, es m谩s c贸modo, pero esta operaci贸n hay que hacerla cada vez que entras y sales de Colab.
![](

quienes esten en collab pues recuerden que el buscara leer una archivo tipo csv (separated coma value). Github lo guarda anteponiendole un raw. https://raw.githubusercontent.com/JuanPabloMF/datasets-platzi-course/master/datasets/peliculas.csv

entonces en collab simplemente:
pd.read_csv(鈥https://raw.githubusercontent.com/JuanPabloMF/datasets-platzi-course/master/datasets/peliculas.csv鈥)

Muchachos les comparto una informacion muy buena sobre Dataframes y manejo de indices y seleccion:

Pandas en Python

Es un paquete de Python que proporciona estructuras de datos similares a los dataframes de R. Pandas depende de Numpy, la librer铆a que a帽ade un potente tipo matricial a Python. Los principales tipos de datos que pueden representarse con pandas son:

-Datos tabulares con columnas de tipo heterog茅neo con etiquetas en columnas y filas.
-Series temporales.
Adem谩s, este paquete es una de las mejores opciones para trabajar con datos tabulares en Python es usar la Python Data Analysis Library (alias Pandas). La biblioteca Pandas provee estructuras de datos, genera gr谩ficos de alta calidad con matplotlib y se integra de buena forma con otras bibliotecas que usan arrays de NumPy (la cual es otra biblioteca de Python).

La sintaxis NombreDeLaBiblioteca.NombreDeLaFuncion. Agregar el nombre de la biblioteca con un punto antes del nombre de la funci贸n le indica a Python donde encontrar la funci贸n.

CSV son las siglas para Comma-Separated Values, valores separados por coma, y es una manera com煤n de guardar datos

Un DataFrame es una estructura de datos con dos dimensiones en la cual se puede guardar datos de distintos tipos (como caract茅res, enteros, valores de punto flotante, factores y m谩s) en columnas.

Si quieren que realmente les salga la l铆nea 10 con el segundo m茅todo 鈥渕谩s numpyesco鈥 que explica el profe, utilicen el siguiente c贸digo:

linea = movies.loc[:,'movie_title'].head(11)
linea

Me ha funcionado en Jupyter (notebook cl谩sico) corri茅ndolo desde la consola de windows. Para ello instalan desde consola con los siguientes comandos:

pip install notebook
pip install numpy
pip install pandas
pip install matplotlib
pip install seaborn

Luego para correr el notebook cl谩sico, ejecutan la siguiente instrucci贸n desde consola:

jupyter notebook

Para los que est茅n trabajando en Google Collab y hayan tenido el problema con el c贸digo de carga del archivo que da el profesor:
A mi personalmente no me funcion贸 este.

movies =pd.read_csv('..vol/datasets/peliculas.csv',enconding='utf8')

El procedimiento para que funcione es el siguiente:

  1. descargamos en nuestra computadora los archivos que aparecen en la pesta帽a izquierda de este curso.
  2. Los renombramos para que queden con nombres sencillos f谩ciles para la ruta.
  3. ponemos el siguiente c贸digo en nuestro ordenador para poder subir los archivos descargados.
from google.colab import files
files.upload() 

Nos aparecer谩 un bot贸n para subir los archivos.
Este procedimiento lo hacemos con cada archivo que subamos.
4. Luego escribimos el siguiente c贸digo:

movies= pd.read_csv('/content/peliculas.csv',encoding='utf-8')

nuestro archivo debe haber quedado renombrado peliculas.csv para que puedo funcionar el codigo de arriba.

隆Y listo! podemos continuar con la clase.

Bendiciones.

a1 = np.array([1,2,3]) #con una lista
type(a1)```
a2 = np.arange(10)  #Metodo similar al de range in python normal
a2```
#como acceder a una linea
linea=movies.loc[10,:]
linea```
movies.loc[:,'movie_title']```

Un buen hilo para saber la diferencia entre iloc y loc - https://stackoverflow.com/questions/31593201/how-are-iloc-and-loc-different#:~:text=loc gets rows (or%20columns,not%20present%20in%20the%20index.

Me sale esto

ParserError: Error tokenizing data. C error: Expected 19 fields in line 66, saw 20

Y mi c贸digo es este

movies = pd.read_csv(r鈥機:\Users\vmcar\OneDrive\Escritorio\Machine learning\vol\datasets\peliculas.csv鈥, encoding=鈥榰tf-8鈥)```

Me podr铆an ayudar a saber cu谩l es el problema
Gracias de antemano

Conocer el directorio actual o en que carpeta esta ubicado

<import os>
<os.getcwd()>

El resultado deber谩 ser tu ubicaci贸n ejemplo 鈥楥:\Users\Desktop鈥

Para cambiar le directorio o la ubicaci贸n donde tengo los datos

<path = 鈥楥:\\Users\\Desktop\\Datasets鈥>
<os.chdir( path )>
<path>

Vuelvo y consulto el directorio actual o en que carpeta esta ubicado

<os.getcwd()>

Deber谩 aparecer la nueva ubicaci贸n 鈥楥:\Users\Mi nombre\Desktop\Datasets鈥>

Nota: path es el nombre de la variable donde quiero guardar la ruta
Si no funciona los pasos anteriores prueba cambiar los el car谩cter \ por /

para los que trabajan en google colad pueden descargar los archivos de platzi y subir los archivos a su entorno de trabajo en google colab

despues solo usen el pd.read_csv()

ejemplo
movies = pd.read_csv(鈥減eliculas.csv鈥)

Cargar los datos necesarios para el proyecto
Las librer铆as con las que vamos a trabajar y que tenemos que cargar son:

a) Numpy
b) Pandas
c) Matplotlib.pyplot
d) Seaborn




Excelente, me gusta la clase.

Otra forma de llamar el archivo desde el git es:

peliculas=pd.read_csv(鈥楥://Users//HP//Downloads//peliculas_3169fc13-a8ff-4b9a-b125-3a94c1e5f6d4.csv鈥)

ERROR! Session/line number was not unique in database. History logging moved to new session 59

FileNotFoundError Traceback (most recent call last)
<ipython-input-5-40ee35cbf385> in <module>()
----> 1 peliculas=pd.read_csv(鈥楥://Users//HP//Downloads//peliculas_3169fc13-a8ff-4b9a-b125-3a94c1e5f6d4.csv鈥)

4 frames
/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py in init(self, src, **kwds)
1915 kwds[鈥渦secols鈥漖 = self.usecols
1916
-> 1917 self._reader = parsers.TextReader(src, **kwds)
1918 self.unnamed_cols = self._reader.unnamed_cols
1919

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.cinit()

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: [Errno 2] File b鈥機://Users//HP//Downloads//peliculas_3169fc13-a8ff-4b9a-b125-3a94c1e5f6d4.csv鈥 does not exist: b鈥機://Users//HP//Downloads//peliculas_3169fc13-a8ff-4b9a-b125-3a94c1e5f6d4.csv鈥