Tu Primer Modelo de Machine Learning | Data Science con Python | Inteligencia Artificial

Javi Data Science
16 Feb 202414:41

Summary

TLDREste video ofrece una guía detallada sobre cómo crear un modelo de Machine Learning desde cero. El presentador, Javier, un matemático y científico de datos, utiliza un conjunto de datos de propiedades de Melbourne para enseñar los conceptos fundamentales. Inicia importando pandas para manipular y explorar los datos, identifica y maneja valores faltantes, y luego utiliza características como el número de habitaciones y baños, así como la latitud y longitud para predecir el precio de las propiedades. Javier selecciona un Decision Tree Regressor como modelo inicial, lo entrena y evalúa su rendimiento utilizando el Mean Absolute Error (MAE). Para mejorar la calidad del modelo, discute la técnica de train-test split para evitar el overfitting y sugiere ajustar parámetros como el número de hojas en el árbol de decisión. Finalmente, compara el rendimiento del Decision Tree con un Random Forest, encontrando que este último ofrece mejores resultados sin ajustar parámetros. El video concluye con una llamada a la acción para que los espectadores den like, dejen comentarios y se suscriban para más contenido educativo.

Takeaways

  • 📈 El vídeo es una guía para crear un primer modelo de Machine Learning paso a paso.
  • 📊 Javier, el presentador, es un matemático y científico de datos que comparte conocimientos sobre Data Science.
  • 🏠 Se utiliza un conjunto de datos de casas en Melbourne para示范 el proceso de análisis y modelado.
  • 📄 Se emplea pandas, una biblioteca de Python, para leer y manipular archivos CSV.
  • 🧐 Se realiza una exploración inicial de los datos para entender la estructura y las características relevantes.
  • 🔍 Se busca identificar y manejar los valores faltantes (missing values) en los datos.
  • 🚫 Se decide eliminar filas con valores faltantes para simplificar el proceso.
  • 🌳 Se selecciona un modelo de Decision Tree Regressor para hacer predicciones sobre el precio de las casas.
  • ⚙️ Se discuten los parámetros del modelo y su efecto en el overfitting y underfitting.
  • 📝 Se utiliza el mean absolute error (MAE) como métrica para evaluar el rendimiento del modelo.
  • 🔄 Se realiza una división en conjuntos de entrenamiento y validación para evitar el overfitting.
  • 🌳 Se sugiere que el modelo Decision Tree puede ser ajustado con diferentes parámetros, como el número de hojas.
  • 🔧 Se compara el rendimiento del modelo Decision Tree con un modelo Random Forest, obteniendo mejores resultados con este último.

Q & A

  • ¿Qué es lo que Javier quiere enseñar en este vídeo?

    -Javier quiere enseñar paso a paso cómo crear el primer modelo de Machine Learning utilizando un conjunto de datos de casas en Melbourne.

  • ¿Qué biblioteca de Python se utiliza para leer archivos CSV?

    -Se utiliza la biblioteca 'pandas' para leer archivos CSV en Python.

  • ¿Qué función de pandas se utiliza para leer un archivo CSV?

    -La función 'read_csv' de pandas se utiliza para leer un archivo CSV.

  • ¿Qué hace la función 'describe' en un DataFrame de pandas?

    -La función 'describe' muestra un resumen de las estadísticas descriptivas de las columnas numéricas de un DataFrame.

  • ¿Cómo se identifican los valores faltantes en un DataFrame de pandas?

    -Los valores faltantes en un DataFrame de pandas se identifican con 'NaN' (Not a Number).

  • ¿Qué hace el método 'dropna' en un DataFrame de pandas?

    -El método 'dropna' se utiliza para eliminar filas o columnas que contengan valores faltantes ('NaN').

  • ¿Qué es un Decision Tree Regressor y cómo se utiliza en Machine Learning?

    -Un Decision Tree Regressor es un modelo de Machine Learning que utiliza una estructura en forma de árbol para predecir valores numéricos basándose en características o predictores.

  • ¿Qué es el MAE en el contexto de Machine Learning?

    -El MAE (Mean Absolute Error) es una métrica que mide el error absoluto medio cometido por un modelo en sus predicciones.

  • ¿Qué es el overfitting en Machine Learning y cómo se puede prevenir?

    -El overfitting es cuando un modelo se ajusta demasiado bien a los datos de entrenamiento y, por lo tanto, no generaliza bien a nuevos datos. Se puede prevenir ajustando los parámetros del modelo, como el número de hojas en un Decision Tree, o utilizando técnicas como el train-test split.

  • ¿Cómo se realiza una división en un conjunto de datos para entrenamiento y validación en Machine Learning?

    -Se utiliza la técnica del 'train-test split', que divide el conjunto de datos en dos partes: una para entrenar el modelo y otra para validar su desempeño.

  • ¿Qué es un Random Forest y cómo difiere de un Decision Tree Regressor?

    -Un Random Forest es un modelo de Machine Learning que consiste en una colección de árboles de decisión. Difiere del Decision Tree Regressor en que utiliza múltiples árboles para hacer predicciones, lo que generalmente lleva a una mejor precisión y menor riesgo de overfitting.

  • ¿Por qué es importante ajustar los parámetros de un modelo de Machine Learning?

    -Ajustar los parámetros de un modelo de Machine Learning es importante para encontrar el mejor equilibrio entre la capacidad de aprendizaje y la capacidad de generalizar a nuevos datos, evitando así el overfitting o el underfitting.

