Soy nuevo en la teledetección. Estoy trabajando en un proyecto en el que necesito realizar una clasificación de la cubierta del suelo. Para esta tarea quiero utilizar el aprendizaje automático (python). Mis características contienen 'BANDS' (6 bandas), 'NDVI', 'NDWI', y 'NORM' extraídas de las imágenes centinela de nivel 1C. Hice un enmascaramiento de las nubes y luego una interpolación (para rellenar los huecos) y, finalmente, muestreé los datos y los dividí en conjuntos de datos de entrenamiento y de prueba. También he utilizado una máscara para eliminar las muestras en las que tengo "0", lo que significa esencialmente "sin datos":
# remove points with no reference from training (so we dont train to recognize "no data")
mask_train = labels_train == 0
features_train = features_train[~mask_train]
labels_train = labels_train[~mask_train]
# remove points with no reference from test (so we dont validate on "no data", which doesn't make sense)
mask_test = labels_test == 0
features_test = features_test[~mask_test]
labels_test = labels_test[~mask_test]
Sin embargo, para estar más seguro, he comprobado los valores NAN utilizando: np.isnan(train_test).any()
(tanto para los conjuntos de datos de entrenamiento como para los de prueba) descubrí que mis características tenían valores NAN. ¿Alguna idea de cómo resolver esto? y ¿por qué tengo valores NAN en primer lugar?
Editar: Este es el aspecto de mi conjunto de datos ( muchos valores NAN):