niaaml-gui

GUI for NiaAML Python package.

https://github.com/firefly-cpp/niaaml-gui

Science Score: 67.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords from Contributors

data-mining evolutionary-algorithms swarm-intelligence nature-inspired-algorithms classification-pipelines automl tcx-parser sport-analytics firefly-algorithm optimization-algorithms
Last synced: 4 months ago · JSON representation ·

Repository

GUI for NiaAML Python package.

Basic Info
  • Host: GitHub
  • Owner: firefly-cpp
  • License: mit
  • Language: Python
  • Default Branch: master
  • Size: 3.03 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 5
  • Open Issues: 0
  • Releases: 13
Created about 5 years ago · Last pushed 5 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

NiaAML-GUI

PyPI Version PyPI - Python Version PyPI - Downloads Packaging status Fedora package GitHub license GitHub Actions

GitHub commit activity Average time to resolve an issue Percentage of issues still open GitHub contributors

📦 Installation🚀 Usage📓 Example📝 References📄 Cite us

A graphical user interface for building and running machine learning pipelines using the NiaAML framework. This GUI now supports block-based pipeline composition, drag-and-drop components, visual connections, and CSV editing.

  • Free software: MIT license
  • Python versions: 3.10.x, 3.11.x, 3.12.x, 3.13.x

📦 Installation

To install NiaAML-GUI with pip, use:

sh pip install niaaml_gui

After successful installation, run main.py:

sh python main.py

Fedora Linux

To install NiaAML-GUI on Fedora, use:

sh $ dnf install NiaAML-GUI

Alpine Linux

To install NiaAML-GUI on Alpine Linux, enable Community repository and use:

sh $ apk add niaaml-gui

🚀 Usage

NiaAML GUI application allows you to use the main features of the NiaAML framework. There are two views in the application. In the first one, you can prepare an environment for a pipeline optimization process. The purpose of the second one is to allow you to use an existing pipeline from a file. The application currently supports data input in the form of CSV files.

Pipeline Canvas View

Below is a screenshot of the first view with labeled components and you can find a description for each component under the screenshot.

NiaAML GUI First View

| Component | Description | |:----------|:------------| | 1 | Tabbed view for choosing components to be added to the canvas. Components can be dragged and dropped onto the canvas to visually build the pipeline. | | 2 | The canvas area where blocks (components) are placed and connected. Users can construct the pipeline visually by drawing arrows between valid components. | | 3 | "Select CSV File" block. Input dataset selection. Includes a file browser, CSV header checkbox, and an edit button to view/modify the CSV content.

NiaAML GUI Edit Dataset View

| | 4 | "Categorical Encoder" block. Allows selection of encoding method for categorical features. Dropdown populated dynamically. | | 5 | "Missing Imputer" block. Allows selection of imputation method to handle missing values. | | 6 | "Feature Selection" block. Multi-selection dialog allows the user to choose one or more feature selection algorithms. | | 7 | "Feature Transform" block. Multi-selection dialog allows choosing one or more feature transformation algorithms. | | 8 | "Classifier" block. Multi-selection dialog for selecting one or more classification models. | | 9 | "Optimization Algorithm (Selection)" block. Dropdown for choosing the optimization algorithm used in component selection. | | 10 | "Optimization Algorithm (Tuning)" block. Dropdown for choosing the algorithm used for hyperparameter tuning. | | 11 | "Population Size (Components Selection)" block. Numeric input for specifying the population size during component selection. | | 12 | "Population Size (Parameter Tuning)" block. Numeric input for specifying the population size for hyperparameter tuning. | | 13 | "Number of Evaluations (Component Selection)" block. Sets the number of allowed evaluations during selection. | | 14 | "Number of Evaluations (Parameter Tuning)" block. Sets the number of evaluations for hyperparameter tuning. | | 15 | "Fitness Function" block. Dropdown for selecting the fitness function used during evaluation of each candidate pipeline. | | 16 | "Pipeline Output Folder" block. Defines the target folder where output files (pipeline, logs, results) are saved. | | 17 | Arrow connections between blocks. Only valid connections are allowed. When drawing, green/red highlights show whether the target is acceptable. | | 18 | Validation system. Before running optimization, the system checks whether all required components are present and properly configured. |

Optimization

Below you can see screenshots of views during and after the optimization has finished.

NiaAML GUI Optimization Running

NiaAML GUI Optimization Finished

📓 Example

Let's say we want to find an optimal classification pipeline for the Example dataset. You can see the optimization setup in the screenshot below.

NiaAML GUI Optimization Setup

We hit the Start optimization button and wait... You can see the output in the screenshot below.

NiaAML GUI Optimization Output

There are also 2 new files in the selected destination directory.

NiaAML GUI Output Files

Now we can use the exported pipeline file for further classification on the unseen data.

NiaAML GUI Run Pipeline

📝 References

[1] Dua, D. and Graff, C. (2019). UCI Machine Learning Repository. Irvine, CA: University of California, School of Information and Computer Science.

📄 Cite us

L. Pečnik, I. Fister Jr. "NiaAML: AutoML framework based on stochastic population-based nature-inspired algorithms." Journal of Open Source Software 6.61 (2021): 2949.

Owner

  • Name: Iztok Fister Jr.
  • Login: firefly-cpp
  • Kind: user
  • Location: Slovenia

