{"id":18774660,"url":"https://github.com/firefly-cpp/niarules","last_synced_at":"2025-04-13T09:21:40.394Z","repository":{"id":218722428,"uuid":"746000439","full_name":"firefly-cpp/niarules","owner":"firefly-cpp","description":"Numerical Association Rule Mining using Population-Based Nature-Inspired Algorithms","archived":false,"fork":false,"pushed_at":"2025-03-04T13:33:14.000Z","size":204,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T08:36:05.235Z","etag":null,"topics":["association-rules","metaheuristics","optimization"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firefly-cpp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-20T19:35:19.000Z","updated_at":"2025-03-04T13:33:18.000Z","dependencies_parsed_at":"2024-01-23T14:02:35.897Z","dependency_job_id":"8c24cd8b-83eb-46d9-b440-b6b8b5e3f870","html_url":"https://github.com/firefly-cpp/niarules","commit_stats":null,"previous_names":["firefly-cpp/niarules"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefly-cpp%2Fniarules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefly-cpp%2Fniarules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefly-cpp%2Fniarules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firefly-cpp%2Fniarules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firefly-cpp","download_url":"https://codeload.github.com/firefly-cpp/niarules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248689377,"owners_count":21145923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["association-rules","metaheuristics","optimization"],"created_at":"2024-11-07T19:38:53.666Z","updated_at":"2025-04-13T09:21:40.388Z","avatar_url":"https://github.com/firefly-cpp.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"logo\" width=\"300\" src=\".github/logos/niarules.png\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\nniarules - Numerical Association Rule Mining using Population-Based Nature-Inspired Algorithms\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/firefly-cpp/niarules/actions?workflow=R-CMD-check\"\u003e\n    \u003cimg alt=\"R build status\" src=\"https://github.com/firefly-cpp/niarules/workflows/R-CMD-check/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://CRAN.R-project.org/package=niarules\"\u003e\n    \u003cimg alt=\"CRAN version\" src=\"https://www.r-pkg.org/badges/version/niarules\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://cran.r-project.org/package=niarules\"\u003e\n    \u003cimg alt=\"CRAN downloads\" src=\"https://cranlogs.r-pkg.org/badges/grand-total/niarules?color=blue\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://doi.org/10.32614/CRAN.package.niarules\"\u003e\n    \u003cimg alt=\"DOI\" src=\"https://img.shields.io/badge/DOI-10.32614/CRAN.package.niarules-blue\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-about\"\u003e📋 About\u003c/a\u003e •\n  \u003ca href=\"#-detailed-insights\"\u003e✨ Detailed insights\u003c/a\u003e •\n  \u003ca href=\"#-installation\"\u003e📦 Installation\u003c/a\u003e •\n  \u003ca href=\"#-usage\"\u003e🚀 Usage\u003c/a\u003e •\n  \u003ca href=\"#-reference-papers\"\u003e📄 Reference papers\u003c/a\u003e •\n  \u003ca href=\"#-license\"\u003e🔑 License\u003c/a\u003e\n\u003c/p\u003e\n\n## 📋 About\n\nniarules is an R framework designed for mining numerical association rules through the utilization of nature-inspired algorithms for optimization. Drawing inspiration from both the [NiaARM Python package](https://github.com/firefly-cpp/NiaARM) and [NiaARM.jl package](https://github.com/firefly-cpp/NiaARM.jl), this repository introduces the capability to perform numerical association rule mining in the R programming language.\n\nThe current version of niarules included in this framework offers seamless functionality for automatic dataset loading and preprocessing. It facilitates the exploration of numerical association rules through the application of nature-inspired algorithms, ultimately presenting a comprehensive output that includes identified association rules. Aligning with the principles of the original NiaARM implementation, the process of numerical association rule mining is conceptualized as an optimization problem, and the solution is achieved using population-based nature-inspired algorithms integrated within this framework. Besides the conventional numerical association rule mining, the current version also adds support for Segmented Interval Time Series Numerical Association Rule Mining as proposed in [NiaARMTS](https://github.com/firefly-cpp/NiaARMTS).\n\n## ✨ Detailed insights\nThe current version includes (but is not limited to) the following functions:\n\n- loading datasets in CSV format 📂\n- preprocessing of data 🔄\n- searching for association rules 🔍\n- providing an output of mined association rules 📝\n- generating statistics about mined association rules 📊\n- providing the implementation of several state-of-the-art nature-inspired algorithms for optimization 🧬\n- supporting the time series numerical association rule mining\n\n## 📦 Installation\n\nInstall CRAN release version:\n\n```R\ninstall.packages(\"niarules\")\n```\n\n## 🚀 Usage\n\n### Basic run example (conventional datasets)\n\n```R\nlibrary(\"niarules\")\n\n# Define the dataset file\ndataset \u003c- \"Abalone.csv\"\n\n# Read dataset\ndata \u003c- read_dataset(dataset)\n\n# Extract feature information\nfeatures \u003c- extract_feature_info(data)\n\n# Determine problem dimension\ndim \u003c- problem_dimension(features, is_time_series = FALSE)\n\n# Run Differential Evolution Algorithm\nde \u003c- differential_evolution(\n  d = dim,\n  np = 30,\n  f = 0.5,\n  cr = 0.9,\n  nfes = 1000,\n  features = features,\n  data = data,\n  is_time_series = FALSE\n)\n\n# Print identified association rules\nprint_association_rules(de$arules, is_time_series = FALSE)\n\n# Save association rules to a CSV file\nwrite_association_rules_to_csv(de$arules, \"Rules.csv\", is_time_series = FALSE)\n\n```\n\n### Basic run example (time series datasets)\n\n```R\nlibrary(\"niarules\")\n\n# Define the dataset file (Ensure you have a time series dataset in CSV format)\ndataset \u003c- \"ts2.csv\"\n\n# Read dataset\ndata \u003c- read_dataset(dataset, timestamp_col = \"timestamp\")\n\n# Extract feature information\nfeatures \u003c- extract_feature_info(data)\n\n# Determine problem dimension\ndim \u003c- problem_dimension(features, is_time_series = TRUE)\n\n# Run Differential Evolution Algorithm for time series data\nde \u003c- differential_evolution(\n  d = dim,\n  np = 30,\n  f = 0.5,\n  cr = 0.9,\n  nfes = 1000,\n  features = features,\n  data = data,\n  is_time_series = TRUE\n)\n\n# Print identified association rules\nprint_association_rules(de$arules, is_time_series = TRUE, timestamps = data[[\"timestamp\"]])\n\n# Save association rules to a CSV file\nwrite_association_rules_to_csv(de$arules, \"Rules.csv\", is_time_series = TRUE, timestamps = data[[\"timestamp\"]])\n```\n\n## 📚 Reference Papers\n\nIdeas are based on the following research papers:\n\n[1] Iztok Fister Jr., Dušan Fister, Iztok Fister, Vili Podgorelec, Sancho Salcedo-Sanz. [Time series numerical association rule mining variants in smart agriculture](https://iztok.link/static/publications/314.pdf). Journal of Ambient Intelligence and Humanized Computing (2023): 1-14.\n\n[2] Iztok Fister Jr., Iztok Fister, Sancho Salcedo-Sanz. [Time Series Numerical Association Rule Mining for assisting Smart Agriculture](https://iztok.link/static/publications/298.pdf). In: International Conference on Electrical, Computer and Energy Technologies (ICECET). IEEE, 2022.\n\n[3] 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](https://www.iztok-jr-fister.eu/static/publications/231.pdf) In: Intelligent data engineering and automated learning - IDEAL 2018, pp. 79-88, 2018.\n\n[4] I. Fister Jr., V. Podgorelec, I. Fister. [Improved Nature-Inspired Algorithms for Numeric Association Rule Mining](https://iztok-jr-fister.eu/static/publications/324.pdf). In: Vasant P., Zelinka I., Weber GW. (eds) Intelligent Computing and Optimization. ICO 2020. Advances in Intelligent Systems and Computing, vol 1324. Springer, Cham.\n\n[5] 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).\n\n[6] Fister, I. et al. (2020). [Visualization of Numerical Association Rules by Hill Slopes](https://www.iztok-jr-fister.eu/static/publications/280.pdf).\n    In: Analide, C., Novais, P., Camacho, D., Yin, H. (eds) Intelligent Data Engineering and Automated Learning – IDEAL 2020.\n    IDEAL 2020. Lecture Notes in Computer Science(), vol 12489. Springer, Cham. https://doi.org/10.1007/978-3-030-62362-3_10\n\n[7] I. Fister, S. Deb, I. Fister, [Population-based metaheuristics for Association Rule Text Mining](https://www.iztok-jr-fister.eu/static/publications/260.pdf),\n    In: Proceedings of the 2020 4th International Conference on Intelligent Systems, Metaheuristics \u0026 Swarm Intelligence,\n    New York, NY, USA, mar. 2020, pp. 19–23. doi: [10.1145/3396474.3396493](https://dl.acm.org/doi/10.1145/3396474.3396493).\n\n[8] I. Fister, I. Fister Jr., D. Novak and D. Verber, [Data squashing as preprocessing in association rule mining](https://iztok-jr-fister.eu/static/publications/300.pdf), 2022 IEEE Symposium Series on Computational Intelligence (SSCI), Singapore, Singapore, 2022, pp. 1720-1725, doi: [10.1109/SSCI51031.2022.10022240](https://doi.org/10.1109/SSCI51031.2022.10022240).\n\n[9] Stupan, Ž., \u0026 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.\n\n## See also\n\n[1] [NiaARM.jl: Numerical Association Rule Mining in Julia](https://github.com/firefly-cpp/NiaARM.jl)\n\n[2] [NiaARM: Numerical Association Rule Mining in Python](https://github.com/firefly-cpp/NiaARM)\n\n[3] [arm-preprocessing: Implementation of several preprocessing techniques for Association Rule Mining (ARM)](https://github.com/firefly-cpp/arm-preprocessing)\n\n[4] [NiaARMTS: Nature-Inspired Algorithms for Time Series Numerical Association Rule Mining](https://github.com/firefly-cpp/NiaARMTS)\n\n## 🔑 License\n\nThis package is distributed under the MIT License. This license can be found online at \u003chttp://www.opensource.org/licenses/MIT\u003e.\n\n## Disclaimer\n\nThis 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!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirefly-cpp%2Fniarules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirefly-cpp%2Fniarules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirefly-cpp%2Fniarules/lists"}