📜  python sklearn knn 回归示例 - Python (1)

📅  最后修改于: 2023-12-03 14:46:04.125000             🧑  作者: Mango

Python sklearn knn 回归示例

简介

本示例介绍了如何使用 Python 的 Scikit-learn 库实现 k 近邻(kNN)回归。kNN 回归是一种非参数性回归方法,它是基于距离的,它的基本思想是:对于每个新的实例,根据其距离训练集中的 k 个最近邻居的输出进行预测。

程序示例
加载数据

本示例使用 Scikit-learn 库内置的波士顿房价数据集进行演示。首先我们需要先加载数据。

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split

boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=0)

从数据集中加载波士顿房价数据,并把数据集拆分为训练集和测试集。

构建模型

使用 Scikit-learn 库中的 KNeighborsRegressor 方法来建模并进行模型训练。在实例化 KNeighborsRegressor 类时,我们需要传入一个 k 值来指定最近邻居数量。

from sklearn.neighbors import KNeighborsRegressor

knn = KNeighborsRegressor(n_neighbors=5)
knn.fit(X_train, y_train)

该模型会把每个测试点的输出预测为其 k 个邻居的输出的平均值。

模型评估

使用测试集上的数据评估模型的性能。

from sklearn.metrics import mean_squared_error, r2_score

y_pred = knn.predict(X_test)

mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print('Mean squared error: %.2f' % mse)
print('Coefficient of determination (R2): %.2f' % r2)

输出测试集上的均方误差(Mean squared error)和决定系数(Coefficient of determination)。

结论

在本示例中,我们使用 Python 的 Scikit-learn 库实现了 k 近邻回归,并使用波士顿房价数据集对该模型进行了测试。通过测试集上的均方误差和决定系数,我们可以大致了解模型的性能,以及模型对于未观察的数据的预测能力。