欢迎访问宙启技术站
智能推送

使用sklearn.neighbors构建KNN回归器并进行预测

发布时间:2024-01-01 21:51:57

K最近邻(K-Nearest Neighbors,KNN)是一种基本的监督学习算法,可以用于进行分类和回归。在这篇文章中,我将介绍如何使用sklearn.neighbors库构建KNN回归模型,并进行预测。

首先,我们需要导入必要的库和数据集。在这个例子中,我将使用一个简单的数据集来演示KNN回归器的使用。我们使用的数据集是波士顿房价数据集,包含了关于波士顿地区的房屋特征和价格。

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

# 导入数据
boston_dataset = datasets.load_boston()
X = boston_dataset.data
y = boston_dataset.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

接下来,我们可以创建KNN回归器并进行训练。KNN回归器使用最近的K个邻居的标签来进行预测。在sklearn库中,使用KNeighborsRegressor类来创建KNN回归器。

# 创建KNN回归器,设置K值为5
knn_regressor = KNeighborsRegressor(n_neighbors=5)

# 训练KNN回归器
knn_regressor.fit(X_train, y_train)

一旦我们训练了KNN回归器,我们可以使用它来进行预测。在这个例子中,我们使用测试集来评估模型的性能,并计算均方根误差(Mean Squared Error,MSE)来衡量预测结果与实际结果的差异。

# 使用回归器进行预测
y_pred = knn_regressor.predict(X_test)

# 计算均方根误差
mse = mean_squared_error(y_test, y_pred)
print("均方根误差:", mse)

最后,我们可以输出预测的房价结果,并可视化预测结果和实际结果的对比。

# 输出预测结果
predictions = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})
print(predictions)

# 可视化结果
import matplotlib.pyplot as plt

plt.scatter(y_test, y_pred)
plt.xlabel('实际房价')
plt.ylabel('预测房价')
plt.title('KNN回归器预测结果')
plt.show()

以上就是使用sklearn.neighbors库构建KNN回归器的例子。KNN回归器可以用于连续变量的预测,例如房价、股票价格等。通过调整K值和其他参数,我们可以改善模型的性能。希望本文对你理解KNN回归器的使用有所帮助。