生成数据集

from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

# 生成特征数量为1, 噪音为50的数据集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)

# 散点图
plt.scatter(X, y, c="orange", edgecolor="k")
plt.show()

在这里插入图片描述

回归分析

from sklearn.datasets import make_regression
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt

# 生成特征数量为1, 噪音为50的数据集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)

# knn 回归分析
reg = KNeighborsRegressor()
reg.fit(X, y)

# 预测结果可视化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(X, y, c="orange", edgecolor="k")
plt.plot(z, reg.predict(z), c="k", linewidth=3)
plt.title("KNN Regressor")
plt.show()

在这里插入图片描述

模型评分

在这里插入图片描述

调低邻居数量

KNN近邻数量默认是5,我们调低为2试试。

from sklearn.datasets import make_regression
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt

# 生成特征数量为1, 噪音为50的数据集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)

# knn 回归分析
reg = KNeighborsRegressor(n_neighbors=2)
reg.fit(X, y)

# 预测结果可视化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(X, y, c="orange", edgecolor="k")
plt.plot(z, reg.predict(z), c="k", linewidth=3)
plt.title("KNN Regressor")
plt.show()

在这里插入图片描述

分数从0.77提升到了0.86。
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