Quick start¶
Construct a concept lattice¶
[1]:
from galactic.population import Population
from galactic.concepts import ConceptLattice
from galactic.examples.arithmetic import (
DivisorDescription,
MultipleDescription,
DivisorStrategy,
MultipleStrategy,
)
[2]:
individuals = {"48": 48, "36": 36, "64": 64, "56": 56, "84": 84}
population = Population(individuals)
descriptions = [DivisorDescription(), MultipleDescription()]
strategies = [DivisorStrategy(), MultipleStrategy()]
lattice = ConceptLattice.create(
population,
descriptions,
strategies
)
[3]:
list(list(concept) for concept in lattice.domain)
[3]:
[['48', '36', '64', '56', '84'],
['48', '64', '56', '84'],
['48', '36', '56', '84'],
['48', '36', '64'],
['48', '64', '56'],
['48', '56', '84'],
['48', '36', '84'],
['36', '56', '84'],
['48', '64'],
['48', '36'],
['64', '56'],
['48', '56'],
['48', '84'],
['56', '84'],
['36', '84'],
['48'],
['64'],
['36'],
['56'],
['84'],
[]]
Display a concept lattice¶
[4]:
from galactic.algebras.poset import HasseDiagram
from galactic.concepts import ConceptRenderer
[5]:
HasseDiagram(
lattice,
domain_renderer=ConceptRenderer()
)
[5]:
Extract rules¶
[6]:
from galactic.rules import (
CanonicalDirectBasis,
RuleTable
)
[7]:
basis = CanonicalDirectBasis(lattice)
RuleTable(basis, support=0.3)
[7]:
Premises |
Conclusions |
Support |
Confidence |
---|---|---|---|
|
1 |
1 |
|
|
|
0.8 |
1 |
|
|
0.8 |
1 |
|
|
0.6 |
1 |
|
|
0.6 |
1 |
|
|
0.6 |
1 |
|
|
0.6 |
1 |
|
|
0.4 |
1 |
|
|
0.4 |
1 |
|
|
0.4 |
1 |
|
|
0.4 |
1 |