Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda KNeighborsClassifier | Modelagem
Introdução ao ML com Scikit-learn

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 pouco claro para você. Esse tema é explicado com mais detalhes em outros cursos como Regressão Linear com Python ou Classificação com Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) é um algoritmo de aprendizado de máquina que prevê resultados identificando as instâncias mais semelhantes no conjunto de treinamento.

KNeighborsClassifier é a implementação do Scikit-learn desse algoritmo para tarefas de classificação. O processo de previsão funciona da seguinte forma:

  1. Para uma nova instância, identifica-se as k instâncias de treinamento mais próximas com base na similaridade das características. Essas são chamadas de vizinhos.
  2. Determina-se a classe mais frequente entre os k vizinhos. Essa classe se torna a previsão para a nova instância.

O parâmetro k especifica o número de vizinhos a serem considerados. Por padrão, está definido como 5. Diferentes valores de k podem levar a previsões diferentes, tornando-o um hiperparâmetro — um parâmetro escolhido antes do treinamento que afeta diretamente o comportamento do modelo.

Experimentar diferentes valores de k e selecionar aquele que proporciona o melhor desempenho é chamado de ajuste de hiperparâmetros. Esse processo é essencial para otimizar o modelo.

KNeighborsClassifier durante .fit()

Diferente da maioria dos modelos de ML, o KNeighborsClassifier apenas armazena o conjunto de treinamento durante o treinamento. Mesmo que o treinamento não consuma tempo, é obrigatório chamar .fit(X, y) para que ele memorize o conjunto de treinamento.

KNeighborsClassifier durante .predict()

Durante a predição, o KNeighborsClassifier busca de forma gananciosa os k vizinhos mais próximos para cada nova instância.

Note
Nota

Nos gifs acima, apenas duas features, 'body_mass_g' e 'culmen_depth_mm', são utilizadas porque é difícil visualizar gráficos de alta dimensão. Incluir features 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 Codificação com KNeighborsClassifier

Crie um KNeighborsClassifier, treine-o e avalie sua acurácia utilizando o método .score(). O conjunto de dados no arquivo .csv já está pré-processado.

O número de vizinhos (k) é especificado pelo argumento n_neighbors ao inicializar o KNeighborsClassifier. Experimente tanto o valor padrão 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

Os resultados mostram alta acurácia, chegando a ser perfeita com 1-vizinho mais próximo.

No entanto, esses escores não são confiáveis porque a avaliação foi feita no conjunto de treinamento—os mesmos dados nos quais o modelo foi treinado. Nesse caso, o modelo simplesmente prevê instâncias que já viu anteriormente.

Para avaliar o desempenho corretamente, o modelo deve ser testado em dados que ainda não encontrou.

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 evaluating on the training set is unreliable?

How should I properly evaluate the performance of a KNeighborsClassifier?

What is the difference between using 1 neighbor and 5 neighbors in k-NN?

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 pouco claro para você. Esse tema é explicado com mais detalhes em outros cursos como Regressão Linear com Python ou Classificação com Python.

k-Nearest Neighbors

k-nearest neighbors (k-NN) é um algoritmo de aprendizado de máquina que prevê resultados identificando as instâncias mais semelhantes no conjunto de treinamento.

KNeighborsClassifier é a implementação do Scikit-learn desse algoritmo para tarefas de classificação. O processo de previsão funciona da seguinte forma:

  1. Para uma nova instância, identifica-se as k instâncias de treinamento mais próximas com base na similaridade das características. Essas são chamadas de vizinhos.
  2. Determina-se a classe mais frequente entre os k vizinhos. Essa classe se torna a previsão para a nova instância.

O parâmetro k especifica o número de vizinhos a serem considerados. Por padrão, está definido como 5. Diferentes valores de k podem levar a previsões diferentes, tornando-o um hiperparâmetro — um parâmetro escolhido antes do treinamento que afeta diretamente o comportamento do modelo.

Experimentar diferentes valores de k e selecionar aquele que proporciona o melhor desempenho é chamado de ajuste de hiperparâmetros. Esse processo é essencial para otimizar o modelo.

KNeighborsClassifier durante .fit()

Diferente da maioria dos modelos de ML, o KNeighborsClassifier apenas armazena o conjunto de treinamento durante o treinamento. Mesmo que o treinamento não consuma tempo, é obrigatório chamar .fit(X, y) para que ele memorize o conjunto de treinamento.

KNeighborsClassifier durante .predict()

Durante a predição, o KNeighborsClassifier busca de forma gananciosa os k vizinhos mais próximos para cada nova instância.

Note
Nota

Nos gifs acima, apenas duas features, 'body_mass_g' e 'culmen_depth_mm', são utilizadas porque é difícil visualizar gráficos de alta dimensão. Incluir features 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 Codificação com KNeighborsClassifier

Crie um KNeighborsClassifier, treine-o e avalie sua acurácia utilizando o método .score(). O conjunto de dados no arquivo .csv já está pré-processado.

O número de vizinhos (k) é especificado pelo argumento n_neighbors ao inicializar o KNeighborsClassifier. Experimente tanto o valor padrão 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

Os resultados mostram alta acurácia, chegando a ser perfeita com 1-vizinho mais próximo.

No entanto, esses escores não são confiáveis porque a avaliação foi feita no conjunto de treinamento—os mesmos dados nos quais o modelo foi treinado. Nesse caso, o modelo simplesmente prevê instâncias que já viu anteriormente.

Para avaliar o desempenho corretamente, o modelo deve ser testado em dados que ainda não encontrou.

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