Исследование регрессии k-ближайших соседей с помощью Scikit-Learn: комплексное руководство

В области машинного обучения k-Nearest Neighbours (kNN) – это популярный алгоритм, используемый как для задач классификации, так и для регрессии. В то время как классификация kNN присваивает метки точкам данных на основе их ближайших соседей, регрессия kNN оценивает непрерывную выходную переменную путем усреднения значений ее k ближайших соседей. В этой статье мы углубимся в регрессию k-Nearest Neighbours с использованием библиотеки Scikit-Learn на Python, изучим различные методы и предоставим примеры кода.

Метод 1: импорт необходимых библиотек

Для начала импортируем необходимые библиотеки:

import numpy as np
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

Метод 2: загрузка и подготовка данных

Далее нам нужно загрузить и подготовить данные для регрессии. Обычно это предполагает разделение данных на признаки (X) и целевую переменную (y). В этом примере мы предполагаем, что данные хранятся в файле CSV.

import pandas as pd
# Load data from CSV
data = pd.read_csv('data.csv')
# Split into features (X) and target variable (y)
X = data.drop('target', axis=1)
y = data['target']

Метод 3: разделение данных на обучающий и тестовый наборы

Чтобы оценить производительность нашей регрессионной модели, нам нужно разделить данные на обучающий и тестовый наборы. Обучающий набор будет использоваться для обучения модели, а тестовый набор — для оценки ее производительности.

# Split the data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Метод 4: обучение регрессора k-ближайших соседей

Теперь давайте обучим регрессор k-Nearest Neighbours, используя обучающие данные.

# Create a k-Nearest Neighbors regressor object
regressor = KNeighborsRegressor(n_neighbors=5)
# Train the model
regressor.fit(X_train, y_train)

Метод 5. Прогнозирование

После обучения модели мы можем использовать ее для прогнозирования новых, ранее неизвестных данных.

# Make predictions on the test set
y_pred = regressor.predict(X_test)

Метод 6: оценка модели

Чтобы оценить эффективность регрессионной модели k-ближайших соседей, мы можем рассчитать такие показатели, как среднеквадратическая ошибка (MSE). Более низкие значения MSE указывают на лучшую производительность модели.

# Calculate mean squared error
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

В этой статье мы исследовали алгоритм регрессии k-Nearest Neighbours с использованием Scikit-Learn на Python. Мы рассмотрели такие методы, как импорт библиотек, загрузка и подготовка данных, разделение данных на обучающие и тестовые наборы, обучение регрессора, прогнозирование и оценка модели с использованием среднеквадратической ошибки. Используя возможности регрессии kNN, вы можете создавать точные прогнозные модели для различных реальных задач регрессии.

Не забудьте поэкспериментировать с различными значениями k и изучить дополнительные методы, такие как масштабирование функций и настройка гиперпараметров, чтобы еще больше повысить производительность ваших регрессионных моделей k-Nearest Neighbours.

Освоив алгоритм регрессии k-Nearest Neighbours, вы сможете получить ценную информацию из своих данных и принимать обоснованные решения в таких областях, как финансы, здравоохранение и маркетинг.