当前位置: 首页 > 面试题库 >

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

相野
2023-03-14
问题内容

我正在运行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_


 类似资料:
  • 本文向大家介绍随机森林如何评估特征重要性?相关面试题,主要包含被问及随机森林如何评估特征重要性?时的应答技巧和注意事项,需要的朋友参考一下 decrease accracy 对一棵树随机改变OOB样本的第j列得到误差1,保持其他列不变,对j列进行随机上下置换,得到误差2,误差之间的差距越大说明特征越重要

  • 随机森林是集成学习中可以和梯度提升树GBDT分庭抗礼的算法,尤其是它可以很方便的并行训练,在如今大数据大样本的的时代很有诱惑力。 1. bagging的原理 在集成学习原理小结中,我们给Bagging画了下面一张原理图。 从上图可以看出,Bagging的弱学习器之间的确没有boosting那样的联系。它的特点在“随机采样”。那么什么是随机采样? 随机采样(bootsrap)就是从我们的训练集里面采

  • 在随机森林方法中,创建了大量决策树。 每个观察都被送入每个决策树。 每次观察的最常见结果用作最终输出。 一个新的观察结果被输入所有树木,并对每个分类模型进行多数投票。 对构建树时未使用的情况进行错误估计。 这称为OOB (Out-of-bag)错误估计,以百分比形式提及。 R包"randomForest"用于创建随机森林。 安装R包 在R控制台中使用以下命令安装程序包。 您还必须安装依赖包(如果有

  • 问题内容: 我有两个RandomForestClassifier模型,我想将它们组合成一个元模型。他们都使用相似但不同的数据进行了训练。我怎样才能做到这一点? 我想将所有树木合并成一个500棵树模型 问题答案: 我相信可以通过修改RandomForestClassifier对象的和属性来实现。森林中的每棵树都存储为DecisionTreeClassifier对象,这些树的列表存储在属性中。为了确保

  • 主要内容:安装R包 - randomForest,语法,示例在随机森林方法中,创建了大量的决策树。每个观察结果都被送入每个决策树。 每个观察结果最常用作最终输出。对所有决策树进行新的观察,并对每个分类模型进行多数投票。 对于在构建树时未使用的情况进行错误估计。 这被称为OOB(Out-of-bag)错误估计,以百分比表示。 R中的软件包用于创建随机林。 安装R包 - randomForest 在R控制台中使用以下命令安装软件包,还必须安装其它依赖软件包(如

  • 1 Bagging   Bagging采用自助采样法(bootstrap sampling)采样数据。给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时,样本仍可能被选中, 这样,经过m次随机采样操作,我们得到包含m个样本的采样集。   按照此方式,我们可以采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基本学习器,再将这些基本学习