NiaARM.jl is a Julia framework for mining numerical association rules based on nature-inspired algorithms for optimization. ๐ฟ Inspired by the 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.
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 ๐งฌ
pkg> add NiaARM
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
Ideas are based on the following research papers:
[1] Stupan, ลฝ., & Fister Jr., I. (2022). NiaARM: A minimalistic framework for Numerical Association Rule Mining. 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 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. 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. arXiv preprint arXiv:2010.15524 (2020).
[1] NiaARM: A minimalistic framework for Numerical Association Rule Mining
[2] uARMSolver: universal Association Rule Mining Solver
[3] niarules: Numerical Association Rule Mining using Population-Based Nature-Inspired Algorithms
This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.
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!