Edit model card

Regression Model for Emotional Functioning Levels (ICF b152)

Description

A fine-tuned regression model that assigns a functioning level to Dutch sentences describing emotional functions. The model is based on a pre-trained Dutch medical language model (link to be added): a RoBERTa model, trained from scratch on clinical notes of the Amsterdam UMC. To detect sentences about emotional functions in clinical text in Dutch, use the icf-domains classification model.

Functioning levels

Level Meaning
4 No problem with emotional functioning: emotions are appropriate, well regulated, etc.
3 Slight problem with emotional functioning: irritable, gloomy, etc.
2 Moderate problem with emotional functioning: negative emotions, such as fear, anger, sadness, etc.
1 Severe problem with emotional functioning: intense negative emotions, such as fear, anger, sadness, etc.
0 Flat affect, apathy, unstable, inappropriate emotions.

The predictions generated by the model might sometimes be outside of the scale (e.g. 4.2); this is normal in a regression model.

Intended uses and limitations

  • The model was fine-tuned (trained, validated and tested) on medical records from the Amsterdam UMC (the two academic medical centers of Amsterdam). It might perform differently on text from a different hospital or text from non-hospital sources (e.g. GP records).
  • The model was fine-tuned with the Simple Transformers library. This library is based on Transformers but the model cannot be used directly with Transformers pipeline and classes; doing so would generate incorrect outputs. For this reason, the API on this page is disabled.

How to use

To generate predictions with the model, use the Simple Transformers library:

from simpletransformers.classification import ClassificationModel

model = ClassificationModel(
    'roberta',
    'CLTL/icf-levels-stm',
    use_cuda=False,
)

example = 'Naarmate het somatische beeld een herstellende trend laat zien, valt op dat patient zich depressief en suicidaal uit.'
_, raw_outputs = model.predict([example])
predictions = np.squeeze(raw_outputs)

The prediction on the example is:

1.60

The raw outputs look like this:

[[1.60418844]]

Training data

  • The training data consists of clinical notes from medical records (in Dutch) of the Amsterdam UMC. Due to privacy constraints, the data cannot be released.
  • The annotation guidelines used for the project can be found here.

Training procedure

The default training parameters of Simple Transformers were used, including:

  • Optimizer: AdamW
  • Learning rate: 4e-5
  • Num train epochs: 1
  • Train batch size: 8

Evaluation results

The evaluation is done on a sentence-level (the classification unit) and on a note-level (the aggregated unit which is meaningful for the healthcare professionals).

Sentence-level Note-level
mean absolute error 0.76 0.68
mean squared error 1.03 0.87
root mean squared error 1.01 0.93

Authors and references

Authors

Jenia Kim, Piek Vossen

References

TBD

Downloads last month
21
Inference Examples
Inference API (serverless) has been turned off for this model.