0

알고리즘에 scikit 배우기 옵션의 기본 범위가 일부 매개 변수가있을 수 있습니다, Sklearn GridSearchCV는 견적 매개 변수의 가능한 모든 기본 옵션을 선택합니까?

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1, **kwargs) 

및 매개 변수가 다음 옵션 기본값 "자동"이 있습니다 algorithm : { '자동', 'ball_tree', 'kd_tree', 'brute'}

제 질문은 **GridSearchCV**을 사용하여 알고리즘의 매개 변수에 대한 최상의 값 집합을 찾으면 GridSearchCV는 매개 변수의 모든 기본 옵션을 사용하지만 나는 그것을 parameter_list에 추가하지 않습니까?

예를 들어, 내가, 내가 n_neighborsalgorithm 매개 변수를 조사 할 필요가 **kNN** 최선의 매개 변수 값을 찾을 **GridSearchCV**를 사용하려면, 난 그냥 더 아래 (로 값을 전달해야한다는 것이 가능하다 algorithm을하기 때문에 매개 변수에는 기본 옵션이 있음)

parameter_list = {'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]} 

또는 검토 할 모든 옵션을 지정해야합니까?

parameter_list = { 
'algorithm': ['auto', 'ball_tree', 'kd_tree', 'brute'], 
'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]} 

감사합니다.

답변

0

아니요, 매개 변수 기본값 및 사용 가능한 옵션에 대해 오해하고 있습니다.

documentation of KNeighborsClassifier에서 매개 변수 algorithm은 선택적 매개 변수입니다. 즉, KneighborsClassifier의 생성자에서 지정할 수도 있습니다.

그러나이를 지정하기로 한 경우 사용할 수있는 옵션이 있습니다 ({‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}). 이는 algorithm에 대한 주어진 옵션에서만 값을 제공 할 수 있으며 다른 문자열을 사용하여 algorithm으로 지정할 수 없음을 의미합니다. 기본 옵션은 'auto'입니다. 즉, 값을 입력하지 않으면 내부적으로 'auto'이 사용됩니다.

  • 사례 1 : - 기본 사용 알고리즘 = '자동'으로 그 것 때문에 여기에 KNeighborsClassifier(n_neighbors=3)

algorithm에 대한 값이 지정되지 않았기 때문에.

  • 사례 2 : - 알고리즘을 지시 한대로

    이제 'kd_tree'를 사용합니다 그래서 여기

KNeighborsClassifier(n_neighbors=3, algorithm='kd_tree') 것은, GridSearchCV은 단지 추정에 이러한 매개 변수를 전달하는 것이다 param_grid에 명시되어 있습니다. 따라서 귀하의 경우 처음 질문을 사용할 때 parameter_list을 사용하면 평가자에게 n_neighbors 만 제공되고 알고리즘에는 기본값 ('auto') 만 표시됩니다.

두 번째 parameter_list을 사용하는 경우 n_neighborsalgorithm이 모두 견적서로 전달됩니다.

+0

감사합니다. 많은 도움을 주셨습니다. 매우 도움이되었습니다. –

관련 문제