Citation (CITATION.cff)

# YAML 1.2
---
authors:
  -
    family-names: "Pečnik"
    given-names: Luka
  -
    family-names: "Fister Jr."
    given-names: Iztok
cff-version: "1.1.0"
date-released: 2021
doi: "10.21105/joss.02949"
license: MIT
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/lukapecnik/NiaAML"
title: "NiaAML: AutoML framework based on stochastic population-based nature-inspired algorithms"
version: "1.1.6"
...

GitHub Events

Total
  • Create event: 3
  • Release event: 3
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 11
  • Pull request event: 15
  • Fork event: 2
Last Year
  • Create event: 3
  • Release event: 3
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 11
  • Pull request event: 15
  • Fork event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 68
  • Total Committers: 8
  • Avg Commits per committer: 8.5
  • Development Distribution Score (DDS): 0.662
Past Year
  • Commits: 29
  • Committers: 6
  • Avg Commits per committer: 4.833
  • Development Distribution Score (DDS): 0.724
Top Committers
Name Email Commits
Luka Pečnik l****6@g****m 23
firefly-cpp i****k@i****u 18
Zala Lahovnik z****k@g****m 8
Iztok Fister Jr. i****k@i****z 5
zStupan z****n@g****m 5
Benjamin A. Beasley c****e@m****t 3
Iztok Fister Jr. i****k@i****v 3
Tadej Lahovnik t****k@s****i 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 2
  • Total pull requests: 18
  • Average time to close issues: about 21 hours
  • Average time to close pull requests: about 20 hours
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.61
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 13
  • Average time to close issues: about 21 hours
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.46
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MihaMi27 (1)
Pull Request Authors
  • Aljaz-R (11)
  • zala-lahovnik (8)
  • lahovniktadej (3)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 13
  • Total downloads:
    • pypi 194 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 60
  • Total maintainers: 3
pypi.org: niaaml-gui

GUI for NiaAML Python package

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 194 Last month
Rankings
Dependent packages count: 10.1%
Forks count: 14.2%
Downloads: 15.3%
Average: 17.8%
Dependent repos count: 21.6%
Stargazers count: 27.8%
Maintainers (2)
Last synced: 5 months ago
alpine-edge: niaaml-gui

GUI for NiaAML Python package

  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 14.6%
Average: 18.5%
Forks count: 28.7%
Stargazers count: 30.6%
Maintainers (1)
Last synced: 5 months ago
alpine-edge: niaaml-gui-pyc

Precompiled Python bytecode for niaaml-gui

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 13.9%
Average: 19.3%
Forks count: 30.6%
Stargazers count: 32.7%
Maintainers (1)
Last synced: 5 months ago
alpine-edge: niaaml-gui-doc

GUI for NiaAML Python package (documentation)

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 15.5%
Average: 19.4%
Forks count: 29.6%
Stargazers count: 32.7%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.21: niaaml-gui

GUI for NiaAML Python package

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.20: niaaml-gui-pyc

Precompiled Python bytecode for niaaml-gui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 4 months ago
alpine-v3.22: niaaml-gui-doc

GUI for NiaAML Python package (documentation)

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.22: niaaml-gui

GUI for NiaAML Python package

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.21: niaaml-gui-doc

GUI for NiaAML Python package (documentation)

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.21: niaaml-gui-pyc

Precompiled Python bytecode for niaaml-gui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.22: niaaml-gui-pyc

Precompiled Python bytecode for niaaml-gui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.20: niaaml-gui

GUI for NiaAML Python package

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago
alpine-v3.20: niaaml-gui-doc

GUI for NiaAML Python package (documentation)

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 5 months ago

Dependencies

poetry.lock pypi
  • atomicwrites 1.4.0 develop
  • attrs 21.2.0 develop
  • colorama 0.4.4 develop
  • importlib-metadata 4.8.1 develop
  • more-itertools 8.10.0 develop
  • packaging 21.0 develop
  • pluggy 0.13.1 develop
  • py 1.10.0 develop
  • pytest 5.4.3 develop
  • typing-extensions 3.10.0.2 develop
  • wcwidth 0.2.5 develop
  • zipp 3.6.0 develop
  • cycler 0.10.0
  • et-xmlfile 1.1.0
  • joblib 1.1.0
  • kiwisolver 1.3.1
  • matplotlib 3.3.4
  • niaaml 1.1.1
  • niapy 2.0.0rc18
  • numpy 1.19.5
  • openpyxl 3.0.9
  • pandas 1.1.5
  • pillow 8.3.2
  • pyparsing 2.4.7
  • pyqt5 5.15.4
  • pyqt5-qt5 5.15.2
  • pyqt5-sip 12.9.0
  • python-dateutil 2.8.2
  • pytz 2021.3
  • qtawesome 1.0.3
  • qtpy 1.11.2
  • scikit-learn 0.23.2
  • scipy 1.5.4
  • six 1.16.0
  • threadpoolctl 3.0.0
pyproject.toml pypi
  • pytest ^5.2 develop
  • NiaPy ^2.0.0rc18
  • PyQt5 ^5.15.0
  • QtAwesome ^1.0.2
  • niaaml ^1.1.1rc2
  • python ^3.6.1
.github/workflows/test.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v3 composite