📅  最后修改于: 2023-12-03 14:46:04.125000             🧑  作者: Mango
本示例介绍了如何使用 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 近邻回归,并使用波士顿房价数据集对该模型进行了测试。通过测试集上的均方误差和决定系数,我们可以大致了解模型的性能,以及模型对于未观察的数据的预测能力。