Aprender los conceptos clave

1

Todo lo que aprenderás sobre MA con Scikit-Learn

2

¿Cómo aprenden las máquinas?

3

Problemas que podemos resolver con Scikit-learn

4

Las matemáticas que vamos a necesitar

Iniciar un proyecto con sklearn

5

Configuración de nuestro entorno Python

6

Instalación de librerías en Python

7

Datasets que usaremos en el curso

Optimización de features

8

¿Cómo afectan nuestros features a los modelos de Machine Learning?

9

Introducción al PCA

10

Preparación de datos para PCA e IPCA

11

Implementación del algoritmo PCA e IPCA

12

Kernels y KPCA

13

¿Qué es la regularización y cómo aplicarla?

14

Implementación de Lasso y Ridge

15

Explicación resultado de la implementación

16

ElasticNet: Una técnica intermedia

Regresiones robustas

17

El problema de los valores atípicos

18

Regresiones Robustas en Scikit-learn

19

Preparación de datos para la regresión robusta

20

Implementación regresión robusta

Métodos de ensamble aplicados a clasificación

21

¿Qué son los métodos de ensamble?

22

Preparación de datos para implementar métodos de ensamble

23

Implementación de Bagging

24

Implementación de Boosting

Clustering

25

Estrategias de Clustering

26

Implementación de Batch K-Means

27

Implementactión de Mean-Shift

Optimización paramétrica

28

Validación de nuestro modelo usando Cross Validation

29

Implementación de K-Folds Cross Validation

30

Optimización paramétrica

31

Implementación de Randomized

32

Bonus: Auto Machine Learning

Salida a producción

33

Revisión de nuestra arquitectura de código

34

Importar y exportar modelos con Sklearn

35

Creación de una API con Flask para el modelo

36

Cierre del curso

37

Material adicional para consultar

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Implementación regresión robusta

20/37
Recursos

Aportes 11

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Para evitar que se muestren los warnings pueden ejecutar lo siguiente:

import warnings
warnings.simplefilter("ignore")

Codigo para ver la comparacion entre las regresiones de forma grafica:

import matplotlib.pyplot as plt

for name, estimador in estimadores.items():
    estimador.fit(X_train, y_train)
    predictions = estimador.predict(X_test)
    print("=" * 32)
    print(name)
    plt.ylabel('Predicted Score')
    plt.xlabel('Real Score')
    plt.title('Predicted VS Real')
    plt.scatter(y_test, predictions)
    plt.plot(predictions, predictions,'r--')
    plt.show()

Hola!
En esta clase, además de calcular error de cada estimador, intenté calcular también es “score” de cada modelo. Como resultado obtuve esto.

    print("MSE: ", mean_squared_error(Y_test, predictions))
    print("Score", estimador.score(X_test, Y_test))
SVR
MSE:  0.024636332906412182
Score 0.9780019790127239
RANSAC
MSE:  1.1899164154047088e-19
Score 1.0
Huber
MSE:  1.4911035802611992e-06
Score 0.9999986685791276

Como pueden observar, con el metaestimador RANSAC obtengo un score del 100%. Desde mi punto de vista, esto debería considerarse un resultado muy optimista y que se debe de “tomarlos con pinzas” ( o con cuidado). ¿A ustedes qué les parece?

Hasta el momento, el mejor curso de Machine Learning!
solo que no es para los que apenas empiezan, creo que minino deben de tener conocimiento de otros cursos 😛

El primer warning que sale, sobre el array de una dimensión se puede corregir usando numpy y la función ravel, de esta manera:

estimador.fit(x_train, np.array(y_train).ravel())

para corregir el warning por sobre pasar el número de iteraciones en el entrenamiento :

HuberRegressor(epsilon=1.35, max_iter=10000)

Si también eliminamos RANK:

SVR
MSE: 0.005844139576335231
RANSAC
MSE: 1.2666603654055215e-19
HUBER
MSE: 4.756058064851233e-10

No he podido correrlo bien, me bota el siguiente error :

‘ValueError: Found input variables with inconsistent numbers of samples: [133, 34]’

Un resumen de esta seccion

En regresion lineal podemos utilizar otros estimadores para evaluar el MSE (error)

-SVR
-RANSAC
-HUBER

Escogemos entre los 3 el que nos de el menor valor de error.

Es de tener cuidado que el menor estimador puede estar en notacion cientifica

Agrupando varios aportes, con google collab

import pandas as pd

from sklearn.linear_model import (
RANSACRegressor, HuberRegressor
)

Compararemos RANSAC y Huber contra SVM

from sklearn.svm import SVR

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

import matplotlib.pyplot as plt

dataset = pd.read_csv(‘felicidad_corrupt.csv’)

dataset.head(5)

#axis=1 columnas axis=0 filas
x = dataset.drop([‘country’,‘score’],axis=1)
y= dataset[[‘score’]]

x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.3, random_state=42)

#Eliminar warnings
import warnings
warnings.simplefilter(“ignore”)

#4 ESTIMADORES EN DICCIONARIO, [LLAVE, VALORES]
estimadores = {
#‘Linear’: LinearRegression(),

'SVR': SVR(gamma= 'auto', C=1.0, epsilon=0.1),

 #sin parametro es estimacion lineal
'RANSAC': RANSACRegressor(),   

#epsilon menor toma menos valores atipicos
'HUBER': HuberRegressor(epsilon=1.35)

}

for name, estimador in estimadores.items():

estimador.fit(x_train, y_train)
predictions = estimador.predict(x_test)

#print predictor con error
print("=" * 32)
print(name," MSE :", mean_squared_error(y_test, predictions))

#grafico
plt.ylabel('Predicted Score')
plt.xlabel('Real Score')
plt.title('Predicted VS Real')
plt.scatter(y_test, predictions)
plt.plot(predictions, predictions,'r--')
plt.show()

Cómo se explica que al evaluar también la regresión lineal:

estimators = {
    'Linear': LinearRegression(),
    'SVR': SVR(gamma= 'auto', C=1.0, epsilon=0.1),
    'RANSAC': RANSACRegressor(),
    'HUBER': HuberRegressor(epsilon=1.35)
}

Linear MSE: 0.00000000000000000013
SVR MSE: 0.07455771301888525215
RANSAC MSE: 0.00000000000000000013
HUBER MSE: 0.00000229719234639414

.
El resultado de la lineal sea menor que SVR y HUBER, e igual a RANSAC? No debería ser peor por la presencia de los outliers?