@@ -11,6 +11,32 @@ RandomEffectsTracker::RandomEffectsTracker(std::vector<int32_t>& group_indices)
11
11
rfx_predictions_.resize (num_observations_, 0 .);
12
12
}
13
13
14
+ nlohmann::json LabelMapper::to_json () {
15
+ json output_obj;
16
+ // Initialize a map with names of the node vectors and empty json arrays
17
+ std::map<std::string, json> label_map_arrays;
18
+ label_map_arrays.emplace (std::pair (" keys" , json::array ()));
19
+ label_map_arrays.emplace (std::pair (" values" , json::array ()));
20
+ for (const auto & [key, value] : label_map_) {
21
+ label_map_arrays[" keys" ].emplace_back (key);
22
+ label_map_arrays[" values" ].emplace_back (value);
23
+ }
24
+ for (auto & pair : label_map_arrays) {
25
+ output_obj.emplace (pair);
26
+ }
27
+ return output_obj;
28
+ }
29
+
30
+ void LabelMapper::from_json (const nlohmann::json& rfx_label_mapper_json) {
31
+ int num_keys = rfx_label_mapper_json.at (" keys" ).size ();
32
+ int num_values = rfx_label_mapper_json.at (" values" ).size ();
33
+ CHECK_EQ (num_keys, num_values);
34
+ for (int i = 0 ; i < num_keys; i++) {
35
+ keys_.push_back (rfx_label_mapper_json.at (" keys" ).at (i));
36
+ label_map_.insert ({rfx_label_mapper_json.at (" keys" ).at (i), rfx_label_mapper_json.at (" values" ).at (i)});
37
+ }
38
+ }
39
+
14
40
void MultivariateRegressionRandomEffectsModel::SampleRandomEffects (RandomEffectsDataset& dataset, ColumnVector& residual, RandomEffectsTracker& rfx_tracker,
15
41
double global_variance, std::mt19937& gen) {
16
42
// Update partial residual to add back in the random effects
0 commit comments