所有估计器#

sklearn.utils.discovery.all_estimators(type_filter=None)[source]#

获取sklearn中所有估计器的列表。

此函数会遍历模块并获取所有继承自BaseEstimator的类。测试模块中定义的类不会包含在内。

参数:
type_filter{“classifier”, “regressor”, “cluster”, “transformer”} 或此类字符串列表,默认为None

应返回哪种类型的估计器。如果为None,则不应用任何过滤器,并返回所有估计器。可能的值为“classifier”、“regressor”、“cluster”和“transformer”,以仅获取这些特定类型的估计器,或者是一个列表,以获取至少符合其中一种类型的估计器。

返回值:
estimators元组列表

(name, class) 列表,其中name是类名(字符串),class是类的实际类型。

示例

>>> from sklearn.utils.discovery import all_estimators
>>> estimators = all_estimators()
>>> type(estimators)
<class 'list'>
>>> type(estimators[0])
<class 'tuple'>
>>> estimators[:2]
[('ARDRegression', <class 'sklearn.linear_model._bayes.ARDRegression'>),
 ('AdaBoostClassifier',
  <class 'sklearn.ensemble._weight_boosting.AdaBoostClassifier'>)]
>>> classifiers = all_estimators(type_filter="classifier")
>>> classifiers[:2]
[('AdaBoostClassifier',
  <class 'sklearn.ensemble._weight_boosting.AdaBoostClassifier'>),
 ('BaggingClassifier', <class 'sklearn.ensemble._bagging.BaggingClassifier'>)]
>>> regressors = all_estimators(type_filter="regressor")
>>> regressors[:2]
[('ARDRegression', <class 'sklearn.linear_model._bayes.ARDRegression'>),
 ('AdaBoostRegressor',
  <class 'sklearn.ensemble._weight_boosting.AdaBoostRegressor'>)]
>>> both = all_estimators(type_filter=["classifier", "regressor"])
>>> both[:2]
[('ARDRegression', <class 'sklearn.linear_model._bayes.ARDRegression'>),
 ('AdaBoostClassifier',
  <class 'sklearn.ensemble._weight_boosting.AdaBoostClassifier'>)]