https://github.com/aclai-lab/modalassociationrules.jl

Modal association rules mining in Julia!

https://github.com/aclai-lab/modalassociationrules.jl

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary

Keywords from Contributors

decision-trees logic modal-logic symbolic-learning time-series-classification
Last synced: 11 months ago · JSON representation

Repository

Modal association rules mining in Julia!

Basic Info
Statistics
  • Stars: 8
  • Watchers: 2
  • Forks: 0
  • Open Issues: 7
  • Releases: 1
Created over 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

ModalAssociationRules.jl

Dev codecov <!-- Build Status -->

Association rules in Julia!

Usage

Creation of a Miner object.

```julia using ModalAssociationRules using SoleData

load a sample dataset (NATOPS)

and transform it into a scalar logiset.

Xdf, y = loadNATOPS() X = scalarlogiset(X_df[1:30, :])

focus on just the first three variables;

define a collection of Items, that is,

an alphabet of propositional letters (propositions)

and modal literals.

p = Atom(ScalarCondition(VariableMin(1), >, -0.5)) q = Atom(ScalarCondition(VariableMin(2), <=, -2.2)) r = Atom(ScalarCondition(VariableMin(3), >, -3.6))

lp = box(IAL)(p) lq = diamond(IAL)(q) lr = box(IA_L)(r)

items = Vector{Item}([p, q, r, lp, lq, lr])

define which measures to use to establish the interestingness

of both itemsets (groups of items) and association rules;

also define a minimum threshold that must be surpassed both

locally, inside an instance, and globally across all instances.

0.1 is the local minsup, while 0.2 is the global minsup.

itemsetmeasures = [(gsupport, 0.1, 0.2)]

0.3 is the local minconfidence, while 0.5 is the global one.

arulemeasures = [(gconfidence, 0.3, 0.5)]

choose an association rule mining algorithm, like fpgrowth;

we can finally define a Miner machine.

miner = Miner(X, fpgrowth, items, itemsetmeasures, arulemeasures) ```

Miner execution and results retrieval.

julia mine!(miner) mined_itemsets = freqitems(miner) mined_arules = arules(miner)

We can create more complex Miner objects by specifying three kinds of policies, which define the properties that must be satisfied by X's worlds, the Itemsets collected during the mining, and the final ARules.

```julia miner = Miner( X fpgrowth, items, itemsetmeasures, arulemeasures,

# we specify a condition that the worlds of the logiset X must honor
worldfilter=SoleLogics.FunctionalWorldFilter(
    x -> length(x) <= 10, Interval{Int}
),

# an itemset is considered meaningful if it also honors specific condiitons
itemset_policies=[islimited_length_itemset(; maxlength=5)],

# similarly, for the association rules extracted
arule_policies=[
    islimited_length_arule(; antecedent_maxlength=5),
    isanchored_arule(; npropositions=1),
    isheterogeneous_arule(; antecedent_nrepetitions=1, consequent_nrepetitions=0),
],

) ```

Compilation (development dependencies)

This package heavily depends on the Sole ecosystem.

To compile this package while referencing the dev branches of the other necessary Sole packages, clone and instantiate them in a common folder, following the steps below.

git clone https://github.com/aclai-lab/SoleBase.jl.git
git clone https://github.com/aclai-lab/MultiData.jl.git
git clone https://github.com/aclai-lab/SoleLogics.jl.git
git clone https://github.com/aclai-lab/SoleData.jl.git
git clone https://github.com/aclai-lab/SoleModels.jl.git
git clone https://github.com/aclai-lab/ModalAssociationRules.jl.git

For each folder, checkout on dev branch and open the Julia REPL to install the dependencies associated:

SoleBase              -> ]instantiate
MultiData             -> ]dev SoleBase
SoleLogics            -> ]dev SoleBase
SoleData              -> ]dev SoleBase SoleLogics MultiData
SoleModels            -> ]dev SoleBase MultiData SoleLogics SoleData
ModalAssociationRules -> ]dev SoleBase MultiData SoleLogics SoleData SoleModels

When not specified (every time but in SoleBase), also execute ]instantiate.

Owner

  • Name: Applied Computational Logic and Artificial Intelligence Laboratory
  • Login: aclai-lab
  • Kind: organization
  • Email: aclai@unife.it
  • Location: Italy

Applied Computational Logic and Artificial Intelligence (ACLAI) Laboratory of the Department of Mathematics and Computer Science, University of Ferrara

GitHub Events

Total
  • Create event: 80
  • Release event: 1
  • Issues event: 28
  • Watch event: 3
  • Delete event: 100
  • Issue comment event: 24
  • Push event: 486
  • Pull request event: 195
Last Year
  • Create event: 80
  • Release event: 1
  • Issues event: 28
  • Watch event: 3
  • Delete event: 100
  • Issue comment event: 24
  • Push event: 486
  • Pull request event: 195

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 623
  • Total Committers: 3
  • Avg Commits per committer: 207.667
  • Development Distribution Score (DDS): 0.053
Past Year
  • Commits: 438
  • Committers: 3
  • Avg Commits per committer: 146.0
  • Development Distribution Score (DDS): 0.05
Top Committers
Name Email Commits
mauro-milella m****o@l****t 590
CompatHelper Julia c****y@j****g 21
giopaglia 2****a 12
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 18
  • Total pull requests: 211
  • Average time to close issues: 7 days
  • Average time to close pull requests: about 2 months
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.83
  • Average comments per pull request: 0.05
  • Merged pull requests: 73
  • Bot issues: 0
  • Bot pull requests: 175
Past Year
  • Issues: 17
  • Pull requests: 166
  • Average time to close issues: 7 days
  • Average time to close pull requests: 8 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.88
  • Average comments per pull request: 0.05
  • Merged pull requests: 68
  • Bot issues: 0
  • Bot pull requests: 136
Top Authors
Issue Authors
  • mauro-milella (17)
  • giopaglia (1)
Pull Request Authors
  • github-actions[bot] (180)
  • mauro-milella (41)
Top Labels
Issue Labels
enhancement (6) suggested change (4) bug (1) invalid (1)
Pull Request Labels
enhancement (2)

Dependencies

.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v3 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite