2
$\begingroup$

I have a time series of features $x_1,x_2,x_3,...,x_n$. I want to make a prediction $y_1,y_2,y_3,...,y_n$ for each timestep. However, in my training data some of the $y$ can be nan. I'd like the fit to just ignore these (i.e. the cost for this pair measured $y$ and predicted $y$ is zero). I'm currently using tensorflow through Keras.

Is there an analogue of the masking layer for the label? I'm currently using tensorflow through Keras. Alternatively, it might be possible to change the loss function, but I don't know how, expecially while retaining numerical efficiency.

$\endgroup$
1
$\begingroup$

I suggest implementing it this way :

  1. Set the nan value to 0 or any other value
  2. when compiling keras model use parameter sample_weight_mode='temporal'
  3. You can use masking on top of this by supplying the weight as the mask (sequence of values 1 if not nan 0 otherwise).

The steps above should give you the desired result.

| improve this answer | |
$\endgroup$
1
$\begingroup$

You can use mean fill or predict that missing y value. Given the $y_1,y_2,y_3,\cdots ,y_n$ for each training sample, you can fill in the missing by mean of that $y$ across training examples, or interpolate

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.