NiaAML-GUI


NameNiaAML-GUI JSON
Version 0.4.2 PyPI version JSON
download
home_pagehttps://github.com/firefly-cpp/NiaAML-GUI
SummaryGUI for NiaAML Python package
upload_time2025-07-31 08:34:56
maintainerNone
docs_urlNone
authorLuka Pečnik
requires_python<3.14,>=3.10
licenseMIT
keywords classification niapy niaaml scikit-learn nature-inspired algorithms feature selection preprocessing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">
    NiaAML-GUI
</h1>

<p align="center">
    <a href="https://pypi.python.org/pypi/niaaml-gui">
        <img alt="PyPI Version" src="https://img.shields.io/pypi/v/niaaml-gui.svg">
    </a>
    <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/niaaml-gui.svg">
    <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/niaaml-gui.svg">
        <a href="https://repology.org/project/niaaml-gui/versions">
        <img alt="Packaging status" src="https://repology.org/badge/tiny-repos/niaaml-gui.svg">
    </a>
    <a href="https://src.fedoraproject.org/rpms/NiaAML-GUI">
        <img alt="Fedora package" src="https://img.shields.io/fedora/v/NiaAML-GUI?color=blue&label=Fedora%20Linux&logo=fedora">
    </a>
    <a href="https://github.com/flukapecnik/NiaAML-GUI/blob/master/LICENSE">
        <img alt="GitHub license" src="https://img.shields.io/github/license/lukapecnik/NiaAML-GUI.svg">
    </a>
    <a href="https://github.com/firefly-cpp/NiaAML-GUI/actions/workflows/test.yml">
        <img alt="GitHub Actions" src="https://github.com/firefly-cpp/NiaAML-GUI/actions/workflows/test.yml/badge.svg">
    </a>
</p>

<p align="center">
    <img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/w/lukapecnik/NiaAML-GUI.svg">
    <a href='http://isitmaintained.com/project/lukapecnik/NiaAML-GUI "Average time to resolve an issue"'>
        <img alt="Average time to resolve an issue" src="http://isitmaintained.com/badge/resolution/lukapecnik/NiaAML-GUI.svg">
    </a>
    <a href='http://isitmaintained.com/project/lukapecnik/NiaAML-GUI "Percentage of issues still open"'>
        <img alt="Percentage of issues still open" src="http://isitmaintained.com/badge/open/lukapecnik/NiaAML-GUI.svg">
    </a>
    <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/lukapecnik/NiaAML-GUI.svg">
</p>

<p align="center">
    <a href="#-installation">📦 Installation</a> •
    <a href="#-usage">🚀 Usage</a> •
    <a href="#-example">📓 Example</a> •
    <a href="#-references">📝 References</a> •
    <a href="#-cite-us">📄 Cite us</a>
</p>

