如何导入所有sklearns回归函数

2024-04-25 05:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一些预测建模,并想对scikit-learn中的不同类型的回归器进行基准测试,只是想看看有什么,以及它们在给定的预测任务中是如何执行的。在

我受到这个kaggle kernel的启发,在这篇文章中,作者基本上手动导入了一堆分类器(大约10个)并对它们进行了基准测试。在

我很难找到sklearn中的回归函数的全面导入列表,所以我试图自动化import语句,以自动返回我可以使用的类的列表。在

我尝试动态导入类:

from importlib import import_module
import sklearn

def all_regressors():
    regressors=[]
    for module in sklearn.__all__:
        try:
            regressors.extend([cls for cls in import_module(f'sklearn.{module}').__all__ if 'Regress' in cls ])
        except:
            pass
    regressors.append(sklearn.svm.SVR)
    return regressors
print(all_regressors())

但我只把名称作为字符串而不是类:

^{pr2}$

我怎样才能得到真正的课程?在


Tags: inimport类型列表for基准sklearnscikit
1条回答
网友
1楼 · 发布于 2024-04-25 05:22:54

我发现我必须在模块对象上使用getattr

from importlib import import_module
import sklearn

def all_regressors():
    regressors=[]
    for module in sklearn.__all__:
        try:
            module = import_module(f'sklearn.{module}')
            regressors.extend([getattr(module,cls) for cls in module.__all__  if 'Regress' in cls ])
        except:
            pass
    regressors.append(sklearn.svm.SVR)
    return regressors
print(all_regressors())
^{pr2}$

相关问题 更多 >