diff --git a/howso/residuals.amlg b/howso/residuals.amlg index 9d7ea1ce2..70895ca45 100644 --- a/howso/residuals.amlg +++ b/howso/residuals.amlg @@ -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) + ) + )) + ) ) )) @@ -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 + ) + )) + ) ))