Python Scitkit学习GridSearchCV最佳功能
我对我建造的管道有些困惑。它相当简单——由我构建的名为Python Scitkit学习GridSearchCV最佳功能,python,machine-learning,scikit-learn,random-forest,Python,Machine Learning,Scikit Learn,Random Forest,我对我建造的管道有些困惑。它相当简单——由我构建的名为QueryQuality()的转换器组成,每次都以相同的方式转换数据,还包括我提供了一些参数的随机森林回归器。我试图使用GridSearchCV为随机林选择最佳参数 一切运行正常,但当我检查模型时。最佳参数表明我的随机林在模型时仅使用1个特征效果最佳。最佳估计器u。命名步骤['rfr']。n_特征表明最佳随机林有3个特征。有什么好处?(遗憾的是,我目前无法提供可复制的示例。) 更新: 仔细阅读文档,它似乎是模型。最佳估计器\uu。命名为\u步
QueryQuality()
的转换器组成,每次都以相同的方式转换数据,还包括我提供了一些参数的随机森林回归器。我试图使用GridSearchCV
为随机林选择最佳参数
一切运行正常,但当我检查模型时。最佳参数
表明我的随机林在模型时仅使用1个特征效果最佳。最佳估计器u。命名步骤['rfr']。n_特征
表明最佳随机林有3个特征。有什么好处?(遗憾的是,我目前无法提供可复制的示例。)
更新:
仔细阅读文档,它似乎是模型。最佳估计器\uu。命名为\u步骤['rfr']。n\u features\uu
返回随机林适合的特征数量,因此3是有意义的。真正让我头疼的是,我检查了森林中的一些基本估计量,其中许多显然在决策规则中有多种特征。然而,这些文件值得一提
注意:在至少找到节点样本的一个有效分区之前,对拆分的搜索不会停止,即使它需要有效地检查多于max_的功能
我怀疑这就是原因。虽然这仍然有点混乱
np.random.seed(2016)
estimators = [('qq', QueryQuality()), ('rfr', RandomForestRegressor(n_estimators=50, n_jobs=-1))]
clf = Pipeline(estimators)
param_grid = {'rfr__max_features': [1,2,3], 'rfr__min_weight_fraction_leaf': [.01, .02, .04, .1]}
model = GridSearchCV(estimator=clf, param_grid=param_grid, n_jobs=-1, verbose=3, scoring=rmse_scorer, cv=6)
model.fit(train_X, train_y)
# Check performance
model.best_params_ # returns {'rfr__max_features': 1, 'rfr__min_weight_fraction_leaf': 0.04}
model.best_estimator_.named_steps['rfr'].n_features_ # returns 3