This module contains a PyTorch implementation of the Deep Recurrent Survival Analysis model, which is trained on sequence-to-sequence data with binary labels at each time step, where the event always occurs at the final time step.

class DRSA[source]

DRSA(n_features:int, hidden_dim:int, n_layers:int, embeddings:List[Embedding], output_size:int=1, LSTM_dropout:float=0.0, Linear_dropout:float=0.0) :: Module

Deep Recurrent Survival Analysis model. A relatively shallow net, characterized by an LSTM layer followed by a Linear layer.

DRSA.__init__[source]

DRSA.__init__(n_features:int, hidden_dim:int, n_layers:int, embeddings:List[Embedding], output_size:int=1, LSTM_dropout:float=0.0, Linear_dropout:float=0.0)

inputs:

  • n_features
    • size of the input to the LSTM (number of features)
  • hidden_dim:
    • size (dimension) of the hidden state in LSTM
  • n_layers:
    • number of layers in LSTM
  • embeddings:
    • list of nn.Embeddings for each categorical variable
    • It is assumed the the 1st categorical feature corresponds with the 0th feature, the 2nd corresponds with the 1st feature, and so on.
  • output_size:
    • size of the linear layer's output, which should always be 1, unless altering this model
  • LSTM_dropout:
    • percent of neurons in LSTM layer to apply dropout regularization to during training
  • Linear_dropout:
    • percent of neurons in linear layer to apply dropout regularization to during training

DRSA.forward[source]

DRSA.forward(X:tensor)

input:

  • X
    • input features of shape (batch_size, sequence length, self.n_features)

output:

  • out:
    • the DRSA model's predictions at each time step, for each observation in batch
    • out is of shape (batch_size, sequence_length, 1)