下载或者导入wave数据集,使用K近邻方法生成wave回归模型,并绘制出该模型的预测结果。

本文展示了如何使用scikit-learn库中的KNeighborsRegressor实现KNN回归,对make_wave数据集进行训练、预测,并通过不同邻居数量比较模型在训练集和测试集上的性能。
摘要由CSDN通过智能技术生成

目录

代码:

运行结果:


代码:

import mglearn
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split
import numpy as np
mglearn.plots.plot_knn_regression(n_neighbors=1)


# 获取数据
X,y=mglearn.datasets.make_wave(n_samples=40)
# 数据分割
x_train,x_test,y_train,y_test =train_test_split(X,y,random_state=0)
# 模型实例化,并将邻居个数设为3
reg =KNeighborsRegressor(n_neighbors=3)
reg.fit(x_train,y_train)
# 预测
print("Test set Predictions:\n{}".format(reg.predict(x_test)))



X, y = mglearn.datasets.make_wave(n_samples=40)
# 将wave数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

fig, axes=plt.subplots(1,3,figsize=(15,4))
#创建1000个数据点,在-3和3之间均匀分布
line=np.linspace(-3,3,1000).reshape(-1,1)
for n_neighbors, ax in zip([1,3,9],axes):
    #利用 1个 3个 9个邻居分别进行预测
    reg= KNeighborsRegressor(n_neighbors=n_neighbors)
    reg.fit(X_train,y_train)
    ax.plot(line,reg.predict(line))
    ax.plot(X_train,y_train,'^',c=mglearn.cm2(0),markersize=8)
    ax.plot(X_test,y_test,'v',c=mglearn.cm2(1),markersize=8)
    ax.set_title(
        "{} neighbor(s)\n train score:{:.2f} test score:{:.2f}".format(
        n_neighbors,reg.score(X_train,y_train),reg.score(X_test,y_test)))
    ax.set_xlabel("feature")
    ax.set_ylabel("target")
axes[0].legend(["Model predictions","Train data/target","Test data/traget"],loc="best")

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值