1
我正在做一些預測建模,並且想要對scikit-learn
中的不同種類的迴歸器進行基準測試,以瞭解它們在哪些方面以及它們在給定預測任務中的表現。如何導入所有sklearns迴歸器
我受到啓發,通過這個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())
但我只拿回名稱作爲字符串,而不是類:
['RandomForestRegressor', 'ExtraTreesRegressor', 'BaggingRegressor',
'GradientBoostingRegressor', 'AdaBoostRegressor',
'GaussianProcessRegressor', 'IsotonicRegression', 'ARDRegression',
'HuberRegressor', 'LinearRegression', 'LogisticRegression',
'LogisticRegressionCV', 'PassiveAggressiveRegressor',
'RandomizedLogisticRegression', 'SGDRegressor', 'TheilSenRegressor',
'RANSACRegressor', 'MultiOutputRegressor', 'KNeighborsRegressor',
'RadiusNeighborsRegressor', 'MLPRegressor', 'DecisionTreeRegressor',
'ExtraTreeRegressor', <class 'sklearn.svm.classes.SVR'>]
我怎樣才能得到實際的類?