Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda KNeighborsClassifier | Modelagem
Quizzes & Challenges
Quizzes
Challenges
/
Introdução ao Aprendizado de Máquina com Python

bookKNeighborsClassifier

Ao criar o estimador final em um pipeline, o modelo escolhido foi o KNeighborsClassifier. Este capítulo fornece uma breve explicação de como o algoritmo funciona.

Note
Nota

O funcionamento dos modelos não é o foco principal deste curso, portanto, não há problema se algo parecer confuso para você. O tema é explicado com mais detalhes em outros cursos como Linear Regression with Python ou Classification with Python.

k-Nearest Neighbors

k-NN prevê a classe de uma nova instância analisando suas k amostras de treinamento mais semelhantes. KNeighborsClassifier implementa esse método no Scikit-learn.

  1. Para um novo ponto, encontra os k vizinhos mais próximos usando a similaridade das características.
  2. A classe mais comum entre eles se torna a previsão.

k é um hiperparâmetro (padrão = 5). Valores diferentes alteram o comportamento do modelo, portanto, ajustar k é importante.

KNeighborsClassifier durante .fit()

Diferente de muitos algoritmos, o KNeighborsClassifier simplesmente armazena os dados de treinamento. Ainda assim, é necessário chamar .fit(X, y) para que o modelo saiba qual conjunto de dados referenciar durante a previsão.

KNeighborsClassifier durante .predict()

Durante a previsão, o classificador busca os k vizinhos mais próximos de cada instância. No exemplo visual, apenas duas características são mostradas; adicionar mais características geralmente melhora a separação das classes e a precisão das previsões.

Note
Nota

Nos gifs acima, apenas duas características, 'body_mass_g' e 'culmen_depth_mm', são usadas porque é desafiador visualizar gráficos de dimensões superiores. Incluir características adicionais provavelmente ajudará o modelo a separar melhor os pontos de dados verdes e vermelhos, permitindo que o KNeighborsClassifier faça previsões mais precisas.

Exemplo de Código do KNeighborsClassifier

É possível criar um classificador, treiná-lo e verificar sua acurácia utilizando .score(). O argumento n_neighbors controla o valor de k—experimente tanto 5 quanto 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

Utilizar k=1 pode resultar em acurácia perfeita, mas isso é enganoso porque a avaliação foi realizada no conjunto de treinamento. Para medir o desempenho real, sempre teste o modelo em dados não vistos.

question mark

Como o KNeighborsClassifier faz previsões para uma nova instância?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain why using k=1 might give perfect accuracy on the training set?

How should I properly evaluate the performance of a k-NN model?

What does the `.score()` method actually measure in this context?

Awesome!

Completion rate improved to 3.13

bookKNeighborsClassifier

Deslize para mostrar o menu

Ao criar o estimador final em um pipeline, o modelo escolhido foi o KNeighborsClassifier. Este capítulo fornece uma breve explicação de como o algoritmo funciona.

Note
Nota

O funcionamento dos modelos não é o foco principal deste curso, portanto, não há problema se algo parecer confuso para você. O tema é explicado com mais detalhes em outros cursos como Linear Regression with Python ou Classification with Python.

k-Nearest Neighbors

k-NN prevê a classe de uma nova instância analisando suas k amostras de treinamento mais semelhantes. KNeighborsClassifier implementa esse método no Scikit-learn.

  1. Para um novo ponto, encontra os k vizinhos mais próximos usando a similaridade das características.
  2. A classe mais comum entre eles se torna a previsão.

k é um hiperparâmetro (padrão = 5). Valores diferentes alteram o comportamento do modelo, portanto, ajustar k é importante.

KNeighborsClassifier durante .fit()

Diferente de muitos algoritmos, o KNeighborsClassifier simplesmente armazena os dados de treinamento. Ainda assim, é necessário chamar .fit(X, y) para que o modelo saiba qual conjunto de dados referenciar durante a previsão.

KNeighborsClassifier durante .predict()

Durante a previsão, o classificador busca os k vizinhos mais próximos de cada instância. No exemplo visual, apenas duas características são mostradas; adicionar mais características geralmente melhora a separação das classes e a precisão das previsões.

Note
Nota

Nos gifs acima, apenas duas características, 'body_mass_g' e 'culmen_depth_mm', são usadas porque é desafiador visualizar gráficos de dimensões superiores. Incluir características adicionais provavelmente ajudará o modelo a separar melhor os pontos de dados verdes e vermelhos, permitindo que o KNeighborsClassifier faça previsões mais precisas.

Exemplo de Código do KNeighborsClassifier

É possível criar um classificador, treiná-lo e verificar sua acurácia utilizando .score(). O argumento n_neighbors controla o valor de k—experimente tanto 5 quanto 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

Utilizar k=1 pode resultar em acurácia perfeita, mas isso é enganoso porque a avaliação foi realizada no conjunto de treinamento. Para medir o desempenho real, sempre teste o modelo em dados não vistos.

question mark

Como o KNeighborsClassifier faz previsões para uma nova instância?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2
some-alt