Add probability- and quantile-bin based decision points #931
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a collection of decision points that reflect probability and quantile bins, allowing SSVC users to incorporate probability-based and quantile-based data into their decision tables. This PR is just adding the decision points themselves. We'll need to followup with documentation and examples later once we've had some opportunity to see how folks use it.
Copilot Summary
This pull request introduces several new decision point definitions and supporting code for the
basicnamespace in the SSVC project, with a focus on probability scales and boundary proximity. The changes include the addition of JSON schema files for various probability and quantile scales, new Python modules to implement these decision points, and supporting base classes and documentation.New Decision Point Definitions and Implementations
Added JSON schema files for new decision points:
boundary_proximity_1_0_0.json: Defines a boolean boundary proximity decision point.cis_cti_words_of_estimative_probability_1_0_0.json: Defines a 7-level probability scale based on CIS-CTI words of estimative probability.median_split_1_0_0.json,quartiles_1_0_0.json,quintiles_1_0_0.json: Define quantile-based decision points (median, quartiles, quintiles). [1] [2] [3]probability_scale_in_2_equal_levels_ascending_1_0_0.json,probability_scale_in_5_equal_levels_ascending_1_0_0.json,probability_scale_in_5_weighted_levels_ascending_1_0_0.json: Define probability scales with different binning strategies. [1] [2] [3]Added Python modules implementing these decision points:
near_boundary.py: Implements the boundary proximity decision point.probability/cis_wep.py,probability/five_equal.py,probability/five_weighted.py: Implement various probability scale decision points. [1] [2] [3]basic/base.py: Provides a base class for decision points in thebasicnamespace.probability/__init__.py: Adds documentation and copyright.Documentation and Licensing
Minor Code Improvements
base.py.Key changes by theme:
Decision Point Definitions (JSON):
Python Implementations:
near_boundary.py), probability scales (cis_wep.py,five_equal.py,five_weighted.py), and added a base class for the basic namespace (basic/base.py). [1] [2] [3] [4] [5]probability/__init__.pywith documentation.Documentation and Licensing:
Minor Code Style:
base.py.