【问题标题】:Scikit: how to check if an object is a RandomizedSearchCV or a RandomForestClassifier?Scikit:如何检查对象是 RandomizedSearchCV 还是 RandomForestClassifier?
【发布时间】:2015-12-10 16:58:46
【问题描述】:

我有一些使用Grid Search 创建的分类器,还有一些直接使用Random Forests 创建的分类器。

随机森林返回类型sklearn.ensemble.forest.RandomForestClassifier,使用gridSearch 创建的随机森林返回类型sklearn.grid_search.RandomizedSearchCV

我正在尝试以编程方式检查估算器的类型(以确定是否需要在 feature importances 上使用 best_estimator_),但似乎找不到这样做的好方法。

if type(estimator) == 'sklearn.grid_search.RandomizedSearchCV' 是我的第一个猜测,但显然是错误的。

【问题讨论】:

    标签: python-2.7 types scikit-learn random-forest grid-search


    【解决方案1】:

    type() 函数不返回类信息,它返回一个type 对象。因此,将相等性与这样的类信息进行比较是行不通的。

    您需要做的是使用 isinstance(object, classinfo) 来测试估算器的类型。

    如果类型与 classinfo 匹配,此函数返回 True,否则返回 False。

    假设您创建了一个类型为

    的估算器

    sklearn.ensemble.forest.RandomForestClassifier

    然后

    isinstance(估计器,sklearn.ensemble.forest.RandomForestClassifier)

    将返回 True,而

    isinstance(estimator,sklearn.grid_search.RandomizedSearchCV)

    将返回 False。

    然后您可以在 if 语句等测试中使用该结果。

    记得

    导入 sklearn

    访问您可能需要测试的所有 scikit-learn 类信息。

    【讨论】:

      猜你喜欢
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2019-08-18
      相关资源
      最近更新 更多