首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'AnyRegressor‘对象没有属性'estimators_’

'AnyRegressor‘对象没有属性'estimators_’
EN

Stack Overflow用户
提问于 2022-06-30 14:16:10
回答 1查看 117关注 0票数 0

我试着用这个函数一次使用多个回归器元素

代码语言:javascript
运行
复制
def regressors(x_train,y_train,xtest,ytest):
    from sklearn.ensemble import RandomForestRegressor
    from sklearn.ensemble import AdaBoostRegressor
    from sklearn.linear_model import ARDRegression,LinearRegression,SGDRegressor
    regressor = *AdaBoostRegressor(),*RandomForestRegressor(),*LinearRegression(),*SGDRegressor()
    for r in regressor:
        r.fit(x_train,y_train)
        pred = r.predict(xtest)
        print(r.__class__.__name__)
        print(mean_squared_error(pred,ytest))
        print(r2_score(pred,ytest))
        print('\n')
regressors(x_train,y_train,xtest,ytest)

它总是返回AttributeError: 'AdaBoostRegressor' object has no attribute 'estimators_'或任何已设置为指针列表中第一个的回归器的追溯,尽管在我单独使用它们时,它们中的任何一个都运行良好,就像在这段代码中一样。

代码语言:javascript
运行
复制
rfr = RandomForestRegressor()
abr = AdaBoostRegressor()
abr.fit(x_train,y_train)
rfr.fit(x_train,y_train)
pred = abr.predict(xtest)
predr = rfr.predict(xtest)
print(mean_squared_error(ytest,pred),r2_score(ytest,pred))
print(mean_squared_error(predr,ytest), r2_score(predr,ytest))

但是我不想写意大利面代码,所以我尝试了这个函数,任何人都可以帮助我克服这个错误,我想知道为什么它会使用估值器,当我没有在函数代码中指定任何估值器时,我看到了一些使用df.at()的解决方案,但是它对我没有用。

EN

Stack Overflow用户

发布于 2022-06-30 15:00:47

我认为您必须这样写,因为回归器不是可迭代的:

代码语言:javascript
运行
复制
regressor = [AdaBoostRegressor(),RandomForestRegressor(),LinearRegression(),SGDRegressor()]
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72817394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档