Выводит вывод GridsearchCV при использовании KNNClassifier в качестве estrimator и алгоритма как kd_true - PullRequest
0 голосов
/ 10 февраля 2019

Я использую GridsearchCV для настройки параметров.Я использую оценку KNNClassifier с алгоритмом kd_tree.Единственный параметр, который я настраиваю, это n_neighbours, которые я передаю в сетке параметров.

Вывод , который я получаю, показан ниже

KNN Hyper GridSearchCV лучший результат KNeighborsClassifier(алгоритм = 'kd_tree', leaf_size = 30, метрика = 'minkowski', metric_params = None, n_jobs = -1, n_neighbors = 14, p = 2, веса = 'равномерное')

KNN Hyper GridSearchCV лучше всегоПараметр [0,71428571 0,78571429 0,92857143 ... 0,85714286 0,78571429 0,85714286]

если я изменю алгоритм на «brute_force», то получаемый вывод будет следующим:

Гиперпараметр KNN GridSearchCV best Score 0,83376456

KNN Гиперпараметр GridSearchCV best Параметр {'n_neighbors': 31}

Вопросы

  1. как определить оптимальный n_neighbours из выводагенерируется, когда алгоритм равен 'kd_tree'?

  2. Почему выходные данные GridsearchCV отличаются, когда значение для алгоритма в классификаторе KNN равно changed от brute_force до kd_tree

def KNNgridsearchCV(hyperparam,algo,xdata,ydata):
    #KNN classifier - the single parameter that can tuned is n_neighbors
    param_grid = {'n_neighbors':np.arange(1,hyperparam)}
    knn = KNeighborsClassifier(algorithm=algo)
    knn_cv= GridSearchCV(knn,param_grid,cv=10,verbose=1,n_jobs=-1)
    #knn_cv.fit(bowtrain8_scaled,y_trn8)
    knn_cv.fit(xdata,ydata)

    return [knn_cv.best_score_,knn_cv.best_params_,knn_cv]

Случай 1.

Вызов вышеуказанной функции с помощью algo = 'brute_force'

return_list = KNNgridsearchCV(15,'brute',Xactual_scaled,f10ydata)

вывод из функции для оптимальных n-соседей

print("KNN Hyper parameter using GridSearchCV best Score {0}\n".format(return_list[0]))
print("KNN Hyper parameter using GridSearchCV best Parameter {0}\n".format(return_list[1]))

Вывод

KNN Гипер-параметр с использованием GridSearchCV лучший результат 0,8379462494985961

KNN Hyperпараметр с использованием GridSearchCV best Parameter {'n_neighbors': 9 }

Случай 2.

Вызов вышеуказанной функции с помощью algo = 'kd_tree'

return_list = KNNgridsearchCV(15,'kd_tree',Xactual_scaled,f10ydata)

Вывод

KNN Hyper GridSearchCV лучший результат KNeighborsClassifier (алгоритма = 'kd_tree', leaf_size = 30, метрика = 'minkowski', metric_params = нет, n_jobs =-1, n_neighbors = 14, p = 2, веса = 'равномерное')

KNN Hyper GridSearchCV best Параметр [0.71428571 0.78571429 0.92857143 ... 0.85714286 0.78571429 0.85714286]

Я ожидал, что Gridsearchcv будетвыведите строку наподобие следующего

KNN Hyper-параметра, используя GridSearchЛучший параметр CV {n_neighbors ':?}

при использовании algo = kd_tree, как при algo = brute

Извините за длинный пост.

...