Scikit:如何检查对象是 RandomizedSearchCV 还是 RandomForestClassifier?

sap*_*ico 0 types python-2.7 random-forest scikit-learn grid-search

我有一些分类器是使用Grid Search创建的,其他分类器是直接创建为Random Forests 的

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

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

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

pai*_*nco 5

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

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

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

假设您创建了一个类型的估算器

sklearn.ensemble.forest.RandomForestClassifier

然后

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

将返回 True,而

isinstance(估计器,sklearn.grid_search.RandomizedSearchCV)

会返回 False。

然后,您可以在诸如 if 语句之类的测试中使用该结果。

记得

导入sklearn

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