Reto: explora diferentes ejemplos de modelos y qué pueden hacer

11/16

Lectura

¡Hola! Te doy la bienvenida a esta clase con un nuevo reto.

Antes que nada espero que te haya ido excelente con el notebook del reto anterior y que hayas completado todos los ejercicios. Recuerda que cualquier duda puedes dejarla en comentarios de la clase para que toda la comunidad de Platzi pueda apoyarte.

Notebook de algoritmos de machine learning

En la notebook en Google Colab de esta clase encontrarás una guía para probar algoritmos de machine learning en código. Desde la carga de datos hasta entrenar el modelo y verificar su performance.

Para estos ejemplos utilizaremos la librería de scikit-learn, una de las librerías con las que podemos comenzar a aprender el uso de algoritmos de machine learning de manera más sencilla.

En los siguientes cursos de la ruta de la Escuela de Data Science profundizarás en el uso de scikit-learn y otras librerías de machine learning. ¡Comencemos con la base! 🧠

Accede al notebook aquí.

Crea una copia de este notebook en tu Google Drive o utilízalo en el entorno de Jupyter notebook que prefieras. Recuerda instalar las librerías necesarias para ejecutar el código si ejecutas tu notebook en un entorno local.

Esta notebook no tiene ejercicios adicionales como la anterior, pero este el reto que tienes para esta clase:

  • Identifica en qué partes del código aplicamos los diferentes conceptos teóricos aprendidos en las clases anteriores.

¡Leo tus anotaciones en los comentarios y nos vemos en el próximo módulo!

Aportes 4

Preguntas 3

Ordenar por:

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

Para evitar la advertencia que se genera al ajustar el modelo de regresión logística, una de las posibles soluciones es incrementar el número de iteraciones (por default es de 100) al configurar la regresión:

model_2 = linear_model.LogisticRegression(max_iter=110)

Acá mi resultado del Modelo de K-Means con un k=3.

Un resumen del proceso se regresión linear:

0. Se separan los datos en ‘training’ y ’ ‘testing’.

Para predecir Y (‘petal width’) a partir de X (‘petal length’), queremos ajustar un modelo a:

𝜃1 ∗ 𝑥 + 𝜃0 = 𝑦 ,

la ecuación de la recta para generar nuestra regresión lineal.

  1. Ajustamos el modelo con la 'training data y calculamos el coeficiente y el riesgo (bias). En el ejemplo obtenemos: 0.41 ∗ X − 0.36 = Y
  2. Definimos un array con valores aleatorios de X (xvals) entre el mínimo y máximo de nuestro total de datos. Con estos datos y la ecuación hallada en 1, calculamos los Y (yvals). Graficamos y visualmente podemos ver la buena relación. Sin embargo:
  3. debemos calcular el MSE y R2 con la testing data. (Siempre queremos un MSE bajo y 𝑅2 cercano a 1. 𝑅2 está limitado de 0 (efectivamente no correlacionado) a 1 (relación perfecta).). En nuestro caso los valores son de MSE: 0.04 y R2: 0.94, por lo que podemos ver que existe una relación decente entre la longitud (X) y el ancho de los pétalos (Y).

Así queda la gráfica del codo para confirmar que de 3 a 4 serían las mejores elecciones de clústeres.

Les dejo el código:

I = []
centroids = []
for c in range(2,11):
  k2model = KMeans(n_clusters=c, random_state=42)
  k2model.fit(data[["petal length (cm)", "petal width (cm)"]])
  I.append(k2model.inertia_)
  centroids.append(k2model.cluster_centers_)

f = plt.figure(figsize=(7,5))
ax = f.add_subplot(1,1,1)

ax.scatter(x=np.arange(2,11), y=I)
ax.plot(np.arange(2,11),I)

ax.set_xlabel('Clusters')
ax.set_ylabel('Inertia')
ax.set_title('Elbow method for optimal k value')

f.tight_layout()