Outlines

00:00

😀 Introducción al Modelado de Machine Learning

El vídeo comienza con Javier, un científico de datos, que presenta el proceso de creación de un modelo de Machine Learning paso a paso. Comienza importando la biblioteca pandas para leer un conjunto de datos CSV de propiedades en Melbourne. Luego, utiliza la función 'read_csv' para cargar los datos y se asegura de que estén separados por comas y en formato UTF-8. Después de cargar los datos, utiliza 'describe' para obtener una visión general de las características numéricas y detecta valores faltantes, los cuales decide eliminar para limpiar el conjunto de datos.

05:00

🤖 Preparación y Selección de Variables

Javier procede a explicar cómo se seleccionan las variables para el modelo, eligiendo 'price' como la variable objetivo y 'rooms', 'bathroom', 'land size', 'latitude' y 'longitude' como características predictoras. Estas variables numéricas son importantes para predecir el precio de una propiedad. Luego, utiliza técnicas para manejar los valores faltantes, optando por eliminar filas con datos faltantes, reduciendo el tamaño del conjunto de datos pero mejorando su calidad.

10:01

📈 Entrenamiento del Modelo y Evaluación Inicial

Para entrenar el modelo, Javier decide utilizar un 'decision tree regressor', un modelo que se divide en características y luego predice el valor de la propiedad. Entrena el modelo con 6000 instancias y luego evalúa sus predicciones en las primeras cinco propiedades, obteniendo una precisión del 100%. Sin embargo, utiliza el 'mean absolute error' (MAE) para medir el rendimiento del modelo, encontrando un error de 1115, lo que indica una buena precisión en las predicciones.

🔍 Detección de Overfitting y Soluciones

Javier discute el problema del overfitting, donde el modelo se ajusta demasiado bien a los datos de entrenamiento y no generaliza bien a nuevos datos. Para solucionarlo, utiliza la técnica de 'train-test split', separando los datos en un conjunto de entrenamiento y uno de validación. Evalúa el modelo en el conjunto de validación y encuentra un error más grande, lo que indica que el modelo no es tan preciso como parecía. Propone ajustar los parámetros del modelo para prevenir el overfitting y mejora el MAE a 266 con 50 hojas en el árbol de decisión.

🚀 Comparación con un Modelo Random Forest

Para mejorar el modelo, Javier sugiere probar con un 'Random Forest', que es una extensión del modelo de árbol de decisión que utiliza múltiples árboles para predecir el valor. Sin ajustar los parámetros, el modelo Random Forest mejora el MAE a 195, lo que indica que este modelo es más efectivo para predecir precios de propiedades en comparación con el modelo de árbol de decisión simple.

Mindmap

Keywords

💡Machine learning

Machine learning es un campo de la inteligencia artificial que se enfoca en el desarrollo de algoritmos y estadísticas que permiten a las máquinas aprender y mejorar a partir de los datos sin la necesidad de un programador para instruirlas explícitamente. En el video, se utiliza para crear un modelo que prediga el precio de las casas en función de diferentes características.

💡CSV

CSV (Comma-Separated Values) es un formato de archivo de datos que utiliza comas para separar los valores en una línea y saltos de línea para separar los registros. En el video, se menciona el uso de un archivo CSV que contiene datos de casas en Melbourne para entrenar el modelo de machine learning.

