es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Algoritmo KNN con GridSearchCV

Estoy intentando crear un modelo KNN con GridSearchCV, pero estoy obteniendo un error relacionado con el parámetro “classifier_leaf_size” no válido para el estimador KNeighborsClassifier(). Verifica la lista de parámetros disponibles con estimator.get_params().keys().

knn = KNeighborsClassifier()

knn.fit(x_train, y_train)
y_pred = knn.predict(x_test)

scores = cross_val_score(knn, x_train, y_train, scoring='accuracy', cv=cv, n_jobs=-1)

print('Precisión de entrenamiento - Clasificación KNN: ', knn.score(x_train, y_train))
print('Precisión de prueba - Clasificación KNN: ', knn.score(x_test, y_test))

plt.show()

Informe de clasificación:

cr = classification_report(y_test, y_pred)
print(cr, "\n")

Grid:

estimador_KNN = KNeighborsClassifier(algorithm='auto')
knn_grid_setup = {'n_neighbors': (1,10,1),
                   'classifier_leaf_size': (20,40,1), 'p': (1,2),
                   'classifier_weights': ('uniform', 'distance')
                   }

grid_search_KNN = GridSearchCV(
    estimator=estimador_KNN,
    param_grid=knn_grid_setup,
    scoring = 'accuracy',
    n_jobs = -1,
    cv = 5
)
knn_grid.fit(x_train, y_train)

¿Qué causa el error? He leído la documentación, he intentado varios métodos, pero aún no puedo entender qué está sucediendo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error es causado por especificar un parámetro en la búsqueda en cuadrícula param_grid que no es un parámetro válido para el estimador KNeighborsClassifier(). En este caso, el parámetro classifier_leaf_size no es un parámetro válido para KNeighborsClassifier(), de ahí el mensaje de error. Para solucionar esto, debes reemplazar classifier_leaf_size con un parámetro válido para KNeighborsClassifier(). Puedes usar n_neighbors en su lugar. Además, el nombre del parámetro tiene un error de escritura, debería ser n_neighbors en lugar de n_neigbors.

Comments are closed.