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.

Solución para “nan” en puntuación en el método de selección de pasos hacia adelante utilizando Python.

Estoy utilizando la selección de características secuenciales (sfs) de mlxtend para ejecutar la selección de características hacia adelante.

x_train, x_test = train_test_split(x, test_size=0.2, random_state=0)
y_train, y_test = train_test_split(y, test_size=0.2, random_state=0)
sfs = SFS(RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1),
          k_features=28,
          forward=True,
          floating=False,
          verbose=2,
          scoring="r2",
          cv=4,
          n_jobs=-1
         ).fit(x_train, y_train)

El código se ejecuta, pero devuelve un valor de puntuación NaN.

[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.
[Parallel(n_jobs=-1)]: Done  28 out of  28 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=-1)]: Done  28 out of  28 | elapsed:    0.1s finished

[2021-12-30 14:15:17] Features: 1/28 -- score: nan[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.
[Parallel(n_jobs=-1)]: Done  27 out of  27 | elapsed:    0.0s finished

[2021-12-30 14:15:17] Features: 2/28 -- score: nan[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.
[Parallel(n_jobs=-1)]: Done  26 out of  26 | elapsed:    0.0s finished
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Podría haber varias razones por las que el valor de puntuación devuelve NaN. Una posible razón podría ser debido al uso de una métrica de puntuación inapropiada. En el código dado, la métrica de puntuación utilizada es “r2”, que es el coeficiente de determinación. Sin embargo, esta métrica puede no ser adecuada para problemas de clasificación como el mencionado en el código, donde se utiliza un clasificador de bosque aleatorio.

    En cambio, una métrica de puntuación adecuada para problemas de clasificación podría ser “precisión” o “f1_score”. Otra posible razón de los valores NaN podría ser el uso de formatos de datos inapropiados o tipos de datos que mlxtend pueda tener dificultades para puntuar. Por lo tanto, se debe verificar los datos en busca de inconsistencias o errores en el formato.

    Por último, si el problema persiste, puede ser útil probar un algoritmo o biblioteca de selección de características diferente que pueda funcionar mejor con los datos proporcionados.

Comments are closed.