m0_61705011 2021-11-26 14:35 采纳率: 50%
浏览 346
已结题

AttributeError: 'History' object has no attribute 'predict' 做集成时碰到这个问题怎么办呢?

问题遇到的现象和发生背景

做集成算法时出现了下列错误,求帮忙

问题相关代码,请勿粘贴截图
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'

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 於黾 2021-11-26 14:54
    关注
    clf = self.estimator.fit(np.array(x_train),np.array(y_train))
    

    这个返回的是个History类型的对象
    而History里面没有predict这个方法
    你是不是搞错了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题