Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Clasificación de Datos Inseparables | Sección
Fundamentos del Aprendizaje Supervisado

bookDesafío: Clasificación de Datos Inseparables

Utilizará el siguiente conjunto de datos con dos características:

1234
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
copy

Si ejecuta el siguiente código y observa el diagrama de dispersión resultante, verá que el conjunto de datos no es linealmente separable:

123456
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y']) plt.show()
copy

Utilicemos la validación cruzada para evaluar una regresión logística simple en estos datos:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Como puedes observar, la Regresión Logística regular no es adecuada para esta tarea. Utilizar regresión polinómica puede ayudar a mejorar el rendimiento del modelo. Además, emplear GridSearchCV permite encontrar el parámetro óptimo C para una mejor precisión.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — el objeto del modelo;
  • param_grid — diccionario con los valores de parámetros a explorar;
  • scoring — la métrica utilizada para la puntuación de validación cruzada;
  • cv — el número de particiones (5 por defecto);

Métodos:

  • fit(X, y) — entrena los modelos usando X, y;
  • predict(X) — predice la clase para X;
  • score(X, y) — devuelve la precisión para el conjunto X, y;

Atributos:

  • best_estimator_ — objeto del modelo con la puntuación más alta;
  • best_score_ — la puntuación del best_estimator_.

Esta tarea también utiliza la clase Pipeline. Puedes considerarla como una secuencia de pasos de preprocesamiento. Su método .fit_transform() aplica secuencialmente .fit_transform() a cada paso en la tubería.

Tarea

Swipe to start coding

Se proporciona un conjunto de datos descrito como un DataFrame en la variable df.

  • Crear un pipeline que contenga las características polinómicas de grado 2 de X, escale los datos y almacene el pipeline resultante en la variable pipe.
  • Crear un diccionario param_grid con los valores [0.01, 0.1, 1, 10, 100] para el hiperparámetro C.
  • Inicializar y entrenar un objeto GridSearchCV y almacenar el objeto entrenado en la variable grid_cv.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 26
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

bookDesafío: Clasificación de Datos Inseparables

Desliza para mostrar el menú

Utilizará el siguiente conjunto de datos con dos características:

1234
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
copy

Si ejecuta el siguiente código y observa el diagrama de dispersión resultante, verá que el conjunto de datos no es linealmente separable:

123456
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y']) plt.show()
copy

Utilicemos la validación cruzada para evaluar una regresión logística simple en estos datos:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Como puedes observar, la Regresión Logística regular no es adecuada para esta tarea. Utilizar regresión polinómica puede ayudar a mejorar el rendimiento del modelo. Además, emplear GridSearchCV permite encontrar el parámetro óptimo C para una mejor precisión.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — el objeto del modelo;
  • param_grid — diccionario con los valores de parámetros a explorar;
  • scoring — la métrica utilizada para la puntuación de validación cruzada;
  • cv — el número de particiones (5 por defecto);

Métodos:

  • fit(X, y) — entrena los modelos usando X, y;
  • predict(X) — predice la clase para X;
  • score(X, y) — devuelve la precisión para el conjunto X, y;

Atributos:

  • best_estimator_ — objeto del modelo con la puntuación más alta;
  • best_score_ — la puntuación del best_estimator_.

Esta tarea también utiliza la clase Pipeline. Puedes considerarla como una secuencia de pasos de preprocesamiento. Su método .fit_transform() aplica secuencialmente .fit_transform() a cada paso en la tubería.

Tarea

Swipe to start coding

Se proporciona un conjunto de datos descrito como un DataFrame en la variable df.

  • Crear un pipeline que contenga las características polinómicas de grado 2 de X, escale los datos y almacene el pipeline resultante en la variable pipe.
  • Crear un diccionario param_grid con los valores [0.01, 0.1, 1, 10, 100] para el hiperparámetro C.
  • Inicializar y entrenar un objeto GridSearchCV y almacenar el objeto entrenado en la variable grid_cv.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 26
single

single

some-alt