SoleModels.jl – Symbolic Learning Models

Stable Build Status Coverage Binder

In a nutshell

SoleModels.jl defines the building blocks of symbolic modeling and learning. It features:

  • Definitions for symbolic models (decision trees/forests, rules, branches, etc.);
  • Optimized data structures, useful when learning models from machine learning datasets;
  • Support for mixed, neuro-symbolic computation.

These definitions provide a unified base for implementing symbolic algorithms, such as:

  • Decision tree/random forest learning;
  • Classification/regression rule extraction;
  • Association rule mining.

Models

Basic models:

  • Leaf models: wrapping native Julia computation (e.g., constants, functions);
  • Rules: structures with IF antecedent THEN consequent END semantics;
  • Branches: structures with IF antecedent THEN pos_consequent ELSE neg_consequent END semantics.

Remember:

  • An antecedent is a logical formula that can be checked on a logical interpretation (that is, an instance of a symbolic learning dataset), yielding a truth value (e.g., true/false);
  • A consequent is another model, for example, a (final) constant model or branch to be applied.

Within this framework, a decision tree is no other than a branch with branch and final consequents. NoteThat antecedents can consist of logical formulas and, in such case, the symbolic models are can be applied to logical interpretations. For more information, refer to SoleLogics.jl, the underlying logical layer.

Other noteworthy models:

  • Decision List (or decision table): see Wikipedia;
  • Decision Tree: see Wikipedia;
  • Decision Forest (or tree ensamble): see Wikipedia;
  • Mixed Symbolic Model: a nested structure, mixture of many symbolic models.

Dataset structures (for logical symbolic learning)

Learning logical models (that is, models with logical formulas as antecedents) often requires performing model checking many times. SoleModels.jl provides a set of structures for representing logical datasets, specifically optimized for multiple model checking operations.

About

The package is developed by the ACLAI Lab @ University of Ferrara.

SoleModels.jl mainly builds upon SoleLogics.jl and SoleData.jl, and it is the core module of Sole.jl, an open-source framework for symbolic machine learning.