decision_rules.classification
decision_rules.classification.metrics
Contains class for calculating rule metrics for classification rules
- class decision_rules.classification.metrics.ClassificationRulesMetrics(rules: list[AbstractRule])
Bases:
AbstractRulesMetricsClass for calculating rule metrics for classification rules
- calculate_p_value(coverage: Coverage | None = None, rule: ClassificationRule | None = None, y: ndarray | None = None) float
Calculates Fisher’s exact test for confusion matrix
- Parameters:
coverage (Coverage) – coverage
- Returns:
p_value
- Return type:
float
- get_metrics_calculator(rule: ClassificationRule, X: DataFrame, y: Series) dict[str, Callable[[], Any]]
Returns metrics calculator object in a form of dictionary where values are the non-parmetrized callables calculating specified metrics and keys are the names of those metrics.
Examples
>>> { >>> 'p': lambda: rule.coverage.p, >>> 'n': lambda: rule.coverage.n, >>> 'P': lambda: rule.coverage.P, >>> 'N': lambda: rule.coverage.N, >>> 'coverage': lambda: measures.coverage(rule.coverage), >>> ... >>> }
- Parameters:
rule (AbstractRule) – rule
X (pd.DataFrame) – data
y (pd.Series) – labels
- Returns:
metrics calculator object
- Return type:
dict[str, Callable[[], Any]]
- property supported_metrics: list[str]
Returns: list[str]: list of names of all supported metrics
decision_rules.classification.prediction
- class decision_rules.classification.prediction.VotingPredictionStrategy(rules: list[AbstractRule], default_conclusion: AbstractConclusion)
Bases:
PredictionStrategyVoting prediction strategy for classification prediction.
decision_rules.classification.prediction_indicators
- class decision_rules.classification.prediction_indicators.ClassificationGeneralPredictionIndicators
Bases:
TypedDict- Accuracy: float
- Balanced_accuracy: float
- Cohen_kappa: float
- Confusion_matrix: dict
- Covered_by_prediction: int
- F1_macro: float
- F1_micro: float
- F1_weighted: float
- G_mean_macro: float
- G_mean_micro: float
- G_mean_weighted: float
- Not_covered_by_prediction: int
- Recall_macro: float
- Recall_micro: float
- Recall_weighted: float
- Specificity: float
- class decision_rules.classification.prediction_indicators.ClassificationPredictionIndicators
Bases:
TypedDict- for_classes: dict[str, ClassificationPredictionIndicatorsForClass]
- type_of_problem: str
- class decision_rules.classification.prediction_indicators.ClassificationPredictionIndicatorsForClass
Bases:
TypedDict- Confusion_matrix: dict
- F1_score: float
- FN: int
- FP: int
- G_mean: float
- LR_minus: float
- LR_plus: float
- MCC: float
- NPV: float
- Odd_ratio: float
- PPV: float
- Recall: float
- Relative_risk: float
- Specificity: float
- TN: int
- TP: int
- decision_rules.classification.prediction_indicators.calculate_class_indicators_classification(cls: Any, y_true: list[Any], y_pred: list[Any]) ClassificationPredictionIndicatorsForClass
Calculate prediction indicators for a specific class.
- Parameters:
cls (Any) – The class for which to calculate the indicators.
y_true (list[Any]) – The true labels.
y_pred (List[Any]) – The predicted labels.
- Returns:
A dictionary representing the calculated prediction indicators for the class.
- Return type:
- decision_rules.classification.prediction_indicators.calculate_for_classification(y_true: list[Any], y_pred: list[Any], calculate_only_for_covered_examples: bool = False) ClassificationPredictionIndicators
Calculate prediction indicators for classification problem.
- Parameters:
y_true (np.ndarray) – Array containing the actual class labels.
y_pred (np.ndarray) – Array containing the predicted class labels.
calculate_only_for_covered_examples (bool, optional) – If true, it will calculate indicators only for the examples where prediction was not empty. Otherwise, it will calculate indicators for all the examples. Defaults to False.
- Returns:
A dictionary containing various prediction indicators, including indicators for individual classes.
- Return type:
decision_rules.classification.rule
Contains classification rule and conclusion classes.
- class decision_rules.classification.rule.ClassificationConclusion(value: str | int, column_name: str)
Bases:
AbstractConclusionConclusion part of the classification rule
- Parameters:
AbstractConclusion (_type_)
- is_empty() bool
Returns whether conclusion is empty or not.
- static make_empty(column_name: str) ClassificationConclusion
Creates empty conclusion. Use it when you don’t want to use default conclusion during prediction.
- Parameters:
column_name (str) – decision column name
- Returns:
empty conclusion
- Return type:
- positives_mask(y: ndarray) ndarray
Calculates positive examples mask
- Parameters:
y (np.ndarray)
- Returns:
- 1 dimensional numpy array of booleans specifying
whether given examples are consistent with the conclusion.
- Return type:
np.ndarray
- class decision_rules.classification.rule.ClassificationRule(premise: AbstractCondition, conclusion: ClassificationConclusion, column_names: list[str])
Bases:
AbstractRuleClassification decision rule.
decision_rules.classification.ruleset
Contains classification ruleset class.
- class decision_rules.classification.ruleset.ClassificationRuleSet(rules: list[ClassificationRule])
Bases:
AbstractRuleSetClassification ruleset allowing to perform prediction on data
- calculate_attribute_importances(condition_importances: dict[str, dict[str, float]]) dict[str, dict[str, float]]
Calculate importances of attriubtes in RuleSet based on conditions importances
- Parameters:
Union[dict[str (condition_importances) – condition importances
float] – condition importances
dict[str – condition importances
dict[str – condition importances
float]]] – condition importances
- Returns:
- attribute importances, in the case of classification additionally
returns information about class dict[str, dict[str, float]]:
- Return type:
dict[str, float]
- calculate_condition_importances(X: DataFrame, y: Series, measure: Callable[[Coverage], float]) dict[str, dict[str, float]]
Calculate importances of conditions in RuleSet
- Parameters:
X (pd.DataFrame)
y (pd.Series)
measure (Callable[[Coverage], float]) – measure used to count importance
- Returns:
condition importances, in the case of classification additionally returns information about class dict[str, dict[str, float]]:
- Return type:
dict[str, float]
- calculate_p_values(*args) list
- get_default_prediction_strategy_class() Type[PredictionStrategy]
Returns default prediction strategy class used when user doesn’t specify any.
- Returns:
- class implementing PredictionStrategy
interface
- Return type:
Type[PredictionStrategy]
- get_metrics_object_instance() AbstractRulesMetrics
Returns metrics object instance.
- property prediction_strategies_choice: dict[str, Type[PredictionStrategy]]
Specifies prediction strategies available for this model.
- Returns:
- Dictionary containing available prediction
strategies. Keys are prediction strategies names and values are classes implementing PredictionStrategy interface for this model.
- Return type:
dict[str, Type[PredictionStrategy]]
- update(X_train: DataFrame, y_train: Series, measure: Callable[[Coverage], float]) ndarray
Updates ruleset using training dataset. This method should be called both after creation of new ruleset or after manipulating any of its rules or internal conditions. This method recalculates rules coverages and voting weights making it ready for prediction
- Parameters:
X_train (pd.DataFrame)
y_train (pd.Series)
measure (Callable[[Coverage], float]) – voting measure function
- Raises:
ValueError – if called on empty ruleset with no rules
- update_using_coverages(coverages_info: dict[str, ClassificationCoverageInfodict], measure: Callable[[Coverage], float], columns_names: list[str] = None)