Nota:
grid_reg.best_score_ regresa el promedio del score por defecto del mejor estimador.
Aprender los conceptos clave
Todo lo que aprenderás sobre MA con Scikit-Learn
¿Cómo aprenden las máquinas?
Problemas que podemos resolver con Scikit-learn
Las matemáticas que vamos a necesitar
Iniciar un proyecto con sklearn
Configuración de nuestro entorno Python
Instalación de librerÃas en Python
Datasets que usaremos en el curso
Optimización de features
¿Cómo afectan nuestros features a los modelos de Machine Learning?
Introducción al PCA
Preparación de datos para PCA e IPCA
Implementación del algoritmo PCA e IPCA
Kernels y KPCA
¿Qué es la regularización y cómo aplicarla?
Implementación de Lasso y Ridge
Explicación resultado de la implementación
ElasticNet: Una técnica intermedia
Regresiones robustas
El problema de los valores atÃpicos
Regresiones Robustas en Scikit-learn
Preparación de datos para la regresión robusta
Implementación regresión robusta
Métodos de ensamble aplicados a clasificación
¿Qué son los métodos de ensamble?
Preparación de datos para implementar métodos de ensamble
Implementación de Bagging
Implementación de Boosting
Clustering
Estrategias de Clustering
Implementación de Batch K-Means
Implementación de Mean-Shift
Optimización paramétrica
Validación de nuestro modelo usando Cross Validation
Implementación de K-Folds Cross Validation
Optimización paramétrica
Implementación de Randomized
Bonus: Auto Machine Learning
Salida a producción
Revisión de nuestra arquitectura de código
Importar y exportar modelos con Sklearn
Creación de una API con Flask para el modelo
Cierre del curso
Material adicional para consultar
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 20
Preguntas 2
Nota:
grid_reg.best_score_ regresa el promedio del score por defecto del mejor estimador.
Hasta ahora, este ha sido el mejor curso desde el punto de vista de metodologÃa.
Codigo actualizado.
main
import pandas as pd
import numpy as np
import sklearn
from utils import Utils
from models import Models
if __name__ == "__main__":
utils = Utils()
models = Models()
data = utils.load_from_csv('./in/felicidad.csv')
X, y = utils.features_target(data, ['score','rank', 'country'],['score'])
models.grid_training(X,y)
print(data)
Utils
import pandas as pd
import numpy as np
import sklearn
import joblib
class Utils:
def load_from_csv(self, path):
return pd.read_csv(path)
def load_from_mysql(self):
pass
def features_target(self, dataset, drop_cols, y):
X = dataset.drop(drop_cols, axis=1)
y = dataset[y]
return X,y
def model_export(self, clf, score):
print(score)
joblib.dump(clf, './models/best_model.pkl')
Models
import pandas as pd
import numpy as np
import sklearn
from sklearn.svm import SVR
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import GridSearchCV
from utils import Utils
class Models:
def __init__(self):
self.reg = {
'SVR' : SVR(),
'GRADIENT' : GradientBoostingRegressor()
}
self.params = {
'SVR' : {
'kernel' : ['linear', 'poly', 'rbf'],
'gamma' : ['auto', 'scale'],
'C' : [1,5,10]
}, 'GRADIENT' : {
'loss' : ['squared_error', 'absolute_error'],
'learning_rate' : [0.01, 0.05, 0.1]
}
}
def grid_training(self, X,y):
best_score = 999
best_model = None
for name, reg in self.reg.items():
grid_reg = GridSearchCV(reg, self.params[name], cv=3).fit(X, y.values.ravel())
score = np.abs(grid_reg.best_score_)
if score < best_score:
best_score = score
best_model = grid_reg.best_estimator_
utils = Utils()
utils.model_export(best_model, best_score)
Muy buenas la distribución de los archivos, clases y demás 😃
Excelente clase, estoy muy motivado para hacer mis propios modelos!
Estas 2 ultimas clases me han ayudado muchisimo ya que siempre tenia esa duda si me la tenia que vivir con puros script en Python con todas sus librearias, pero el crear un Framework con modelos, ordenaod y organizado te da un manetra de trabajar mas productivamente
¿Por qué se toma el valor absoluto del score en la lÃnea 37? ¿Y por qué se considera que el mejor score es el más bajo? Estaba leyendo la documentación, y se supone que todos los scores siguen la convención de que entre mayor es, mejor. En este caso, creo que la métrica es R^2, que sà sigue esa regla.
https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
Uno de los mejores cursos. Muy completo
Nunca habia tan aniamado hacer mis propios modelos, voy a empezar cada vez hacer cada vez más
Sà les sale un error, tienen que cambiar en la carpeta models(punto)py en la función de GRADIENT cambiar los parámetros de la función de perdida -loss- de la siguiente manera:
'loss' : ['squared_error', 'huber'],
Acá les dejo mi implementación pero en vez de usar algoritmos para regresión use para clasificación
import pandas as pd
import numpy as np
from sklearn.svm import SVC
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import GridSearchCV
from utils import Utils
class Models:
def __init__(self):
self.reg = {
'SVC' : SVC(),
'GRADIENT' : GradientBoostingClassifier()
}
self.params = {
'SVC' : {
'kernel' : ['linear', 'poly', 'rbf'],
'gamma' : ['auto', 'scale'],
'C' : [1,5,10]
}, 'GRADIENT' : {
'loss' : ['deviance', 'exponential'],
'learning_rate' : [0.01, 0.05, 0.1]
}
}
def grid_training(self, X,y):
best_score = 999
best_model = None
for name, reg in self.reg.items():
grid_reg = GridSearchCV(reg, self.params[name], cv=3).fit(X, y.values.ravel())
score = np.abs(grid_reg.best_score_)
if score < best_score:
best_score = score
best_model = grid_reg.best_estimator_
utils = Utils()
utils.model_export(best_model, best_score)
LÃnea para agregar el score al nombre del modelo que exportamos
joblib.dump(clf, './models/best_model_'+str(round(score,3))+'.pkl')
Como se hace todo esto en Jupyter o Colab?
En Jupyter puse todo dentro de una carpeta, pero no reconoce a utils.
Excelente clase!!!
Importar y exportar modelos con Scikit-Learn es una tarea esencial cuando trabajas en proyectos de aprendizaje automático. Esto te permite guardar tus modelos entrenados y reutilizarlos en el futuro sin tener que volver a entrenarlos desde cero. Scikit-Learn proporciona herramientas para facilitar la importación y exportación de modelos.
Excelente curso !
Genial esta clase, como articuló todo lo aprendido y la aplicación de la modularidad con la implementación de clases!!Si no entendieron bien la metodologÃa recomiendo ver:
Curso de Poo de Platzi
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?