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

Creaci贸n de features

23/32
Recursos

Aportes 38

Preguntas 5

Ordenar por:

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

Lo que el profesor est谩 haciendo con la transformaci贸n de features se llama 鈥渋nteracci贸n de variables鈥 y en ocasiones eso genera mejores resultados en una regresi贸n. Por ejemplo la venta de una casa depende del precio, pero tambi茅n depende de su tama帽o, entonces la interacci贸n entre precio y tama帽o suele expresarse como una multiplicaci贸n entre los valores de cada observaci贸n y ese nuevo resultado se vuelve una variable de interacci贸n.

Explica muy bien, pero demasiada, demasiada informaci贸n

驴Por qu茅 las regresiones no necesitan de escalamiento y las clasificaciones si?

En mi caso el score fue de 0.6139028285919832, a proposito, en este video se vuelve a trabajar sin la columna gross de X.csv, el profesor ya lo habia definido en el video anterior pero no se muestra en video cuando 鈥樷榙ropea鈥欌 esta columna, por lo que si se vuelve a cargar el csv este va a venir con esta columna y es probable que afecte el score para bien o para mal, se pueden dar cuenta de esto si cuado hacen X.shape les arroja 4104, 8

El metodo PolynomialFeatures transforma tus datos de la forma
y = w0 + x1w1 + x1w2 a esta forma:
y = w0 + x1w1 + x2w2 + x1^2w3 + x1x2w4 + x2^2w5,
con grado 2(ecuacion cuadratica)

Recordar que es necesario eliminar las siguientes features del set de datos original:

  • worldwide_gross
  • gross

Al final trabajan as铆:

X = X.drop(['worldwide_gross', 'gross'], axis=1)

A mi parecer se deber谩 mejorar la conclusi贸n de los v铆deos. El profesor nos esta ense帽ando lo que NO se debe hacer, en vez de mostrar los resultados y las mejoras al modelo.

Les pasa que a veces se pierden y se llenan de informacion y no entienden un carajo? 馃槢 solo hay que seguir.

Una conclusi贸n de este video: las regresiones no necesitan escalamiento, mientras que las Calsificaciones si lo necesitan

Compa帽eros les recomiendo el libro de 0Prediction Machines, es un buen libro para aprender y sacarle el mejor jugo a la impementacion de Machine Learning en la vida real.

Los ejercicios son muy buenos, estoy en el proceso de profundizaci贸n, la tem谩tica es muy interantes

El score segun los comentarios hechos por el profesor en videos anteriores no es tan malo pero si se puede mejorar.

                          Lasso())

model_poly.fit(x_train, y_train)
model_poly.score(x_test, y_test)
0.6021577653493072```

El polynomial features en mi caso si me aumento el score de 0.58 a 0.63, yo removi las peliculas duplicadas del dataset que son como unas 40 o 50, que se agregan cuando se hizo el join.

Muy bien explicado 馃槂

Try this 馃:

%%html
<marquee style='width: 30%; color: blue;'>
  <b># 馃幃**Los modelos de regresi贸n NO se ven afectados por el escalamiento de las features. Los de clasificaci贸n S脥.**!</b>
  </marquee>```

Buena explicaci贸n, la tem谩tica lo que es es densa.

Con el m茅todo de polinomio tuve un R2 de:
0.5686721853818714
Un poco mejor que el anterior.

驴Por qu茅 me da de esta forma los predic del 煤ltimo modelo? El del R2 super malo

驴Qu茅 hace trasnformer.fit(A)?

驴Los grados y multiplicaci贸n de nuestros features (A1,A2) est谩 determinado por el tri谩ngulo de pascal?
El (A1^2,A1*A2,A2^2) me recuerda mucho al cuadrado de binomio

Con los datos que tomo mi modelo y al hacer el escalado me diern resultados muy buenos y muy diferentes a los de Juan Pablo

<print(model.score(X_test,y_test))
print(model_scaled.score(X_test_scaled,y_test))>

1.0
0.9999999769594164

  • El algoritmo de reescaladores tienen un impacto importante en los modelos clasificadores.

Los modelos de regresi贸n no se ven afectados por el escalamiento de las features. Los de clasificaci贸n s铆.

Excelente explicacion para la creacion de features

驴驴驴 Porqu茅 se entrena como scaler.fit(X_train) y no scaler.fit(X_train,y_train) ???

驴驴Los promedios de 鈥榮caler.mean_鈥 deben coincidir con los promedios que se muestran en X.describe() ??

A mi me ha mejorado el Score un poco como ha dicho el profe 鈥 馃槂 鈥 ?

![](

Muy denso el contenido!!!

Me resulta un score de: 0.8741707058082381

No encontr茅 el archivo de CSV para hacer el ejemplo y no hemos podido seguir la clase, muchos, lastima.

mis resultados

model_scaled.score(X_test,Y_test)
0.573389920757561
model_poly.score(X_test, Y_test)
0.6179529472925005

Mis resultados:

model.score(X_test,y_test)
0.5747019917456441

model_poly.score(X_test,y_test)
0.6301178521606629

De esta forma pude importar el archivo de excel x.csv desde mi computador:

# Escalamiento de los datos
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from google.colab import files
uploaded = files.upload()
# Suben el archivo desde el computador.
import io


from sklearn.model_selection import train_test_split


X = pd.read_csv(io.BytesIO(uploaded['x.csv']))
X.head()


from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)


scaler.mean_

scaler.scale_

X.values

scaler.transform(X_train)

X_train_scaled, X_test_scaled = (scaler.transform(X_train), scaler.transform(X_test))

from sklearn.linear_model import Lasso
model = Lasso()
model_scaled = Lasso()
model.fit(X_train,y_train)
model_scaled.fit(X_train_scaled,y_train)


print(model.score(X_test,y_test))
print(model_scaled.score(X_test_scaled,y_test))

# Simplificar las transformaciones con pipelines
from sklearn.pipeline import make_pipeline
model_scaled = make_pipeline(StandardScaler(),Lasso())
model_scaled.fit(X_train,y_train)

print(model_scaled.score(X_test,y_test))

# Crear nuevas features de forma autom谩tica
A = np.arange(6).reshape(3, 2)
A


from sklearn.preprocessing import PolynomialFeatures
transformer = PolynomialFeatures(2)
transformer.fit_transform(A)#Se aplica la transformada de una matriz


X.shape

transformer = PolynomialFeatures(2)
transformer.fit_transform(X).shape

model_poly = make_pipeline(PolynomialFeatures(2),Lasso())
model_poly.fit(X_train,y_train)
model_poly.score(X_test,y_test)```

PolynomialFeatures aumento mi score de 0.88 a 0.90

驴Cu谩l es la aplicaci贸n conceptual de PolynomialFeatures()? No alcanzo a comprender qu茅 es lo que hace que pueda ayudarnos a mejorar el score del modelo.