Реалізація K-NN
KNeighborsClassifier
Реалізація методу k-найближчих сусідів є досить простою. Необхідно лише імпортувати та використати клас KNeighborsClassifier.
Конструктор:
KNeighborsClassifier(n_neighbors = 5)n_neighbors– кількість сусідів (k). Значення за замовчуванням — 5;
Методи:
fit(X, y)– навчання на тренувальній вибірці;predict(X)– прогнозування класу для X;score(X, y)– повертає точність для набору X, y.
Після імпорту класу та створення об'єкта класу наступним чином:
# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
Необхідно подати тренувальні дані за допомогою методу .fit():
knn.fit(X_scaled, y)
І це все! Тепер можна прогнозувати нові значення.
y_pred = knn.predict(X_new_scaled)
Масштабування даних
Однак пам'ятайте, що дані обов'язково мають бути масштабовані. Для цього часто використовується StandardScaler:
Конструктор:
StandardScaler().
Методи:
fit(X)– обчислює xˉ та s для X;transform(X)– повертає Xscaled, використовуючи xˉ,s з.fit();fit_transform(X)– виконує.fit(X), а потім.transform(X).
Вам потрібно обчислювати xˉ та s лише на тренувальній вибірці за допомогою .fit() або .fit_transform().
Потім використовуйте .transform() для тестової вибірки, щоб обидві вибірки були масштабовані однаково:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
Використання різних значень масштабування для тренувальної та тестової вибірок погіршує якість прогнозів.
Приклад
Ми прогнозуємо, чи сподобався людині Star Wars VI на основі її оцінок Епізодів IV та V (з The Movies Dataset).
Після навчання ми тестуємо двох користувачів: один оцінив IV/V як 5 та 5, інший — як 4.5 та 4.
123456789101112131415161718192021222324252627from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 3.33
Реалізація K-NN
Свайпніть щоб показати меню
KNeighborsClassifier
Реалізація методу k-найближчих сусідів є досить простою. Необхідно лише імпортувати та використати клас KNeighborsClassifier.
Конструктор:
KNeighborsClassifier(n_neighbors = 5)n_neighbors– кількість сусідів (k). Значення за замовчуванням — 5;
Методи:
fit(X, y)– навчання на тренувальній вибірці;predict(X)– прогнозування класу для X;score(X, y)– повертає точність для набору X, y.
Після імпорту класу та створення об'єкта класу наступним чином:
# Importing the class
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
Необхідно подати тренувальні дані за допомогою методу .fit():
knn.fit(X_scaled, y)
І це все! Тепер можна прогнозувати нові значення.
y_pred = knn.predict(X_new_scaled)
Масштабування даних
Однак пам'ятайте, що дані обов'язково мають бути масштабовані. Для цього часто використовується StandardScaler:
Конструктор:
StandardScaler().
Методи:
fit(X)– обчислює xˉ та s для X;transform(X)– повертає Xscaled, використовуючи xˉ,s з.fit();fit_transform(X)– виконує.fit(X), а потім.transform(X).
Вам потрібно обчислювати xˉ та s лише на тренувальній вибірці за допомогою .fit() або .fit_transform().
Потім використовуйте .transform() для тестової вибірки, щоб обидві вибірки були масштабовані однаково:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
Використання різних значень масштабування для тренувальної та тестової вибірок погіршує якість прогнозів.
Приклад
Ми прогнозуємо, чи сподобався людині Star Wars VI на основі її оцінок Епізодів IV та V (з The Movies Dataset).
Після навчання ми тестуємо двох користувачів: один оцінив IV/V як 5 та 5, інший — як 4.5 та 4.
123456789101112131415161718192021222324252627from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import StandardScaler import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/starwars_binary.csv') # Dropping the target column and leaving only features as `X_train` X_train = df.drop('StarWars6', axis=1) # Storing target column as `y_train`, which contains 1 (liked SW 6) or 0 (didn't like SW 6) y_train = df['StarWars6'] # Test set of two people X_test = np.array([[5, 5], [4.5, 4]]) # Scaling the data scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # Building a model and predict new instances knn = KNeighborsClassifier(n_neighbors=13).fit(X_train, y_train) y_pred = knn.predict(X_test) print(y_pred)
Дякуємо за ваш відгук!