Как использовать лучший параметр в качестве параметра классификатора в GridSearchCV? - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть функция с именем 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)

Кажется, параметры здесь не сетка ..

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете использовать 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 из GridSearchCV вы должны передать словарь имени параметра и значения для вашего классификатора. Например, такой классификатор:

from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(random_state=0, presort=True, 
                                    criterion='entropy')
classifier = classifier.fit(x_train,y_train)

Затем, найдя лучшие параметры по GridSearchCV, вы применяете их к своей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...