An open API service indexing awesome lists of open source software.

https://github.com/firefly-cpp/niaarm.jl

Numerical Association Rule Mining in Julia
https://github.com/firefly-cpp/niaarm.jl

association-rule-mining data-mining data-science evolutionary-algorithms machine-learning

Last synced: 4 months ago
JSON representation

Numerical Association Rule Mining in Julia

Awesome Lists containing this project

README

        


logo


NiaARM.jl


Numerical Association Rule Mining in Julia


โœจ Detailed insights โ€ข
๐Ÿ“ฆ Installation โ€ข
๐Ÿš€ Usage โ€ข
๐Ÿ“„ Reference papers โ€ข
๐Ÿ”— Related frameworks โ€ข
๐Ÿ”‘ License

NiaARM.jl is a Julia framework for mining numerical association rules based on nature-inspired algorithms for optimization. ๐ŸŒฟ Inspired by the [NiaARM](https://github.com/firefly-cpp/NiaARM) Python package, this package brings the power of numerical association rule mining to the Julia ecosystem. The current NiaARM.jl version supports the loading and preprocessing of datasets automatically, searching the numerical association rules and providing an output of identified association rules. ๐Ÿ’ป๐Ÿ” Similar to the original NiaARM implementation, numerical association rule mining is defined as an optimization problem and solved using population-based nature-inspired algorithms implemented within this framework.

## โœจ Detailed insights
The current version includes (but is not limited to) the following functions:

- loading datasets in CSV format ๐Ÿ“‚
- preprocessing of data ๐Ÿ”„
- searching for association rules ๐Ÿ”
- providing an output of mined association rules ๐Ÿ“
- generating statistics about mined association rules ๐Ÿ“Š
- providing the implementation of several state-of-the-art nature-inspired algorithms for optimization ๐Ÿงฌ

## ๐Ÿ“ฆ Installation

```
pkg> add NiaARM
```

## ๐Ÿš€ Usage

### Basic run example

```julia
using NiaARM, CSV, DataFrames

# read dataset from CSV file
transactions = CSV.read("dataset.csv", DataFrame)
# set stopping criterion
# there exist three stopping criteria: maxevals, maxiters, acceptable_fitness
criterion = StoppingCriterion(maxevals=5000)
# call function for rule mining
# the second parameter is the name of the optimization algorithm
# for now, Particle Swarm Optimization, Differential Evolution, and Random Search are implemented
rules = mine(transactions, de, criterion, seed=1234)

# print identified rules
for rule in rules
println(rule)
end
```

## ๐Ÿ“„ Reference papers

Ideas are based on the following research papers:

[1] Stupan, ลฝ., & Fister Jr., I. (2022). [NiaARM: A minimalistic framework for Numerical Association Rule Mining](https://joss.theoj.org/papers/10.21105/joss.04448.pdf). Journal of Open Source Software, 7(77), 4448.

[2] I. Fister Jr., A. Iglesias, A. Gรกlvez, J. Del Ser, E. Osaba, I Fister. [Differential evolution for association rule mining using categorical and numerical attributes](http://www.iztok-jr-fister.eu/static/publications/231.pdf) In: Intelligent data engineering and automated learning - IDEAL 2018, pp. 79-88, 2018.

[3] I. Fister Jr., V. Podgorelec, I. Fister. [Improved Nature-Inspired Algorithms for Numeric Association Rule Mining](https://link.springer.com/chapter/10.1007/978-3-030-68154-8_19). In: Vasant P., Zelinka I., Weber GW. (eds) Intelligent Computing and Optimization. ICO 2020. Advances in Intelligent Systems and Computing, vol 1324. Springer, Cham.

[4] I. Fister Jr., I. Fister [A brief overview of swarm intelligence-based algorithms for numerical association rule mining](https://arxiv.org/abs/2010.15524). arXiv preprint arXiv:2010.15524 (2020).

## ๐Ÿ”— Related frameworks

[1] [NiaARM: A minimalistic framework for Numerical Association Rule Mining](https://github.com/firefly-cpp/NiaARM)

[2] [uARMSolver: universal Association Rule Mining Solver](https://github.com/firefly-cpp/uARMSolver)

[3] [niarules: Numerical Association Rule Mining using Population-Based Nature-Inspired Algorithms](https://github.com/firefly-cpp/niarules)

## ๐Ÿ”‘ License

This package is distributed under the MIT License. This license can be found online at .

## Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!