Simplify numerical association rule mining
Project description
tinyNARM
About
tinyNARM is an experimental effort in approaching/tailoring the classical Numerical Association Rule Mining (NARM) to limited hardware devices, e.g., ESP32 microcontrollers so that devices do not need to depend on remote servers for making decisions. Motivation mainly lies in smart agriculture, where Internet connectivity is unavailable in rural areas.
The current repository hosts a tinyNARM algorithm prototype initially developed in Python for fast prototyping.
Detailed insights
The current version includes (but is not limited to) the following functions:
- loading datasets in CSV format,
- discretizing numerical features to discrete classes,
- association rule mining using the tinynarm approach,
- easy comparison with the NiaARM approach.
Installation
pip
Install tinyNARM with pip:
pip install tinynarm
Usage
Basic run
from tinynarm import TinyNarm
from tinynarm.utils import Utils
tnarm = TinyNarm("new_dataset.csv")
tnarm.create_rules()
postprocess = Utils(tnarm.rules)
postprocess.add_fitness()
postprocess.sort_rules()
postprocess.rules_to_csv("rules.csv")
postprocess.generate_statistics()
postprocess.generate_stats_report(20)
Discretization
from tinynarm.discretization import Discretization
dataset = Discretization("datasets/sportydatagen.csv", 5)
data = dataset.generate_dataset()
dataset.dataset_to_csv(data, "new_dataset.csv")
References
[1] 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.
[2] 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.
[3] I. Fister Jr., I. Fister A brief overview of swarm intelligence-based algorithms for numerical association rule mining. arXiv preprint arXiv:2010.15524 (2020).
[4] Stupan, Ž., Fister, I. Jr. (2022). NiaARM: A minimalistic framework for Numerical Association Rule Mining. Journal of Open Source Software, 7(77), 4448.
Cite us
Fister Jr, I., Fister, I., Galvez, A., & Iglesias, A. (2023, August). TinyNARM: Simplifying Numerical Association Rule Mining for Running on Microcontrollers. In International Conference on Soft Computing Models in Industrial and Environmental Applications (pp. 122-131). Cham: Springer Nature Switzerland.
License
This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tinynarm-0.2.2.tar.gz
.
File metadata
- Download URL: tinynarm-0.2.2.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.4 Linux/6.9.12-200.fc40.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8cbbfab5f64b6a48db97358d0298bdb791c3e42e4d65b7382aff68a839479be |
|
MD5 | 3137f6a17f539255815816dfe723754f |
|
BLAKE2b-256 | f19e4bf867b8b5ac163947188a8368b1795694d09587207ca7bb17ff5ad4b2c2 |
File details
Details for the file tinynarm-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: tinynarm-0.2.2-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.4 Linux/6.9.12-200.fc40.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c878a2ad8bf348932ff68f6e21c92c890d48d29c85c714f91556b2ae3fee3198 |
|
MD5 | 5f56dff3d641ebf4072d6cf877026388 |
|
BLAKE2b-256 | f4a294fc66e7daa4df70e32a7bac8c43be78c27ccc9c8fdd6857194491224c0b |