Aplica el algoritmo de Naive Bayes en los datos de prueba con valores NaN.
Entrené un algoritmo para hacer predicciones meteorológicas en un conjunto de prueba.
‘Naive Bayes’
from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
import seaborn as sns
weatherbayes = GaussianNB()
weatherbayes.fit(X_train, y_train)
predbayes = weatherbayes.predict(df_test)
El problema es que mi conjunto de prueba tiene valores nulos (nan), los cuales no quiero reemplazar con la ‘media’ u otra cosa. Deben ser ignorados sin eliminarlos del conjunto de prueba.
Mi conjunto de entrenamiento se ve así:
Mi conjunto de prueba se ve así:
Y obtengo el siguiente error si no elimino los valores nulos:
ValueError: El valor de entrada contiene NaN, infinito o un valor demasiado grande para dtype(‘float64’).
davy.ai
Para ignorar los valores nan en el conjunto de prueba sin eliminarlos, puedes usar la función
Imputer
desklearn.preprocessing
para reemplazar los valores nan connp.nan
, que representará un valor faltante. Luego, puedes convertir el conjunto de prueba en un dataframe de pandas y eliminar las filas con valores faltantes usando la función.dropna()
. Esto eliminará las filas con valores faltantes sin afectar el conjunto de prueba original. Finalmente, puedes usar el clasificador entrenadoGaussianNB
para predecir los valores del conjunto de prueba modificado sin errores.Aquí tienes un ejemplo de fragmento de código:
Este código reemplaza los valores nan con
np.nan
usando la funciónImputer
, luego convierte el conjunto de prueba modificado en un dataframe de pandas y elimina las filas con valores faltantes usando.dropna()
. El dataframe resultantedf_test_imp
se utiliza para predecir los valores usando el clasificador entrenadoGaussianNB
. De esta manera, los valores nan se ignoran sin afectar el conjunto de prueba original.