类型错误:预测()缺少 1 个必需的位置参数:'y_train'
Posted
技术标签:
【中文标题】类型错误:预测()缺少 1 个必需的位置参数:\'y_train\'【英文标题】:TypeError: predict() missing 1 required positional argument: 'y_train'类型错误:预测()缺少 1 个必需的位置参数:'y_train' 【发布时间】:2021-09-26 08:31:26 【问题描述】:我无法将 GridSearchCV 与我的自定义估算器一起使用。我收到一条警告说评分失败并且我的 predict() 缺少 1 个位置参数,即 y_train。 这是我的代码 `class FLVQ(BaseEstimator):
def __init__ (self, a=5):
self.a = a
def fit(self, x_train, y_train):
#somecodehere
return self
def compare(self, x):
distance = self.count_dist(x)
index_dist = np.argmin(distance, axis=1)
return np.array([self.centroid[i] for i in index_dist])
def predict(self, x_train, y_train):
return np.sum(self.compare(x_train)==y_train.flatten())/x_train.shape[0]
`
当我运行我的 GS 时:
params='a':[3,5],
gs = GridSearchCV(FLVQ(), param_grid=params,cv=4, scoring="accuracy")
gs.fit(x_train,y_train)
gs.predict(x_test)
我收到“用户警告:评分失败。这些参数在此训练测试分区上的分数将设置为 nan。”和 TypeError 因为我预测缺少 1 个参数。我该如何解决这个问题?由于我使用预测来比较结果和实际标签,因此它显示了模型的准确性
【问题讨论】:
你已经在你的函数中定义了预测部分需要得到y_train
?为什么?因为如果您查看准备好的 API,例如 scikit-learn
来预测您只需要 x_train
或 x_test
。你确定你走在正确的轨道上吗?
【参考方案1】:
需要说明的是,我在预测函数中写y_train
的目的不是为了说明我在想什么,请看下面:
import numpy as np
from sklearn.linear_model import LinearRegression
LR = LinearRegression()
data = np.arange(0,100)
x_train, y_train= np.split(data.sample(frac=1,random_state=1500),[int(0.7 * len(data))])
LR.fit(X_train,y_train)
LR.predict(x_train)
如需了解更多信息,请Scikit-learn/linear regression
【讨论】:
以上是关于类型错误:预测()缺少 1 个必需的位置参数:'y_train'的主要内容,如果未能解决你的问题,请参考以下文章
类型错误:预测()缺少 1 个必需的位置参数:sklearn KMeans 中的“X”
TypeError:scatter()缺少1个必需的位置参数:'y'