Skip to content

← neural package

HypnogramHMM

Calculate a hypnogram (sleep scoring) from EEG observations and a specified initial observation model using a hidden Markov model (HMM) approach.

This node accepts a time series of features (but this can may be a non-feature axis, e.g. frequency for EEG power in several bands) and an observation matrix (really a block or packet) that relates these features to sleep stages. One axis of the observation matrix must be of the same type and length as the selected axis of features in the time series, and the other axis must be of length equal to the number of sleep stages. The observation matrix then represents, for each sleep stage, expected value of each feature (e.g., the expected power in each band). The node then calculates the most likely sequence of sleep stages given the observed features and output will correspondingly drop the chosen feature/frequency axis and replace it by a single-element feature axis that indicates the current numeric sleep stage (1-5). One may configure some additional initial parameters, such as the assumed initial sleep stage, the variance (uncertainty) associated with the initial observation model (a typical choice is to normalize the time series and set the variance to 1), and the initially assumed probability that a sleep stage transitions at any given 30s time step. The method can re-estimate iteratively all parameters of the model, or only some of them, according to the user's choice. More Info... Version 0.8.0

Ports/Properties

data

Data to process.

  • verbose name: Data
  • default value: None
  • port type: DataPort
  • value type: Packet (can be None)
  • data direction: INOUT

observation_model

Observation model.

  • verbose name: Observation Model
  • default value: None
  • port type: DataPort
  • value type: Packet (can be None)
  • data direction: INOUT

obs_axis

Axis that enumerates the observable features described by the observation model.

  • verbose name: Observables Axis
  • default value: feature
  • port type: ComboPort
  • value type: str (can be None)

decoder

Decoder algorithm. Viterbi finds the overall most likely sequence of states while MAP finds the individually most likely state at each time point.

  • verbose name: Decoder
  • default value: viterbi
  • port type: EnumPort
  • value type: str (can be None)

reestimate_params

Parameters that the model is allowed to reestimate during fitting. startprob is represents the probability vector of being in a given initial state at the beginning of the session, transmat are the estimated transition probabilities between any given two sleep states, obs_means are the estimated average feature levels given any sleep state, and obs_covars are the estimated (co)variances of the feature levels given any sleep state.

  • verbose name: Reestimate Params
  • default value: ['startprob', 'transmat', 'obs_means', 'obs_covars']
  • port type: SubsetPort
  • value type: list (can be None)

initial_variance

Initial variance for the observation model. This is used to initialize the covariance matrix of the observation model.

  • verbose name: Initial Variance
  • default value: 1.0
  • port type: FloatPort
  • value type: float (can be None)

initial_steady_prob

Initial probability of a sleep stage remaining steady from one time step to another (30s).

  • verbose name: Initial Steady Prob
  • default value: 0.95
  • port type: FloatPort
  • value type: float (can be None)

initial_wake_prob

Initial probability of being in the wake state at the beginning of a dataset.

  • verbose name: Initial Wake Prob
  • default value: 1.0
  • port type: FloatPort
  • value type: float (can be None)

min_covariance

Minimum covariance value to prevent overfitting.

  • verbose name: Min Covariance
  • default value: 0.001
  • port type: FloatPort
  • value type: float (can be None)

randseed

Random seed. Only used if some parameters are being randomized (not used by default).

  • verbose name: Randseed
  • default value: 12345
  • port type: IntPort
  • value type: int (can be None)

maxiter

Maximum number of iterations.

  • verbose name: Maxiter
  • default value: 50
  • port type: IntPort
  • value type: int (can be None)

tolerance

Convergence tolerance. The algorithm will terminate if the gain in log-likelihood is less than this value.

  • verbose name: Tolerance
  • default value: 0.0001
  • port type: FloatPort
  • value type: float (can be None)

outer_iter

Number of current outer iteration (0-based). This is for use with a debugging technique where precomputed data is output as a function of the iteration. Only respected if debug is set to True.

  • verbose name: Outer Iter
  • default value: None
  • port type: IntPort
  • value type: int (can be None)

debug_source

Default source (root path) for debugging output. If this is set, the node will load and output predefined data from this root path that can be used to debug downstream results given previously saved known inputs.

  • verbose name: Debug Source
  • default value:
  • port type: StringPort
  • value type: str (can be None)

verbose

Generate verbose output.

  • verbose name: Verbose
  • default value: True
  • port type: BoolPort
  • value type: bool (can be None)

set_breakpoint

Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

  • verbose name: Set Breakpoint (Debug Only)
  • default value: False
  • port type: BoolPort
  • value type: bool (can be None)

metadata

User-definable meta-data associated with the node. Usually reserved for technical purposes.

  • verbose name: Metadata
  • default value: {}
  • port type: DictPort
  • value type: dict (can be None)