KNeighborsClassifier
Під час створення фінального оцінювача в конвеєрі було обрано модель KNeighborsClassifier. У цьому розділі наведено коротке пояснення принципу роботи цього алгоритму.
Принципи роботи моделей не є основною темою цього курсу, тому не хвилюйтеся, якщо щось здається незрозумілим. Це детальніше пояснюється в інших курсах, таких як Linear Regression with Python або Classification with Python.
k-Найближчих сусідів
k-NN прогнозує клас нового зразка, орієнтуючись на k найбільш схожих навчальних зразків.
KNeighborsClassifier реалізує цей підхід у Scikit-learn.
- Для нової точки знаходяться k найближчих сусідів за схожістю ознак.
- Найпоширеніший клас серед них стає прогнозом.
k — це гіперпараметр (типове значення = 5). Різні значення змінюють поведінку моделі, тому налаштування k є важливим.
KNeighborsClassifier під час .fit()
На відміну від багатьох алгоритмів, KNeighborsClassifier просто зберігає навчальні дані.
Однак виклик .fit(X, y) є обов'язковим, щоб модель знала, до якого набору даних звертатися під час прогнозування.
KNeighborsClassifier під час .predict()
Під час прогнозування класифікатор шукає для кожного зразка k найближчих сусідів. У візуальному прикладі показано лише дві ознаки; додавання більшої кількості ознак зазвичай покращує розділення класів і точність прогнозування.
У наведених вище gif використано лише дві ознаки, 'body_mass_g' та 'culmen_depth_mm', оскільки візуалізувати багатовимірні графіки складно. Додавання додаткових ознак, ймовірно, допоможе моделі краще розділяти зелені та червоні точки даних, що дозволить KNeighborsClassifier робити точніші прогнози.
Приклад коду KNeighborsClassifier
Можна створити класифікатор, навчити його та перевірити його точність за допомогою .score().
Аргумент n_neighbors визначає значення k—спробуйте як 5, так і 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))
Використання k=1 може дати ідеальну точність, але це є оманливим, оскільки оцінювання виконувалося на навчальній вибірці.
Щоб оцінити реальну ефективність, завжди перевіряйте модель на невідомих даних.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
KNeighborsClassifier
Свайпніть щоб показати меню
Під час створення фінального оцінювача в конвеєрі було обрано модель KNeighborsClassifier. У цьому розділі наведено коротке пояснення принципу роботи цього алгоритму.
Принципи роботи моделей не є основною темою цього курсу, тому не хвилюйтеся, якщо щось здається незрозумілим. Це детальніше пояснюється в інших курсах, таких як Linear Regression with Python або Classification with Python.
k-Найближчих сусідів
k-NN прогнозує клас нового зразка, орієнтуючись на k найбільш схожих навчальних зразків.
KNeighborsClassifier реалізує цей підхід у Scikit-learn.
- Для нової точки знаходяться k найближчих сусідів за схожістю ознак.
- Найпоширеніший клас серед них стає прогнозом.
k — це гіперпараметр (типове значення = 5). Різні значення змінюють поведінку моделі, тому налаштування k є важливим.
KNeighborsClassifier під час .fit()
На відміну від багатьох алгоритмів, KNeighborsClassifier просто зберігає навчальні дані.
Однак виклик .fit(X, y) є обов'язковим, щоб модель знала, до якого набору даних звертатися під час прогнозування.
KNeighborsClassifier під час .predict()
Під час прогнозування класифікатор шукає для кожного зразка k найближчих сусідів. У візуальному прикладі показано лише дві ознаки; додавання більшої кількості ознак зазвичай покращує розділення класів і точність прогнозування.
У наведених вище gif використано лише дві ознаки, 'body_mass_g' та 'culmen_depth_mm', оскільки візуалізувати багатовимірні графіки складно. Додавання додаткових ознак, ймовірно, допоможе моделі краще розділяти зелені та червоні точки даних, що дозволить KNeighborsClassifier робити точніші прогнози.
Приклад коду KNeighborsClassifier
Можна створити класифікатор, навчити його та перевірити його точність за допомогою .score().
Аргумент n_neighbors визначає значення k—спробуйте як 5, так і 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))
Використання k=1 може дати ідеальну точність, але це є оманливим, оскільки оцінювання виконувалося на навчальній вибірці.
Щоб оцінити реальну ефективність, завжди перевіряйте модель на невідомих даних.
Дякуємо за ваш відгук!