💡Pandas

Pandas es una biblioteca de programación de código abierto escrita en Python, especialmente diseñada para la manipulación de datos. En el video, se utiliza para leer y manipular los datos CSV, preparándolos para el análisis y el entrenamiento del modelo.

💡Missing values

Missing values, o valores faltantes, son datos en los que no se proporciona información para un registro específico. En el contexto del video, son un problema para el entrenamiento del modelo, ya que el modelo no puede aprender de los datos faltantes. Se aborda la solución de eliminar filas con valores faltantes para 'limpiar' los datos.

💡Describe

Describe es una función en Pandas que proporciona una descripción general de las columnas numéricas de un DataFrame, incluyendo estadísticas como la media, el desviación estándar y los valores mínimos y máximos. En el video, se utiliza para obtener una visión rápida de las características numéricas de los datos de las casas.

💡Decision Tree

Un Decision Tree es un modelo de machine learning que funciona dividiendo los datos en nodos, basándose en ciertas características, y luego tomando decisiones para clasificar o predecir el resultado. En el video, se utiliza un Decision Tree Regressor para predecir el precio de las casas.

💡Features

En machine learning, las features son las características o atributos de los datos que se utilizan para entrenar el modelo. En el video, las features incluyen el número de habitaciones, baños, tamaño de la propiedad, latitud y longitud, que se utilizan para predecir el precio de las casas.

💡Overfitting

El overfitting ocurre cuando un modelo de machine learning se ajusta demasiado bien a los datos de entrenamiento, lo que puede llevar a un rendimiento peor en datos no vistos previamente. En el video, se discute cómo el modelo podría estar sobreajustado si predice los precios de casas que ya ha visto durante el entrenamiento.

💡Train-test split

El train-test split es una técnica utilizada en machine learning para dividir los datos en dos conjuntos: uno para entrenar el modelo y otro para evaluar su rendimiento. En el video, se utiliza para separar los datos en conjuntos de entrenamiento y validación, permitiendo al modelo hacer predicciones en datos que no vio durante el entrenamiento.

💡Mean Absolute Error (MAE)

El Mean Absolute Error (MAE) es una métrica utilizada para medir la calidad de los modelos de predicción. Calcula la media de los errores absolutos en las predicciones. En el video, se utiliza para evaluar el rendimiento del modelo, indicando cuánto está equivocándose en promedio al predecir los precios de las casas.

💡Random Forest

Random Forest es un algoritmo de machine learning que utiliza múltiples decision trees para tomar decisiones de predicción. Es conocido por su capacidad para manejar grandes conjuntos de datos y su resistencia al overfitting. En el video, se sugiere como un modelo alternativo para mejorar la predicción del precio de las casas.

Highlights

El vídeo ofrece un tutorial paso a paso para crear un modelo de Machine Learning.

Se utiliza un conjunto de datos de casas en Melbourne para el análisis.

Importancia de la biblioteca pandas para leer archivos CSV.

Se aborda la exploración de datos y la importancia de las columnas numéricas.

Se destaca la presencia de 'missing values' en los datos y su impacto en el aprendizaje automático.

Eliminación de filas con 'missing values' para limpiar los datos.

Se presenta la página web de Javier para cursos de programación y soporte.

Elección de variables numéricas como características para predecir el precio de las casas.

Selección del 'Decision Tree Regressor' como modelo de Machine Learning.

Entrenamiento del modelo con características de las casas y su respectivo precio.

Uso del método 'predict' para estimar el precio de las primeras cinco casas.

Análisis de la precisión del modelo, que alcanza un 100% en las primeras predicciones.

Introducción del MAE (Mean Absolute Error) como métrica para medir el error en las predicciones.

Se destaca el riesgo del 'overfitting' cuando el modelo se ajusta demasiado bien a los datos de entrenamiento.

Se realiza una división en conjuntos de entrenamiento y validación para evitar el overfitting.

Se evalúa el modelo con el conjunto de validación y se obtiene un error más realista.

Ajuste de parámetros en el 'Decision Tree Regressor' para mejorar el modelo y evitar el overfitting.

Comparación del rendimiento del 'Decision Tree Regressor' con el de un 'Random Forest'.

El 'Random Forest' ofrece un mejor MAE sin ajustar parámetros, sugiriendo su potencial superior.

