You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KNeighborsRegressor.fit()传2个参数仍缺位置参数y是什么原因

错误原因

你代码的核心问题是没有实例化KNeighborsRegressor类,直接将类本身赋值给了mod变量:

  • 类的实例方法(比如fit()、predict())在调用时,第一个参数默认会传入实例对象本身(也就是self),只有实例化后的对象调用方法时,才会自动补全self参数。
  • 你写的mod=KNeighborsRegressor是把类本身赋值给了mod,此时调用mod.fit(X,y),Python会把你传入的X识别为self参数,y识别为fit方法的第一个形参X,自然就会提示缺少第二个形参y。
  • 官方示例里的neigh = KNeighborsRegressor(n_neighbors=2)是调用类的构造方法完成实例化,得到的neigh是类的实例对象,此时调用fit方法会自动传入self,你只需要传X和y两个参数即可。
  • 你原代码中单独写的KNeighborsRegressor()一行没有赋值给任何变量,属于无效代码,可直接删除。

修正后的代码

from sklearn.datasets import load_boston
X,y=load_boston(return_X_y=True)

from sklearn.neighbors import KNeighborsRegressor
# 加括号完成类的实例化,括号内可传入n_neighbors等自定义参数
mod = KNeighborsRegressor()
mod.fit(X, y)
mod.predict(X)

内容的提问来源于stack exchange,提问作者Ruturaj ghumkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:06:03