做集成学习的时候出现`AttributeError: 'list' object has no attribute 'set_params'`不知道怎么解决

做集成学习的时候出现AttributeError: 'list' object has no attribute 'set_params'不知道怎么解决

from sklearn.ensemble import AdaBoostRegressor
estimator=[
    ExtraTreesRegressor(random_state=42),
    RandomForestRegressor(random_state=42),
    GradientBoostingRegressor(random_state=42)]
AdaBoost=AdaBoostRegressor(estimator)
AdaBoost.fit(X_train2,Y_train2)
y_pred=AdaBoost.predict(X_test2)
r2_score(Y_test,y_pred)
以下是报错的内容
AttributeError                            Traceback (most recent call last)
<ipython-input-197-0ee740a82236> in <module>
      5     GradientBoostingRegressor(random_state=42)]
      6 AdaBoost=AdaBoostRegressor(estimator)
----> 7 AdaBoost.fit(X_train2,Y_train2)
      8 y_pred=AdaBoost.predict(X_test2)
      9 r2_score(Y_test,y_pred)

~\Anaconda3\lib\site-packages\sklearn\ensemble\_weight_boosting.py in fit(self, X, y, sample_weight)
    992 
    993         # Fit
--> 994         return super().fit(X, y, sample_weight)
    995 
    996     def _validate_estimator(self):

~\Anaconda3\lib\site-packages\sklearn\ensemble\_weight_boosting.py in fit(self, X, y, sample_weight)
    140                 X, y,
    141                 sample_weight,
--> 142                 random_state)
    143 
    144             # Early termination

~\Anaconda3\lib\site-packages\sklearn\ensemble\_weight_boosting.py in _boost(self, iboost, X, y, sample_weight, random_state)
   1037             If None then boosting has terminated early.
   1038         """
-> 1039         estimator = self._make_estimator(random_state=random_state)
   1040 
   1041         # Weighted sampling of the training set with replacement

~\Anaconda3\lib\site-packages\sklearn\ensemble\_base.py in _make_estimator(self, append, random_state)
    146         """
    147         estimator = clone(self.base_estimator_)
--> 148         estimator.set_params(**{p: getattr(self, p)
    149                                 for p in self.estimator_params})
    150 

AttributeError: 'list' object has no attribute 'set_params'

初步怀疑是X_train 的数据格式不对

"AttributeError: 'list' object has no attribute 'set_edit_text'" 这个错误通常是当你尝试对 Python 中的一个列表(list)对象调用 `set_edit_text` 方法,而这个方法并不属于列表。`set_edit_text` 通常是在一些文本编辑控件如 `EditText` 或者某些特定的对象上找到的。 解决这个问题需要检查以下几个步骤: 1. **确认对象**:确保你正在操作的是正确的对象实例。如果预期的对象是一个 `EditText`,那么你应该确保它已经被正确创建并赋值给了变量。 ```python edit_text = your_text_view_instance # 将your_text_view_instance替换为你实际的文本视图对象 ``` 2. **检查对象类型**:使用 `type()` 函数确认你试图操作的对象类型是否匹配。如果 `edit_text` 是一个列表,你应该使用列表的方法,而不是 `set_edit_text`。 ```python if isinstance(edit_text, list): print("这是列表,你需要处理的是另一个对象,例如:", type(edit_text)) else: edit_text.set_edit_text("你的文本") # 如果是EditText对象,这里就可以设置文本了 ``` 3. **函数或方法查找**:如果确实有一个名为 `set_edit_text` 的方法,但找不到,可能是由于导入的库或模块的问题,或者方法名称拼写有误。 4. **更新文档或源码**:如果上述都不是问题,确保你使用的库或者API文档中提到过该方法,或者直接查阅源码看是否有此方法。 如果还有问题,提供出完整的上下文会更有帮助,比如相关的代码段。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值