如何从sklearn的all_estimators返回的对象列表中导入并使用类对象
解决方法
sklearn.utils.all_estimators返回的结果中,每个元组的第二个元素本身就是已经加载完成的模型类对象,不需要额外执行导入操作。
错误原因说明
import name[1]写法错误:import语法要求后面跟模块路径字符串,而name[1]已经是可用的类对象,无需重复导入name[0].get_params()写法错误:name[0]是模型名称的字符串类型,没有get_params方法,需要调用类对象的对应方法
完整可运行代码
from sklearn.utils import all_estimators # 获取所有回归器 estimators = all_estimators(type_filter="regressor") regressor_store = {} for reg_name, reg_class in estimators: # 将类注册到全局作用域,可直接通过类名实例化 globals()[reg_name] = reg_class # 存入字典方便批量管理,避免全局变量污染 regressor_store[reg_name] = reg_class # 打印模型参数:先实例化再调用get_params print(f"===== {reg_name} 参数 =====") print(reg_class().get_params(deep=False), "\n") # 使用示例 if __name__ == "__main__": # 直接用类名创建实例 ada_model = AdaBoostRegressor(n_estimators=100, random_state=42) print("实例化测试:", ada_model)
补充说明
如果运行时遇到缺失依赖的警告,安装对应依赖包即可正常获取对应回归器。
内容的提问来源于stack exchange,提问作者wildcat89
相关产品推荐
相关产品推荐

