【发布时间】:2019-08-22 19:30:48
【问题描述】:
我正在尝试构建自己的估算器(回归器)并将其用于插补(KnnImputation)。我在使用网格搜索“GridSearchCV”时遇到问题。 任何想法是什么问题?
我的代码:
class KnnImputation(BaseEstimator, RegressorMixin):
def __init__(self, k=5, distance='euclidean'):
self.k = k
self.distance = distance
def get_params(self, deep=False):
return {'k': self.k, 'distance': self.distance}
def set_params(self, **parameters):
self.k = parameters['k']
self.distance = parameters['distance']
def fit(self, X, y):
self.xTrain = X.values
self.yTrain = y.values
return self
def predict(self, X):
........
return yPred
# scorer:
scorer = make_scorer(mean_squared_error)
kf = KFold(n_splits=10, shuffle=False, random_state=23)
NN = KnnImputation()
gridSearchNN = GridSearchCV(NN, param_grid=params, scoring=scorer, n_jobs=1,
cv=kf.split(xTrain, yTrain), verbose=1)
gridSearchNN.fit(X=xTrain, y=yTrain)
我的错误:
....
File "C:\Users\...........\dataImputation.py", line 85, in knnImputationMethod
gridSearchNN.fit(X=xTrain, y=yTrain)
File "C:\Users\.....\Anaconda3\lib\site-packages\sklearn\model_selection\_search.py", line 740, in fit
self.best_estimator_.fit(X, y, **fit_params)
AttributeError: 'NoneType' object has no attribute 'fit'
【问题讨论】:
-
您在问两个完全不同的问题。请编辑您的问题以专注于单个技术问题。
-
@gmds 我更改了标题,但这仍然是一个问题,所以它是一个问题..
-
您的问题是为什么会收到此错误,或者为什么会收到“超过 60 次”的打印消息?
-
@gmds Q 是“为什么我会收到这个错误?”
标签: python search grid knn imputation