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 | Regresión Logística
Clasificación con Python

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 ver, 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 mayor precisión.

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 secuencia.

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, escalar los datos y almacenar 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 2. Capítulo 6
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

Suggested prompts:

Can you explain how to use polynomial regression with this dataset?

How does GridSearchCV help in finding the optimal C parameter?

What is the purpose of using a Pipeline in this context?

close

Awesome!

Completion rate improved to 4.17

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 ver, 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 mayor precisión.

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 secuencia.

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, escalar los datos y almacenar 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 2. Capítulo 6
single

single

some-alt