Se concluye el tutorial habiendo creado y ajustado dos modelos de Machine Learning.

Transcripts

play00:00

Hola Qué tal en este vídeo quiero

play00:01

enseñaros paso a paso cómo crear vuestro

play00:04

primer modelo de Machine learning vamos

play00:06

a verlo juntos soy Javier Data Science

play00:08

matemático y científico de datos Y en el

play00:10

canal te enseño todo lo relacionado con

play00:12

los datos enfocándome en el Data Science

play00:14

así que bueno sin más vamos a empezar

play00:16

con lo que tenemos aquí preparado vale

play00:18

que es lo siguiente Yo tengo un set de

play00:20

datos vale que es Mel Data csv que esto

play00:23

es los datos de Melbourne de unas casas

play00:25

aquí os enseño el csv que voy a usar

play00:28

vale en la primera fila tengo las

play00:30

columnas del csv del dataframe vale Y

play00:32

luego ya tengo todos los datos separados

play00:34

por coma vale como vemos aquí arriba muy

play00:36

importante así que bueno yo ahora me voy

play00:38

a ir a mi Notebook vale donde voy a

play00:40

hacer el análisis y lo primero es

play00:42

importar pandas vale pandas sirve para

play00:44

leer los csvs y que se me pongan en este

play00:47

formato que vemos aquí abajo y que ahora

play00:48

voy a explicar Así que lo primero lo voy

play00:51

a importar import pandas aspd Por qué

play00:53

aspd Porque bueno cada vez que yo quiero

play00:55

usar una función de pandas tengo que

play00:57

invocar pandas tengo que poner pandas

play00:59

punto tal pero la convención es que todo

play01:01

el mundo ponga pd porque se entiende que

play01:04

es pandas Y es más rápido de escribir

play01:06

vale una vez importado pandas vamos a

play01:08

explorar los datos Aquí voy a usar la

play01:10

función read csv Vale entonces yo aquí

play01:13

tengo que poner la ruta al csv que yo

play01:16

quiero leer en este caso está en la

play01:18

misma carpeta Así que solamente tengo

play01:20

que poner esto de aquí y bueno por

play01:22

suerte se me Lee bien vale Por qué digo

play01:25

por suerte porque hay veces que el csv

play01:27

está separado por punto y coma o que en

play01:29

vez de estar en utf8 que es el lenguaje

play01:32

normal puede tener lenguaje con tildes

play01:35

en ruso Vale entonces eso no te lo va a

play01:37

leer bien y esos son los casos más

play01:39

sencillos luego hay otros en los que

play01:41

esto se te puede ir de madre y tiene

play01:42

unas cosas muy raras Pero bueno de

play01:44

momento nos ha salido bien en el caso de

play01:46

que te encuentres con estos problemas tú

play01:47

puedes irte a la documentación de pandas

play01:49

y miras aquí todos los parámetros que

play01:51

puedes usar para poner el csv bien así

play01:54

que bueno ya lo tengo aquí leído y vamos

play01:56

a ver un poquito cosas que tiene tiene

play01:58

suburb address rooms vale price Esta es

play02:01

la variable que queremos predecir vale Y

play02:03

luego muchas otras Okay arriba Bueno veo

play02:06

un poco cada columna no Pero y si quiero

play02:08

ver cómo son todas en general pues yo

play02:10

voy a hacer un describe y describe lo

play02:13

que me hace es que va a irme columna por

play02:14

columna diciéndome lo que tiene

play02:17

importante solo columnas numéricas Por

play02:19

qué Porque me va a realizar algunas

play02:22

operaciones estadísticas Y claro no

play02:24

puedo hacer la media de una variable que

play02:26

sea suburbio No aquí no hay una media

play02:29

verdad Así que solamente las variables

play02:31

numéricas qué me llevo de aquí pues

play02:33

bueno vemos que estas de aquí parece que

play02:35

tienen todas las filas sin missing vales

play02:37

pero sí que estas dos vemos que hay

play02:40

missing values Qué son missing values

play02:42

missing values son datos en los que no

play02:44

aparece la información por ejemplo aquí

play02:47

vale mira Nan not a number entonces aquí

play02:51

no es que sea yarra no es que sea 120 No

play02:53

es que no lo sabemos ni siquiera es un

play02:55

cero es que no sabemos Cuánto es un dato

