所以我正在用RandomForest和GridsearchCV做一些参数方面的事情。这是我的代码。
#Import 'GridSearchCV' and 'make_scorer'
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import make_scorer
Create the parameters list you wish to tune
parameters = {'n_estimators':[5,10,15]}
#Initialize the classifier
clf = GridSearchCV(RandomForestClassifier(), parameters)
#Make an f1 scoring function using 'make_scorer'
f1_scorer = make_scorer(f1_scorer)
#Perform grid search on the classifier using the f1_scorer as the scoring method
grid_obj = GridSearchCV(clf, param_grid=parameters, scoring=f1_scorer,cv=5)
print(clf.get_params().keys())
#Fit the grid search object to the training data and find the optimal parameters
grid_obj = grid_obj.fit(X_train_100,y_train_100)因此,问题是以下错误:"ValueError: estimator的参数max_features无效。使用estimator.get_params().keys()检查可用参数列表。“
我遵循了错误给出的建议,print(clf.get_params().keys())的输出如下所示。然而,即使我将这些标题复制并粘贴到我的参数字典中,我仍然得到一个错误。我搜索过堆栈溢出,大多数人都在使用与我相似的参数字典。有人知道如何解决这个问题吗?再次感谢!
Dict_keys(‘预派送’,'cv',‘估计者__最大特征’,‘参数网格’,‘重新调整’,‘估计者__最小杂质_拆分’,‘n_作业’,‘估计者__随机_状态’,‘错误分数’,‘详细’,‘估计者__最小样本_拆分’,‘估计者__n_作业’,'fit_params',‘估计者_最小权重分数叶’,‘评分’,‘估计器__温暖_开始’,‘估计器__准则’,‘估计器__详细’,‘估计器__引导’,‘估计器__类权重’,‘估计器__oob_分数’,'iid',‘估计器’,‘估计器__最大深度’,‘估计器__最大叶节点’,‘估计器_最小样本_叶’,‘估计器__n_估计器’,'return_train_score')
发布于 2017-07-31 10:13:34
我认为问题出在这两条线上:
clf = GridSearchCV(RandomForestClassifier(), parameters)
grid_obj = GridSearchCV(clf, param_grid=parameters, scoring=f1_scorer,cv=5)这实际上是创建一个具有如下结构的对象:
grid_obj = GridSearchCV(GridSearchCV(RandomForestClassifier()))这可能比你想要的多了一个GridSearchCV。
https://stackoverflow.com/questions/45403482
复制相似问题