Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende KNeighborsClassifier | Modelado
Introducción al Aprendizaje Automático con Python

KNeighborsClassifier

Desliza para mostrar el menú

Al crear el estimador final en una tubería, el modelo elegido fue KNeighborsClassifier. Este capítulo proporciona una breve explicación de cómo funciona el algoritmo.

Note
Nota

El funcionamiento de los modelos no es un tema principal de este curso, por lo que está bien si algo no queda claro. Se explica con más detalle en otros cursos como Linear Regression with Python o Classification with Python.

k-Nearest Neighbors

k-NN predice la clase de una nueva instancia observando sus k muestras de entrenamiento más similares. KNeighborsClassifier implementa esto en Scikit-learn.

  1. Para un nuevo punto, encuentra los k vecinos más cercanos usando la similitud de características.
  2. La clase más común entre ellos se convierte en la predicción.

k es un hiperparámetro (valor predeterminado = 5). Diferentes valores cambian el comportamiento del modelo, por lo que ajustar k es importante.

KNeighborsClassifier durante .fit()

A diferencia de muchos algoritmos, KNeighborsClassifier simplemente almacena los datos de entrenamiento. Aun así, es necesario llamar a .fit(X, y) para que el modelo sepa a qué conjunto de datos hacer referencia durante la predicción.

kNNfit

KNeighborsClassifier durante .predict()

Durante la predicción, el clasificador busca los k vecinos más cercanos de cada instancia. En el ejemplo visual, solo se muestran dos características; agregar más características generalmente mejora la separación de clases y la precisión de la predicción.

kNNpredict
Note
Nota

En los gifs anteriores, solo se utilizan dos características, 'body_mass_g' y 'culmen_depth_mm', porque visualizar gráficos de mayor dimensión es complicado. Incluir características adicionales probablemente ayudará al modelo a separar mejor los puntos de datos verdes y rojos, permitiendo que el KNeighborsClassifier realice predicciones más precisas.

Ejemplo de codificación de KNeighborsClassifier

Es posible crear un clasificador, entrenarlo y comprobar su precisión utilizando .score(). El argumento n_neighbors controla k—prueba tanto con 5 como con 1.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))

Usar k=1 puede producir una precisión perfecta, pero esto es engañoso porque la evaluación se realizó en el conjunto de entrenamiento. Para medir el rendimiento real, siempre se debe probar el modelo con datos no vistos.

question mark

¿Cómo realiza predicciones el KNeighborsClassifier para una nueva instancia?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

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

Sección 4. Capítulo 2
some-alt