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 ML con Scikit-learn

bookKNeighborsClassifier

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 te queda claro. Se explica con más detalle en otros cursos como Linear Regression with Python o Classification with Python.

k-Vecinos más Cercanos

k-vecinos más cercanos (k-NN) es un algoritmo de aprendizaje automático que predice resultados identificando las instancias más similares en el conjunto de entrenamiento.

KNeighborsClassifier es la implementación de Scikit-learn de este algoritmo para tareas de clasificación. El proceso de predicción funciona de la siguiente manera:

  1. Para una nueva instancia, identifica las k instancias de entrenamiento más cercanas según la similitud de características. Estas se denominan vecinos.
  2. Determina la clase más frecuente entre los k vecinos. Esa clase se convierte en la predicción para la nueva instancia.

El parámetro k especifica el número de vecinos a considerar. Por defecto, está establecido en 5. Diferentes valores de k pueden llevar a diferentes predicciones, lo que lo convierte en un hiperparámetro — un parámetro elegido antes del entrenamiento que afecta directamente el comportamiento del modelo.

Experimentar con diferentes valores de k y seleccionar el que proporcione el mejor rendimiento se denomina ajuste de hiperparámetros. Este proceso es esencial para optimizar el modelo.

KNeighborsClassifier durante .fit()

A diferencia de la mayoría de los modelos de ML, el KNeighborsClassifier no hace nada más que almacenar el conjunto de entrenamiento durante el entrenamiento. Sin embargo, aunque el entrenamiento no requiere tiempo, llamar a .fit(X, y) es obligatorio para que recuerde el conjunto de entrenamiento.

KNeighborsClassifier durante .predict()

Durante la predicción, el KNeighborsClassifier busca de manera voraz los k vecinos más cercanos para cada nueva instancia.

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 con KNeighborsClassifier

Cree un KNeighborsClassifier, entrénelo y evalúe su precisión utilizando el método .score(). El conjunto de datos en el archivo .csv ya está preprocesado.

El número de vecinos (k) se especifica con el argumento n_neighbors al inicializar KNeighborsClassifier. Pruebe tanto el valor predeterminado 5 como 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))
copy

Los resultados muestran una alta precisión, incluso perfecta con 1 vecino más cercano.

Sin embargo, estos puntajes no son confiables porque la evaluación se realizó en el conjunto de entrenamiento, es decir, los mismos datos con los que se entrenó el modelo. En este caso, el modelo simplemente predice instancias que ya ha visto.

Para evaluar correctamente el rendimiento, el modelo debe ser evaluado con datos que no haya visto previamente.

question mark

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

Select the correct answer

¿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

Awesome!

Completion rate improved to 3.13

bookKNeighborsClassifier

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 te queda claro. Se explica con más detalle en otros cursos como Linear Regression with Python o Classification with Python.

k-Vecinos más Cercanos

k-vecinos más cercanos (k-NN) es un algoritmo de aprendizaje automático que predice resultados identificando las instancias más similares en el conjunto de entrenamiento.

KNeighborsClassifier es la implementación de Scikit-learn de este algoritmo para tareas de clasificación. El proceso de predicción funciona de la siguiente manera:

  1. Para una nueva instancia, identifica las k instancias de entrenamiento más cercanas según la similitud de características. Estas se denominan vecinos.
  2. Determina la clase más frecuente entre los k vecinos. Esa clase se convierte en la predicción para la nueva instancia.

El parámetro k especifica el número de vecinos a considerar. Por defecto, está establecido en 5. Diferentes valores de k pueden llevar a diferentes predicciones, lo que lo convierte en un hiperparámetro — un parámetro elegido antes del entrenamiento que afecta directamente el comportamiento del modelo.

Experimentar con diferentes valores de k y seleccionar el que proporcione el mejor rendimiento se denomina ajuste de hiperparámetros. Este proceso es esencial para optimizar el modelo.

KNeighborsClassifier durante .fit()

A diferencia de la mayoría de los modelos de ML, el KNeighborsClassifier no hace nada más que almacenar el conjunto de entrenamiento durante el entrenamiento. Sin embargo, aunque el entrenamiento no requiere tiempo, llamar a .fit(X, y) es obligatorio para que recuerde el conjunto de entrenamiento.

KNeighborsClassifier durante .predict()

Durante la predicción, el KNeighborsClassifier busca de manera voraz los k vecinos más cercanos para cada nueva instancia.

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 con KNeighborsClassifier

Cree un KNeighborsClassifier, entrénelo y evalúe su precisión utilizando el método .score(). El conjunto de datos en el archivo .csv ya está preprocesado.

El número de vecinos (k) se especifica con el argumento n_neighbors al inicializar KNeighborsClassifier. Pruebe tanto el valor predeterminado 5 como 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))
copy

Los resultados muestran una alta precisión, incluso perfecta con 1 vecino más cercano.

Sin embargo, estos puntajes no son confiables porque la evaluación se realizó en el conjunto de entrenamiento, es decir, los mismos datos con los que se entrenó el modelo. En este caso, el modelo simplemente predice instancias que ya ha visto.

Para evaluar correctamente el rendimiento, el modelo debe ser evaluado con datos que no haya visto previamente.

question mark

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

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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