KNeighborsClassifier
Al crear el estimador final en una canalización, el modelo elegido fue KNeighborsClassifier. Este capítulo proporciona una breve explicación de cómo funciona el algoritmo.
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 Regresión Lineal con Python o Clasificación con Python.
k-Vecinos más Cercanos
k-NN predice la clase de una nueva instancia observando sus k muestras de entrenamiento más similares.
KNeighborsClassifier implementa esto en Scikit-learn.
- Para un nuevo punto, encuentra los k vecinos más cercanos utilizando la similitud de características.
- La clase más común entre ellos se convierte en la predicción.
k es un hiperparámetro (valor predeterminado = 5). Diferentes valores modifican 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.
Sin embargo, es necesario llamar a .fit(X, y) para que el modelo sepa a qué conjunto de datos hacer referencia durante la predicción.
KNeighborsClassifier durante .predict()
Durante la predicción, el clasificador busca para cada instancia sus k vecinos más cercanos. 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 las predicciones.
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 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—pruebe tanto con 5 como con 1.
12345678910111213import 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 pruebe el modelo en datos no vistos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.13
KNeighborsClassifier
Desliza para mostrar el menú
Al crear el estimador final en una canalización, el modelo elegido fue KNeighborsClassifier. Este capítulo proporciona una breve explicación de cómo funciona el algoritmo.
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 Regresión Lineal con Python o Clasificación con Python.
k-Vecinos más Cercanos
k-NN predice la clase de una nueva instancia observando sus k muestras de entrenamiento más similares.
KNeighborsClassifier implementa esto en Scikit-learn.
- Para un nuevo punto, encuentra los k vecinos más cercanos utilizando la similitud de características.
- La clase más común entre ellos se convierte en la predicción.
k es un hiperparámetro (valor predeterminado = 5). Diferentes valores modifican 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.
Sin embargo, es necesario llamar a .fit(X, y) para que el modelo sepa a qué conjunto de datos hacer referencia durante la predicción.
KNeighborsClassifier durante .predict()
Durante la predicción, el clasificador busca para cada instancia sus k vecinos más cercanos. 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 las predicciones.
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 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—pruebe tanto con 5 como con 1.
12345678910111213import 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 pruebe el modelo en datos no vistos.
¡Gracias por tus comentarios!