Skip to content
94 changes: 64 additions & 30 deletions howso/residuals.amlg
Original file line number Diff line number Diff line change
Expand Up @@ -754,37 +754,41 @@

(declare (assoc
local_cases_map
;if empty context set, use global expected values for all features, set local_cases_map to null
(if (= 0 (size react_context_features))
(if output_raw_mda
(null)

;else compute the local model around the case using the robust set of react_context_features
(compute_on_contained_entities (append
(if focal_case
(query_not_in_entity_list (list (replace case_id) (replace focal_case)))
(query_not_in_entity_list (list (replace case_id)))
)
(if (size context_condition_filter_query)
context_condition_filter_query
(list)
)
time_series_filter_query
(query_nearest_generalized_distance
(replace k_parameter)
(replace react_context_features)
(replace (unzip case_values_map react_context_features))
(replace feature_weights)
(replace !queryDistanceTypeMap)
(replace query_feature_attributes_map)
(replace feature_deviations)
(replace p_parameter)
(replace dt_parameter)
(if valid_weight_feature (replace weight_feature) (null))
(replace tie_break_random_seed)
(null) ;radius
(replace !numericalPrecision)
)
))
;if empty context set, use global expected values for all features, set local_cases_map to null
(if (= 0 (size react_context_features))
(null)

;else compute the local model around the case using the robust set of react_context_features
(compute_on_contained_entities (append
(if focal_case
(query_not_in_entity_list (list (replace case_id) (replace focal_case)))
(query_not_in_entity_list (list (replace case_id)))
)
(if (size context_condition_filter_query)
context_condition_filter_query
(list)
)
time_series_filter_query
(query_nearest_generalized_distance
(replace k_parameter)
(replace react_context_features)
(replace (unzip case_values_map react_context_features))
(replace feature_weights)
(replace !queryDistanceTypeMap)
(replace query_feature_attributes_map)
(replace feature_deviations)
(replace p_parameter)
(replace dt_parameter)
(if valid_weight_feature (replace weight_feature) (null))
(replace tie_break_random_seed)
(null) ;radius
(replace !numericalPrecision)
)
))
)
)
))

Expand Down Expand Up @@ -843,10 +847,40 @@
(list
(indices local_cases_map)
(values local_cases_map)

(map (lambda (retrieve_from_entity (current_value) feature)) (indices local_cases_map))
)
)

;else if we're using weighted residuals for mda, use the feature-specific weights here
output_raw_mda
(compute_on_contained_entities (append
(if focal_case
(query_not_in_entity_list (list (replace case_id) (replace focal_case)))
(query_not_in_entity_list (list (replace case_id)))
)
(if (size context_condition_filter_query)
context_condition_filter_query
(list)
)
time_series_filter_query
(query_nearest_generalized_distance
(replace k_parameter)
(replace react_context_features)
(replace (unzip case_values_map react_context_features))
(get hyperparam_map ["featureMdaMap" feature])
(replace !queryDistanceTypeMap)
(replace query_feature_attributes_map)
(replace feature_deviations)
(replace p_parameter)
(replace dt_parameter)
(if valid_weight_feature (replace weight_feature) (null))
(replace tie_break_random_seed)
(null) ;radius
(replace !numericalPrecision)
feature
)
))

)
))

Expand Down