问题遇到的现象和发生背景
做集成算法时出现了下列错误,求帮忙
问题相关代码,请勿粘贴截图
def TrainPredict(self,x_train,y_train,x_test): #训练基础模型,并返回模型预测结果
clf = self.estimator.fit(np.array(x_train),np.array(y_train))
result = clf.predict(x_test)
return result
def Bagging_clf(self, x_train, x_test, y_train, y_test, sample_type="RepetitionRandomSampling"):
print("self.Bagging single_basemodel")
result = ()
if sample_type == "RepetitionRandomSampling":
print("选择的采样方法:", sample_type)
sample_function = self.RepetitionRandomSampling
elif sample_type == "UnderSampling":
print("选择的采样方法:", sample_type)
sample_function = self.UnderSampling
print("采样率", self.rate)
elif sample_type == "IF_SubSample":
print("选择的采样方法:", sample_type)
sample_function = self.IF_SubSample
print("采样率", (1.0 - self.rate))
print(sample_function(train, len(train)))
for i in range(self.n_estimators):
sample = sample_function(train, len(train)) # 构建数据集
x_train = np.array(sample)[:, :, 0:-1]
y_train = np.array(sample)[:, :, -1]
list(result).append(self.TrainPredict(x_train, y_train, x_test)) # 训练模型 返回每个模型的输出
print(np.array(result))
score = self.Voting(result)
recall, precision = self.Metrics(score, y_test)
return recall, precision
recall_self,precision_self = clf_self.Bagging_clf(x_train, x_test, y_train, y_test)
print("recall:",'\n',recall_self)
print("precision",'\n',precision_self)
运行结果及报错内容
Traceback (most recent call last):
File "D:\pycharm\practice\待改进(smote与模仿github中的自写bagging).py", line 236, in
recall_self,precision_self = clf_self.Bagging_clf(x_train, x_test, y_train, y_test)
File "D:\pycharm\practice\待改进(smote与模仿github中的自写bagging).py", line 170, in Bagging_clf
list(result).append(self.TrainPredict(x_train, y_train, x_test)) # 训练模型 返回每个模型的输出
File "D:\pycharm\practice\待改进(smote与模仿github中的自写bagging).py", line 133, in TrainPredict
result = clf.predict(x_test)
AttributeError: 'History' object has no attribute 'predict'