Examples
A simple decision tree involving facts
Decision matrix
Bureau Score
Marital Status
Business Ownership
Decision
Rule specification
from simpleruleengine.conditional.when_all import WhenAll
from simpleruleengine.expression.expression import Expression
from simpleruleengine.operator.between import Between
from simpleruleengine.operator.string_in import In
from simpleruleengine.rulerow.rule_row_decision import RuleRowDecision
from simpleruleengine.ruleset.rule_set_decision import RuleSetDecision
from simpleruleengine.token.numeric_token import NumericToken
from simpleruleengine.token.string_token import StringToken
if __name__ == "__main__":
cibil_score_between_650_800 = Expression(
NumericToken("cibil_score"),
Between(floor=650, ceiling=800)
)
marital_status_in_married_unspecified = Expression(
StringToken("marital_status"),
In("Married", "Unspecified")
)
business_owned_by_self_family = Expression(
StringToken("business_ownership"),
In("Owned by Self", "Owned by Family")
)
rule_row_decision_go = RuleRowDecision(
WhenAll(
cibil_score_between_650_800,
marital_status_in_married_unspecified,
business_owned_by_self_family
),
"GO"
)
rule_set_decision = RuleSetDecision(rule_row_decision_go)
# Evaluate a fact set against this rule and assert the results.
fact = dict(
cibil_score=700,
marital_status="Married",
business_ownership="Owned by Self"
)
assert rule_set_decision.evaluate(fact) == "GO"A complex decision tree involving multiple AND and OR conditions
Decision matrix
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Applicant Age
Applicant Ownership
Business Ownership
Decision
Rule specification
A scoring rule involving multiple parameters
Rule set Name
Weightage
no_of_running_bl_pl
Condition
Score
last_loan_drawn_in_months
Condition
Score
Rule Specification
A nested rule that involves another rule for evaulation
Rule
Rule Specification
Last updated