An apparatus comprising means for performing: generating a first loss function component comprising comparing first measurement location data with first location estimates, wherein the first location estimates are based on channel state data of a first data set comprising labelled data including channel state information and associated location data, wherein said first measurement location data is derived from said associated location data, wherein the first location estimates are generated using a model, and wherein the model comprises a plurality of trainable parameters; generating a second loss function component comprising comparing the first measurement location data with second location estimates, wherein the second location estimates are based on channel state data of the first data set that have been subjected to a first augmentation and wherein the second location estimates are generated using the model; generating a third loss function component comprising comparing third location estimates based on channel state data of a second data set comprising unlabelled data including channel state information and fourth location estimates based on channel state data of the second data set that have been subjected to a second augmentation, wherein the third and fourth location estimates are generated using the model; and training the trainable parameters of the model by minimising a loss function based on a combination of the first, second and third loss function components, wherein the model is configured to estimate a position of a user device based on channel state information for communications between the user device and a communication node. generating a first loss function component comprising comparing first measurement location data with first location estimates, wherein the first location estimates are based on channel state data of a first data set comprising labelled data including channel state information and associated location data, wherein said first measurement location data is derived from said associated location data, wherein the first location estimates are generated using a model, and wherein the model comprises a plurality of trainable parameters; generating a second loss function component comprising comparing the first measurement location data with second location estimates, wherein the second location estimates are based on channel state data of the first data set that have been subjected to a first augmentation and wherein the second location estimates are generated using the model; generating a third loss function component comprising comparing third location estimates based on channel state data of a second data set comprising unlabelled data including channel state information and fourth location estimates based on channel state data of the second data set that have been subjected to a second augmentation, wherein the third and fourth location estimates are generated using the model; and training the trainable parameters of the model by minimising a loss function based on a combination of the first, second and third loss function components, wherein the model is configured to estimate a position of a user device based on channel state information for communications between the user device and a communication node.