这是书中使用KNN对于一个回归问题的解决实例,同时还通过图像可视化向大家展现了KNN回归器参数修改之后的不同之处,这里直接把代码粘贴到下面,希望对于各位学习机器学习有所帮助。
# -*- coding:UTF-8 -*-
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_regression
x, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)
reg = KNeighborsRegressor() # KNN默认近邻数为5
reg.fit(x, y) # KNN拟合数据
# 将结果进行可视化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(x, y, edgecolors='k')
plt.plot(z, reg.predict(z), c='k', linewidth=3)
plt.show()
print('模型评分: {:.2f}'.format(reg.score(x,y)))
# 将KNN的n_neighbors改为2
reg2 = KNeighborsRegressor(n_neighbors=2)
reg2.fit(x, y)
# 结果可视化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(x, y, edgecolors='k')
plt.plot(z, reg2.predict(z), c='k', linewidth=3)
plt.show()
print('模型评分: {:.2f}'.format(reg2.score(x,y)))