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

Implementació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

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
1H
31M
51S

Implementación de Boosting

24/37
Recursos

Aportes 8

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para este método de ensamble, jugue un poco con los estimators:

X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.35)

    estimators = range(10, 200, 10)
    total_accuracy = []
    for i in estimators:
        boost = GradientBoostingClassifier(n_estimators=i).fit(X_train, y_train)
        boost_pred = boost.predict(X_test)

        total_accuracy.append(accuracy_score(y_test, boost_pred))
    
    plt.plot(estimators, total_accuracy)
    plt.xlabel('Estimators')
    plt.ylabel('Accuracy')
    plt.show()
    plt.savefig('Boost.png')

    print(np.array(total_accuracy).max())

Accuracy = 0.9749303621169917

Configurando el boosting de esta manera:

boosting = GradientBoostingClassifier(loss='exponential',learning_rate=0.15, n_estimators=100, max_depth=5).fit(x_train, y_train)

Obtuve un score de:
0.9888579387186629

Para determinar el mejor n_estimator

estimators = range(10, 300, 10)
total_accuracy = []
best_result = {'result' : 0, 'n_estimator': 1}

for i in estimators:
    boost = GradientBoostingClassifier(n_estimators=i).fit(X_train, y_train)
    boost_pred = boost.predict(X_test)
    new_accuracy = accuracy_score(boost_pred, y_test)
    total_accuracy.append(new_accuracy)
    if new_accuracy > best_result['result']: 
        best_result['result'] = new_accuracy
        best_result['n_estimator'] = i

print(best_result)

Mi intento de cross validation, al final deje n_estimators en 3 con 81%.

investoge que es el cross validadtion para encontrar el n_estimators correcto, básicamente es dividir los datos en bloques y utilizar cada bloque como testing y el resto como training en cada iteration, con lo que se obtiene un valor de como se comporta el modelo con cualquier combinacion de los datos.

con este indicador se pueden compara modelos entre si o en este caso valores para un parametro, si quieren profundizar les recomiendo este video.

Les adjunto mi version del codigo:

import pandas as pd

from sklearn.ensemble import GradientBoostingClassifier

from sklearn.model_selection import train_test_split
from sklearn.metrics import  accuracy_score

if __name__ == "__main__":
    
    path = './Boosting/data/heart.csv'
    dataset = pd.read_csv(path)

    print(dataset.head(5))
    print('')
    print(dataset['target'].describe())

    x = dataset.drop(['target'], axis=1, inplace=False)
    y = dataset['target']

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

    boost = GradientBoostingClassifier(n_estimators=50).fit(x_train, y_train)
    boost_pred = boost.predict(x_test)

    print('')
    #print('Accuracy GBC:', accuracy_score(y_test, boost_pred)) # este esta bien.
    print('Accuracy GBC:', accuracy_score(boost_pred, y_test)) # este me parece que esta mal.

Donde el output es el siguiente:

Accuracy GBC: 0.935933147632312

Código para evitar los warnings:

KNeighborsClassifier 0.711038961038961

BaggingClassifier 0.7727272727272727

RanfomForestClassifier: 1.0

GradientBoostingClassifier: 0.9448051948051948