play02:57

se puede decir como erróneo vale estos

play03:00

datos nos van a poner muchos problemas a

play03:01

la hora de hacer problema de Machine

play03:02

learning Así que vamos a ver cómo

play03:04

solucionarlo antes de continuar quiero

play03:06

decir que tengo una página web en la que

play03:08

vendo cursos de programación en el que

play03:10

tengo vídeos con teoría y ejercicios

play03:12

resueltos Lo importante es que también

play03:14

tienes mi soporte vas a poder escribirme

play03:16

siempre que quieras Así que ya sabes si

play03:18

quieres aprender a programar Vete a

play03:20

javid datascience.com y mira mi curso en

play03:23

este proyecto de aquí solamente quiero

play03:25

que hagas tu primer modelo de Machine

play03:26

learning Así que no voy a meterme en

play03:28

cosas más avanzadas para filtrar o

play03:31

imputar esos missing values Así que yo

play03:33

lo que voy a hacer es Oye cualquier fila

play03:35

que tenga un missing value voy a

play03:37

quitarlo vale Cómo se hace pues melborne

play03:40

dataframe Drop na axis ig a 0 esto lo

play03:43

que hace es que bueno el axis igual a

play03:45

cer va a buscando por filas Entonces

play03:47

cuando encuentra una fila que tenga un

play03:49

missing valum la quita entera Así que yo

play03:51

ejecuto esto y bueno importante he

play03:53

pasado de 13000 filas 13500 vale

play03:58

a 6000 filas O sea me he quitado más de

play04:02

la mitad porque en más de la mitad hab

play04:04

algún missing value una vez que ya

play04:06

tenemos los datos limpios Vamos a

play04:08

continuar con el modelo de Machine

play04:09

learning como Este modelo va a ser muy

play04:11

sencillo ya si tú quieres te dejo como

play04:13

ejercicio que profundices todo lo que tú

play04:15

quieras aquí simplemente voy a poner Oye

play04:18

que la variable I que es la variable

play04:19

predecir va a ser price y luego las x

play04:22

son rooms bathroom Land size latitude y

play04:26

longitud por qué porque estas son

play04:28

variables numéricas vale las categóricas

play04:31

también me van a dar problemas en

play04:32

general y son variables que yo creo que

play04:34

van a funcionar por ejemplo rooms el

play04:36

número de habitaciones es muy importante

play04:37

el número de baños también el tamaño y

play04:40

bueno también he metido la latitud y

play04:43

longitud a ver si me sirve quiero que

play04:44

quede claro que I es la variable a

play04:47

predecir y las x son las características

play04:49

las features que me van a servir para

play04:51

predecir esta I Así que las x son los

play04:54

predictores y la i es la variable a

play04:57

predecir cargo esto de aquí luego Aquí

play05:00

voy a entrenar el modelo de Machine

play05:02

learning yo he decidido elegir un

play05:04

decision tre regressor Qué es eso pues a

play05:07

ver decision regressor la última parte

play05:09

es de regresión o clasificación si yo

play05:12

quisiera clasificar si mañana llueve o

play05:15

no pues necesitaría un decision 3

play05:17

classifier pero como voy a predecir una

play05:19

variable numérica Necesito un regressor

play05:22

vale Y luego decision 3 es un modelo muy

play05:25

sencillo vale que simplemente va a ir

play05:27

mirando características características

play05:29

y va a ir dividiendo vale por ejemplo

play05:31

tiene más de dos baños vale también

play05:33

tiene más de X habitaciones pues

play05:36

entonces tú ya has entrenado el modelo

play05:37

con otras casas similares y ya sabes que

play05:39

si una casa tiene más de dos

play05:40

habitaciones más de dos baños y está por

play05:42

esta zona pues va a valer tal si no va a

play05:44

valer tal Y así con cada casuística

play05:47

podemos hacerlo todo lo complejo que

play05:49

queramos el árbol ir haciendo todas las

play05:50

divisiones que queramos vale Así que

play05:52

simplemente para entrenar el modelo de

play05:53

Machine learning es primero elegir uno

play05:55

yo he elegido este de aquí también

play05:56

puedes elegir una región logística o una

play05:58

red neur vale lo que tú quieras y

play06:01

entonces cargas el modelo vacío es decir

play06:03

Mel burner model es decision trior aquí

play06:05

está vacío y luego lo entrenas como le