A graphical user interface for building and running machine learning pipelines using the [NiaAML](https://github.com/firefly-cpp/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](niaaml_gui/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](https://github.com/firefly-cpp/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.

<p align="center"><img src=".github/gui1.png" alt="NiaAML GUI First View" title="NiaAML GUI First View"/></p>

| 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. <br> <p align="center"><img src=".github/gui3.png" alt="NiaAML GUI Edit Dataset View" title="NiaAML GUI Edit Dataset View"/></p> |
| 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.

<p align="center"><img src=".github/gui2.png" alt="NiaAML GUI Optimization Running" title="NiaAML GUI Optimization Running"/></p>
<p align="center"><img src=".github/gui4.png" alt="NiaAML GUI Optimization Finished" title="NiaAML GUI Optimization Finished"/></p>

## 📓 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.

<p align="center"><img src=".github/gui6.png" alt="NiaAML GUI Optimization Setup" title="NiaAML GUI Optimization Setup"/></p>

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

<p align="center"><img src=".github/gui7.png" alt="NiaAML GUI Optimization Output" title="NiaAML GUI Optimization Output"/></p>

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

<p align="center"><img src=".github/gui8.png" alt="NiaAML GUI Output Files" title="NiaAML GUI Output Files"/></p>

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

<p align="center"><img src=".github/gui9.png" alt="NiaAML GUI Run Pipeline" title="NiaAML GUI Run Pipeline"/></p>

## 📝 References

<a id="1">[1]</a> Dua, D. and Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). 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](https://joss.theoj.org/papers/10.21105/joss.02949)." Journal of Open Source Software 6.61 (2021): 2949.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/firefly-cpp/NiaAML-GUI",
    "name": "NiaAML-GUI",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": null,
    "keywords": "classification, NiaPy, NiaAML, scikit-learn, nature-inspired algorithms, feature selection, preprocessing",
    "author": "Luka Pe\u010dnik",
    "author_email": "lukapecnik96@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/23/76/132a9e1e60aa9a77abe19f2f9e71b03d380cf5a931776d776f9648d37859/niaaml_gui-0.4.2.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\n    NiaAML-GUI\n</h1>\n\n<p align=\"center\">\n    <a href=\"https://pypi.python.org/pypi/niaaml-gui\">\n        <img alt=\"PyPI Version\" src=\"https://img.shields.io/pypi/v/niaaml-gui.svg\">\n    </a>\n    <img alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/niaaml-gui.svg\">\n    <img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/niaaml-gui.svg\">\n        <a href=\"https://repology.org/project/niaaml-gui/versions\">\n        <img alt=\"Packaging status\" src=\"https://repology.org/badge/tiny-repos/niaaml-gui.svg\">\n    </a>\n    <a href=\"https://src.fedoraproject.org/rpms/NiaAML-GUI\">\n        <img alt=\"Fedora package\" src=\"https://img.shields.io/fedora/v/NiaAML-GUI?color=blue&label=Fedora%20Linux&logo=fedora\">\n    </a>\n    <a href=\"https://github.com/flukapecnik/NiaAML-GUI/blob/master/LICENSE\">\n        <img alt=\"GitHub license\" src=\"https://img.shields.io/github/license/lukapecnik/NiaAML-GUI.svg\">\n    </a>\n    <a href=\"https://github.com/firefly-cpp/NiaAML-GUI/actions/workflows/test.yml\">\n        <img alt=\"GitHub Actions\" src=\"https://github.com/firefly-cpp/NiaAML-GUI/actions/workflows/test.yml/badge.svg\">\n    </a>\n</p>\n\n<p align=\"center\">\n    <img alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/w/lukapecnik/NiaAML-GUI.svg\">\n    <a href='http://isitmaintained.com/project/lukapecnik/NiaAML-GUI \"Average time to resolve an issue\"'>\n        <img alt=\"Average time to resolve an issue\" src=\"http://isitmaintained.com/badge/resolution/lukapecnik/NiaAML-GUI.svg\">\n    </a>\n    <a href='http://isitmaintained.com/project/lukapecnik/NiaAML-GUI \"Percentage of issues still open\"'>\n        <img alt=\"Percentage of issues still open\" src=\"http://isitmaintained.com/badge/open/lukapecnik/NiaAML-GUI.svg\">\n    </a>\n    <img alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/lukapecnik/NiaAML-GUI.svg\">\n</p>\n\n<p align=\"center\">\n    <a href=\"#-installation\">\ud83d\udce6 Installation</a> \u2022\n    <a href=\"#-usage\">\ud83d\ude80 Usage</a> \u2022\n    <a href=\"#-example\">\ud83d\udcd3 Example</a> \u2022\n    <a href=\"#-references\">\ud83d\udcdd References</a> \u2022\n    <a href=\"#-cite-us\">\ud83d\udcc4 Cite us</a>\n</p>\n\nA graphical user interface for building and running machine learning pipelines using the [NiaAML](https://github.com/firefly-cpp/NiaAML) framework. This GUI now supports **block-based pipeline composition**, drag-and-drop components, visual connections, and CSV editing.\n\n* **Free software:** MIT license\n* **Python versions:** 3.10.x, 3.11.x, 3.12.x, 3.13.x\n\n## \ud83d\udce6 Installation\n\nTo install `NiaAML-GUI` with pip, use:\n\n```sh\npip install niaaml_gui\n```\n\nAfter successful installation, run [main.py](niaaml_gui/main.py):\n\n```sh\npython main.py\n```\n\n### Fedora Linux\n\nTo install `NiaAML-GUI` on Fedora, use:\n\n```sh\n$ dnf install NiaAML-GUI\n```\n\n### Alpine Linux\n\nTo install `NiaAML-GUI` on Alpine Linux, enable Community repository and use:\n\n```sh\n$ apk add niaaml-gui \n```\n\n## \ud83d\ude80 Usage\n\nNiaAML GUI application allows you to use the main features of the [NiaAML](https://github.com/firefly-cpp/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.**\n\n### Pipeline Canvas View\n\nBelow is a screenshot of the first view with labeled components and you can find a description for each component under the screenshot.\n\n<p align=\"center\"><img src=\".github/gui1.png\" alt=\"NiaAML GUI First View\" title=\"NiaAML GUI First View\"/></p>\n\n| Component | Description |\n|:----------|:------------|\n| 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. |\n| 2         | The canvas area where blocks (components) are placed and connected. Users can construct the pipeline visually by drawing arrows between valid components. |\n| 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. <br> <p align=\"center\"><img src=\".github/gui3.png\" alt=\"NiaAML GUI Edit Dataset View\" title=\"NiaAML GUI Edit Dataset View\"/></p> |\n| 4         | \"Categorical Encoder\" block. Allows selection of encoding method for categorical features. Dropdown populated dynamically. |\n| 5         | \"Missing Imputer\" block. Allows selection of imputation method to handle missing values. |\n| 6         | \"Feature Selection\" block. Multi-selection dialog allows the user to choose one or more feature selection algorithms. |\n| 7         | \"Feature Transform\" block. Multi-selection dialog allows choosing one or more feature transformation algorithms. |\n| 8         | \"Classifier\" block. Multi-selection dialog for selecting one or more classification models. |\n| 9         | \"Optimization Algorithm (Selection)\" block. Dropdown for choosing the optimization algorithm used in component selection. |\n| 10        | \"Optimization Algorithm (Tuning)\" block. Dropdown for choosing the algorithm used for hyperparameter tuning. |\n| 11        | \"Population Size (Components Selection)\" block. Numeric input for specifying the population size during component selection. |\n| 12        | \"Population Size (Parameter Tuning)\" block. Numeric input for specifying the population size for hyperparameter tuning. |\n| 13        | \"Number of Evaluations (Component Selection)\" block. Sets the number of allowed evaluations during selection. |\n| 14        | \"Number of Evaluations (Parameter Tuning)\" block. Sets the number of evaluations for hyperparameter tuning. |\n| 15        | \"Fitness Function\" block. Dropdown for selecting the fitness function used during evaluation of each candidate pipeline. |\n| 16        | \"Pipeline Output Folder\" block. Defines the target folder where output files (pipeline, logs, results) are saved. |\n| 17        | Arrow connections between blocks. Only valid connections are allowed. When drawing, green/red highlights show whether the target is acceptable. |\n| 18        | Validation system. Before running optimization, the system checks whether all required components are present and properly configured. |\n\n\n#### Optimization\n\nBelow you can see screenshots of views during and after the optimization has finished.\n\n<p align=\"center\"><img src=\".github/gui2.png\" alt=\"NiaAML GUI Optimization Running\" title=\"NiaAML GUI Optimization Running\"/></p>\n<p align=\"center\"><img src=\".github/gui4.png\" alt=\"NiaAML GUI Optimization Finished\" title=\"NiaAML GUI Optimization Finished\"/></p>\n\n## \ud83d\udcd3 Example\n\nLet's say we want to find an optimal classification pipeline for the Example dataset. You can see the optimization setup in the screenshot below.\n\n<p align=\"center\"><img src=\".github/gui6.png\" alt=\"NiaAML GUI Optimization Setup\" title=\"NiaAML GUI Optimization Setup\"/></p>\n\nWe hit the `Start optimization` button and wait... You can see the output in the screenshot below.\n\n<p align=\"center\"><img src=\".github/gui7.png\" alt=\"NiaAML GUI Optimization Output\" title=\"NiaAML GUI Optimization Output\"/></p>\n\nThere are also 2 new files in the selected destination directory.\n\n<p align=\"center\"><img src=\".github/gui8.png\" alt=\"NiaAML GUI Output Files\" title=\"NiaAML GUI Output Files\"/></p>\n\nNow we can use the exported pipeline file for further classification on the unseen data.\n\n<p align=\"center\"><img src=\".github/gui9.png\" alt=\"NiaAML GUI Run Pipeline\" title=\"NiaAML GUI Run Pipeline\"/></p>\n\n## \ud83d\udcdd References\n\n<a id=\"1\">[1]</a> Dua, D. and Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). Irvine, CA: University of California, School of Information and Computer Science.\n\n## \ud83d\udcc4 Cite us\n\nL. Pe\u010dnik, I. Fister Jr. \"[NiaAML: AutoML framework based on stochastic population-based nature-inspired algorithms](https://joss.theoj.org/papers/10.21105/joss.02949).\" Journal of Open Source Software 6.61 (2021): 2949.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "GUI for NiaAML Python package",
    "version": "0.4.2",
    "project_urls": {
        "Homepage": "https://github.com/firefly-cpp/NiaAML-GUI",
        "Repository": "https://github.com/firefly-cpp/NiaAML-GUI"
    },
    "split_keywords": [
        "classification",
        " niapy",
        " niaaml",
        " scikit-learn",
        " nature-inspired algorithms",
        " feature selection",
        " preprocessing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f387fba0fa4c6ed7f756b99c8457f312eced5b761c931dab8906d7473acdcd8",
                "md5": "de8276475d83780751805af139cd0d7a",
                "sha256": "f544b689c90993ad529d6cac0f2b6aec7b116c22e4d286758ed90bf424c65379"
            },
            "downloads": -1,
            "filename": "niaaml_gui-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "de8276475d83780751805af139cd0d7a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 1641714,
            "upload_time": "2025-07-31T08:34:54",
            "upload_time_iso_8601": "2025-07-31T08:34:54.458315Z",
            "url": "https://files.pythonhosted.org/packages/3f/38/7fba0fa4c6ed7f756b99c8457f312eced5b761c931dab8906d7473acdcd8/niaaml_gui-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2376132a9e1e60aa9a77abe19f2f9e71b03d380cf5a931776d776f9648d37859",
                "md5": "8ee6f23726df14cb4e62b4212ae4d7b9",
                "sha256": "8f5e3dcbba2f82bb0df18e902730acc6ba18274ece4b8b9cd54ed1e1db96db9b"
            },
            "downloads": -1,
            "filename": "niaaml_gui-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "8ee6f23726df14cb4e62b4212ae4d7b9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 1608609,
            "upload_time": "2025-07-31T08:34:56",
            "upload_time_iso_8601": "2025-07-31T08:34:56.049520Z",
            "url": "https://files.pythonhosted.org/packages/23/76/132a9e1e60aa9a77abe19f2f9e71b03d380cf5a931776d776f9648d37859/niaaml_gui-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-31 08:34:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "firefly-cpp",
    "github_project": "NiaAML-GUI",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "niaaml-gui"
}
        
Elapsed time: 1.81190s