Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте KNeighborsClassifier | Моделювання
Quizzes & Challenges
Quizzes
Challenges
/
Вступ до машинного навчання з Python

bookKNeighborsClassifier

Під час створення фінального оцінювача в конвеєрі було обрано модель KNeighborsClassifier. У цьому розділі наведено коротке пояснення принципу роботи цього алгоритму.

Note
Примітка

Принципи роботи моделей не є основною темою цього курсу, тому не хвилюйтеся, якщо щось здається незрозумілим. Це детальніше пояснюється в інших курсах, таких як Linear Regression with Python або Classification with Python.

k-Найближчих сусідів

k-NN прогнозує клас нового зразка, орієнтуючись на k найбільш схожих навчальних зразків. KNeighborsClassifier реалізує цей підхід у Scikit-learn.

  1. Для нової точки знаходяться k найближчих сусідів за схожістю ознак.
  2. Найпоширеніший клас серед них стає прогнозом.

k — це гіперпараметр (типове значення = 5). Різні значення змінюють поведінку моделі, тому налаштування k є важливим.

KNeighborsClassifier під час .fit()

На відміну від багатьох алгоритмів, KNeighborsClassifier просто зберігає навчальні дані. Однак виклик .fit(X, y) є обов'язковим, щоб модель знала, до якого набору даних звертатися під час прогнозування.

KNeighborsClassifier під час .predict()

Під час прогнозування класифікатор шукає для кожного зразка k найближчих сусідів. У візуальному прикладі показано лише дві ознаки; додавання більшої кількості ознак зазвичай покращує розділення класів і точність прогнозування.

Note
Примітка

У наведених вище gif використано лише дві ознаки, 'body_mass_g' та 'culmen_depth_mm', оскільки візуалізувати багатовимірні графіки складно. Додавання додаткових ознак, ймовірно, допоможе моделі краще розділяти зелені та червоні точки даних, що дозволить KNeighborsClassifier робити точніші прогнози.

Приклад коду KNeighborsClassifier

Можна створити класифікатор, навчити його та перевірити його точність за допомогою .score(). Аргумент n_neighbors визначає значення k—спробуйте як 5, так і 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

Використання k=1 може дати ідеальну точність, але це є оманливим, оскільки оцінювання виконувалося на навчальній вибірці. Щоб оцінити реальну ефективність, завжди перевіряйте модель на невідомих даних.

question mark

Як KNeighborsClassifier робить передбачення для нового екземпляра?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

Свайпніть щоб показати меню

Під час створення фінального оцінювача в конвеєрі було обрано модель KNeighborsClassifier. У цьому розділі наведено коротке пояснення принципу роботи цього алгоритму.

Note
Примітка

Принципи роботи моделей не є основною темою цього курсу, тому не хвилюйтеся, якщо щось здається незрозумілим. Це детальніше пояснюється в інших курсах, таких як Linear Regression with Python або Classification with Python.

k-Найближчих сусідів

k-NN прогнозує клас нового зразка, орієнтуючись на k найбільш схожих навчальних зразків. KNeighborsClassifier реалізує цей підхід у Scikit-learn.

  1. Для нової точки знаходяться k найближчих сусідів за схожістю ознак.
  2. Найпоширеніший клас серед них стає прогнозом.

k — це гіперпараметр (типове значення = 5). Різні значення змінюють поведінку моделі, тому налаштування k є важливим.

KNeighborsClassifier під час .fit()

На відміну від багатьох алгоритмів, KNeighborsClassifier просто зберігає навчальні дані. Однак виклик .fit(X, y) є обов'язковим, щоб модель знала, до якого набору даних звертатися під час прогнозування.

KNeighborsClassifier під час .predict()

Під час прогнозування класифікатор шукає для кожного зразка k найближчих сусідів. У візуальному прикладі показано лише дві ознаки; додавання більшої кількості ознак зазвичай покращує розділення класів і точність прогнозування.

Note
Примітка

У наведених вище gif використано лише дві ознаки, 'body_mass_g' та 'culmen_depth_mm', оскільки візуалізувати багатовимірні графіки складно. Додавання додаткових ознак, ймовірно, допоможе моделі краще розділяти зелені та червоні точки даних, що дозволить KNeighborsClassifier робити точніші прогнози.

Приклад коду KNeighborsClassifier

Можна створити класифікатор, навчити його та перевірити його точність за допомогою .score(). Аргумент n_neighbors визначає значення k—спробуйте як 5, так і 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

Використання k=1 може дати ідеальну точність, але це є оманливим, оскільки оцінювання виконувалося на навчальній вибірці. Щоб оцінити реальну ефективність, завжди перевіряйте модель на невідомих даних.

question mark

Як KNeighborsClassifier робить передбачення для нового екземпляра?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2
some-alt