play06:08

pasas las características todas y las I

play06:12

es decir yo te paso estas

play06:13

características de una casa y vale lo

play06:16

siguiente y así tú le vas a dar pues las

play06:18

6,000 Vale pues entonces este árbol se

play06:21

va a ir entrenando y ya va a saber

play06:22

clasificar cuando tú mañana le des un

play06:24

piso con x características te va a dar

play06:27

un precio y así que vamos a entrenar

play06:29

modelo hacemos esto y vemos que tarda un

play06:31

poquito vale está cargando porque el

play06:33

árbol se tiene que entrenar y una vez

play06:35

que está cargado vamos a hacer lo

play06:36

siguiente vamos a mirar las predicciones

play06:38

para las cinco primeras casas Vale

play06:40

entonces hacemos x. Head para ver las

play06:42

primeras con sus características luego

play06:44

quiero ver el precio real lo tenemos

play06:46

debajo y luego importante vamos a ver

play06:48

las predicciones cómo se miran las

play06:50

predicciones Pues el modelo Tiene un

play06:52

método que es predict predict sirve para

play06:55

que tú le pases unas casas unas

play06:57

características sin el precio y el te

play06:59

diga cuánto creen que vale Por qué

play07:01

Porque él ya sabe ya está entrenado con

play07:02

casas similares así que ya ha aprendido

play07:04

entonces tú si le pasas una casa nueva

play07:06

te va a decir cuánto vale según lo que

play07:09

ha aprendido así que ejecuto esto de

play07:11

aquí y vamos a ver Estas son las cinco

play07:13

primeras pasamos un poco vale Este es el

play07:15

precio real y aquí vemos las

play07:16

predicciones el primero lo ha hecho bien

play07:18

el segundo bien el tercero bien Mira

play07:20

estos cinco primeros los ha clavado ha

play07:24

dado la estimación exacta Así que yo

play07:26

Acabo de crear un modelo Que de momento

play07:28

está a acertando el 100% pero claro

play07:31

hemos cogido cinco recordamos que

play07:32

tenemos 6000 casas vamos a verlo en

play07:34

total a ver cuánto error está cometiendo

play07:36

para eso introduzco el término del mae

play07:39

Qué es el mae el mae es una métrica que

play07:41

sirve para ver el error absoluto que

play07:43

estamos cometiendo significa mean

play07:46

absolute error y quiere decir Oye

play07:48

calcúlame el error que estás cometiendo

play07:50

en cada casa Por ejemplo si una casa

play07:52

vale un millón yo digo que vale 950 está

play07:55

cometiendo 50.000 de error verdad pues

play07:58

Enton entonces en esa casa tenemos 50

play08:01

pasamos a la siguiente casa y resulta

play08:02

que en vez de un millón dice que es 1,00

play08:05

pues acaba de cometer 500 de error si te

play08:08

das cuenta una una es el error por

play08:10

encima y otro es por debajo a efectos

play08:12

prácticos nos da igual porque por eso es

play08:14

el min absolute error el error absoluto

play08:16

no da igual que sea un error negativo o

play08:18

positivo porque yo al final voy a sumar

play08:20

todos los errores positivos también los

play08:22

negativos los paso a positivos Así que

play08:24

vamos a ver el ma que estoy cometiendo

play08:25

el error que he cometido en todas las

play08:27

casas Lo sumo y hago la media vale Aquí

play08:30

vamos a importar el mean absolute error

play08:32

de esal Matrix Vale y nada simplemente

play08:35

venga vamos a predecir predicted Home

play08:37

prices es todos los precios que estamos

play08:39

haciendo en predicted vale con predict Y

play08:41

entonces voy a hacer el me absolute

play08:43

error de I Es decir de los valores

play08:45

reales con los valores que estamos

play08:47

prediciendo así que si lo ejecuto me

play08:49

dice que tenemos un error del

play08:51

1115 o sea estamos hablando de casas que

play08:55

valen a ver 1 mill 2 millones y solo se

play08:59

está equivocando en 1000 o sea este

play09:02

modelo podemos decir que es casi

play09:04

perfecto No si tú vas a la calle y

play09:06

preguntas a cualquiera cuánto vale esa

play09:08

casa va a costar que acierte pero es que

play09:09

este modelo lo está prediciendo a la

play09:11

perfección solamente 1000 para arriba

