machine-learning - 如何在 GridSearchCV 中使用最佳参数作为分类器的参数?
问题描述
我有一个名为svc_param_selection(X, y, n)
返回的函数best_param_
。现在我想使用作为分类器参数返回的 best_params,例如:。
parameters = svc_param_selection(X, y, 2)
from sklearn.model_selection import ParameterGrid
from sklearn.svm import SVC
param_grid = ParameterGrid(parameters)
for params in param_grid:
svc_clf = SVC(**params)
print (svc_clf)
classifier2=SVC(**svc_clf)
似乎参数不是这里的网格..
解决方案
您可以使用 GridSearchCV 来执行此操作。这里有一个例子:
# Applying GridSearch to find best parameters
from sklearn.model_selection import GridSearchCV
parameters = [{ 'criterion' : ['gini'], 'splitter':['best','random'], 'min_samples_split':[0.1,0.2,0.3,0.4,0.5],
'min_samples_leaf': [1,2,3,4,5]},
{'criterion' : ['entropy'], 'splitter':['best','random'], 'min_samples_split':[0.1,0.2,0.3,0.4,0.5],
'min_samples_leaf': [1,2,3,4,5]} ]
gridsearch = GridSearchCV(estimator = classifier, param_grid = parameters,refit= False, scoring='accuracy', cv=10)
gridsearch = gridsearch.fit(x,y)
optimal_accuracy = gridsearch.best_score_
optimal_parameters = gridsearch.best_params_
但是对于param_grid
of GridSearchCV
,您应该为您的分类器传递参数名称和值的字典。例如这样的分类器:
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(random_state=0, presort=True,
criterion='entropy')
classifier = classifier.fit(x_train,y_train)
然后在您找到最佳参数后将GridSearchCV
它们应用于您的模型。
推荐阅读
- perl - 随机选择一个区域并对其进行多次处理
- swift - 区分点击 UITableView 和以编程方式选择?
- elixir - Phoenix Framework 1.4 版中的models 文件夹在哪里?
- elasticsearch - elasticsearch 返回与搜索匹配的索引列表
- python - 基本选项菜单失败 - 需要帮助
- python - QThread 停止事件处理
- javascript - 温和滚动到页面部分的脚本会在 javascript 上生成错误
- google-sheets - 使用谷歌表格查询根据多个条件对列中某些单元格的值求和
- rest - Jersey 服务器在 2 分钟后断开客户端
- mp3 - gstreamer 将 mp3 转换为 wav