如何获得GridSearchCV(随机森林分类器Scikit)的最佳估计器



我正在运行GridSearch CV,以优化Scikit中分类器的参数。完成后,我想知道选择哪些参数是最好的。

每当我这样做时,我都会得到AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_',并且无法说明原因,因为这似乎是文档上的合法属性。

from sklearn.grid_search import GridSearchCV
X = data[usable_columns]
y = data[target]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True) 
param_grid = {
    'n_estimators': [200, 700],
    'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
print 'n',CV_rfc.best_estimator_

屈服:

`AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'

您必须在获得最佳参数组合之前安装数据。

from sklearn.grid_search import GridSearchCV
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
# Build a classification task using 3 informative features
X, y = make_classification(n_samples=1000,
                           n_features=10,
                           n_informative=3,
                           n_redundant=0,
                           n_repeated=0,
                           n_classes=2,
                           random_state=0,
                           shuffle=False)

rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True) 
param_grid = { 
    'n_estimators': [200, 700],
    'max_features': ['auto', 'sqrt', 'log2']
}
CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)
CV_rfc.fit(X, y)
print CV_rfc.best_params_

只是要添加一个点以保持清晰。

文档说以下内容:

best_estimator_:估计器或dict:

通过搜索选择的估计器,即在左侧数据上得分最高的估计器(或最小的损失)。

当带有各种参数调用网格搜索时,它将根据给定的得分手弹奏选择最高分数的搜索。最佳估计器提供了导致最高分数的参数信息。

因此,这只能在拟合数据后才调用。

相关内容

  • 没有找到相关文章

最新更新