play09:13

1000 para abajo cuando estamos hablando

play09:15

de 2 millones que puede valer una casa

play09:17

aquí Bueno debería saber que estoy

play09:19

haciendo un poco de trampa porque si

play09:20

esto fuera tan bueno como parece yo no

play09:22

estaría aquí yo estaría ya en la bolsa

play09:24

invirtiendo Bueno ya lo habría hecho no

play09:27

Qué pasa aquí hay un problema que es que

play09:29

al modelo ya le hemos entrenado con las

play09:31

casas que está prediciendo es decir yo

play09:34

aprendo con unas cuantas personas no

play09:36

entonces Yo tengo un amigo Bernie que es

play09:38

alto Muy bien pues entonces el modelo

play09:40

aprende que cuando una persona se llame

play09:42

Bernie va a ser alta Qué pasa si lo

play09:43

sacas a la calle y coges a otro Bernie a

play09:46

lo mejor no es alto pero si yo otra vez

play09:48

le muestro al Bernie con el que yo le he

play09:50

entrenado va a decir que es alto y va a

play09:52

acertar pero eso es hacer trampa tú

play09:53

tienes que predecir lo que no has visto

play09:56

Así que vamos a darle una vuelta de

play09:58

tuerca para ver Cuál es el error que

play10:00

está cometiendo cómo hacemos eso pues

play10:02

hay una técnica muy importante en

play10:04

Machine learning que es tú tienes un

play10:06

número de casas por ejemplo bueno 6,000

play10:08

Pues tú vas a dividir 5000 5000 son

play10:11

tuyas para entrenar al modelo y te vas a

play10:12

guardar 1000 para ver lo bien que lo

play10:15

está haciendo tu modelo porque si no

play10:17

volvemos a lo de siempre está haciendo

play10:18

trampas si ya ha visto esa casa y te

play10:20

digo cuánto vale si es que ya la ha

play10:21

visto es muy difícil que falle pero si

play10:23

no la he visto ahí donde de verdad veo

play10:25

cómo lo está haciendo Cómo se hace eso

play10:27

pues es muy sencillo vamos a train

play10:29

test split vale que esto lo que hace es

play10:31

que tú vas a darle una x y una I y te lo

play10:33

vas a dividir en unas x para entrenar la

play10:36

i esas i o sea los precios de esas casas

play10:39

vale para entrenar y lo mismo con un set

play10:41

de validación la validación la dejamos

play10:42

aparte no la vemos y no hacemos nada con

play10:44

ella vale Así que lo que vamos a hacer

play10:46

es Oye vamos a crear otro modelo vamos a

play10:48

entrenarlo solamente con el train vale Y

play10:51

luego vamos a ver las predicciones de

play10:53

validación es decir yo me entreno con

play10:55

xtrain y ya con ese modelo me voy a las

play10:58

XD de validación y calculo su precio y

play11:01

ahora que tengo su precio calculado voy

play11:03

a comprarlo con su precio de verdad a

play11:05

verlo bien que lo estamos haciendo Así

play11:07

que ejecuto esto y ahora sí que me está

play11:10

diciendo una cosa que tiene más sentido

play11:12

se está equivocando ya por

play11:15

257,000 vale antes se confundía por 1000

play11:18

eso no es nada pero por 257 ya sí que

play11:21

hay un error más grande vale ya vemos

play11:23

que este modelo no era tan bueno como

play11:25

parecía y este concepto que yo te acabo

play11:27

de enseñar es el overfitting vale es

play11:29

decir se ha aprendido muy bien sus datos

play11:32

Y entonces va a aplicar lo que sabe a

play11:34

todo lo que vea Pero eso puede llevarnos

play11:36

a errores como el ejemplo que he dicho

play11:37

de tu amigo que se llama Bernie que es

play11:39

alto que ahora todos los bernis son

play11:41

altos no tiene por qué cómo se puede

play11:43

solucionar esto Pues el modelo de

play11:45

decision 3 tiene muchos parámetros

play11:47

algunos sirven para prevenir esto para

play11:49

prevenir el overfitting o el

play11:50

underfitting que sería un poco lo

play11:52

contrario Pero bueno vamos a quedarnos

play11:54

solamente con el overfitting Así que lo

play11:55

que podemos hacer es jugar un poco con

play11:57

los parámetros de de decision 3

play11:59

classifier y en vez de jugar con una

play12:01

hoja porque esto ya es más técnico Pero

play12:03

tú puedes hacer una división o cuatro o

play12:05

20 Pues vamos a ver Cuántas hojas Me da

play12:08

el mejor resultado porque el número de

play12:10

hojas está muy relacionado con el

play12:12

término de overfitting vale a más hojas

play12:14

más overfitting o menos depende también

play12:17

de tus datos vale Pero bueno vamos a ver

play12:19

estas hojas Cómo funcionan simplemente

play12:21

vamos a crear una función en la que el

play12:23

modelo es el decision 3 regressor pero

play12:25

vamos a cambiarle el Max lift notes vale

play12:28

vamos a entrenar el modelo vamos a

play12:30

predecir los valores de variación de x y

play12:33

vamos a devolver el mae Vale entonces

play12:35

esta función que está haciendo aquí

play12:37

simplemente me va a servir para yo

play12:38

probar diferente número de hojas para el

play12:41

árbol y ver cuándo consigo el mejor

play12:43

resultado Así que nada yo ejecuto esto

play12:45

de aquí y ahora quiero hacer la prueba

play12:47

con for Max lft notes in 550 505000 es

play12:51

decir voy a en estos ejemplos vale

play12:54

con cinco hojas 50 etcétera A ver cuándo

play12:56

consigo un mejor mae Así que yo lo

play12:59

ejecuto por la función que he ejecutado

play13:00

antes no y me sale que con cinco hojas

play13:03

tengo

play13:04

375,000 de error vale que es más de lo

play13:07

que he hecho antes luego con 50 266 un

play13:10

poquito peor Pero sí que con 500 consigo

play13:14

mejorarlo sabemos que con 500 hojas Voy

play13:16

a conseguir un mejor mae que con lo que

play13:18

he hecho antes que es como por defecto

play13:20

que no sabemos Cuál es que si te metes

play13:21

en la documentación vas a ver cuánto es

play13:23

no pero tú Aquí sabes que con 500 lo

play13:25

mejoras luego vemos que con 5000 otra

play13:27

vez Parece que ya empieza emp a

play13:29

fastidiarse vale ya empieza a subir Así

play13:31

que nos vamos a quedar solamente con 500

play13:33

así que ya has visto hasta aquí hemos

play13:35

probado maxli noes pero sí que tiene

play13:37

muchos otros parámetros vale que tú lo

play13:39

puedes ver en la documentación ir

play13:40

cambiando y esperar a ver dónde

play13:42

conseguimos el mejor resultado Y por

play13:44

último La pregunta es hasta aquí ya no

play13:47

podemos conseguir algo mejor pues Oye y

play13:48

si probamos otro modelo así rápidamente

play13:50

Y si en vez de un decision 3 usamos un

play13:52

Random Forest vale Esto bueno habría que

play13:54

meterse ya a explicar lo que es un

play13:55

Random Forest pero vamos a solamente a

play13:57

usarlo y a ver qué nos sale pues yo

play13:59

ejecuto esto de aquí con importo Random

play14:01

Forest y hago lo mismo que he hecho

play14:02

antes pongo el modelo lo entreno y

play14:04

hacemos la predicción y me sale que de

play14:06

mae está haciendo 195 o sea un Random

play14:09

Forest sin cambiar los parámetros ya me

play14:12

está dando un mejor mae que lo de antes

play14:14

así que ya sabemos que en este caso

play14:16

parece que Random Forest lo va a hacer

play14:18

mejor que el decision 3 classifier

play14:20

regressor perdón y esto es solo el

play14:21

comienzo hasta aquí ya hemos creado no

play14:23

Uno sino dos modelos de Machine learning

play14:26

en el que hemos ajustado los parámetros

play14:27

y hemos sacado el mejor mae posible y

play14:30

hasta aquí vamos a dejarlo así que bueno

play14:32

si te ha gustado Espero que dejes un

play14:33

like un comentario y que te suscribas

play14:35

que a mí me ha ayudado un montón Eso es

play14:37

todo por hoy nos vemos en el siguiente

play14:39

vídeo un saludo

Rate This

5.0 / 5 (0 votes)

関連タグ
Machine LearningData SciencePredicción de PreciosDecision TreeRandom ForestOverfittingPythonPandasModelo de RegresiónMelbourne DataTutorial
英語で要約が必要ですか?