niaaml-gui


Nameniaaml-gui JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/firefly-cpp/NiaAML-GUI
SummaryGUI for NiaAML Python package
upload_time2024-04-30 18:39:39
maintainerNone
docs_urlNone
authorLuka Pečnik
requires_python<4.0,>=3.9
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.
            # NiaAML-GUI

---

[![PyPI Version](https://img.shields.io/pypi/v/niaaml-gui.svg)](https://pypi.python.org/pypi/niaaml-gui)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/niaaml-gui.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/niaaml-gui.svg)
[![GitHub license](https://img.shields.io/github/license/lukapecnik/NiaAML-GUI.svg)](https://github.com/flukapecnik/NiaAML-GUI/blob/master/LICENSE)
![GitHub commit activity](https://img.shields.io/github/commit-activity/w/lukapecnik/NiaAML-GUI.svg)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/lukapecnik/NiaAML-GUI.svg)](http://isitmaintained.com/project/lukapecnik/NiaAML-GUI "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/lukapecnik/NiaAML-GUI.svg)](http://isitmaintained.com/project/lukapecnik/NiaAML-GUI "Percentage of issues still open")
![GitHub contributors](https://img.shields.io/github/contributors/lukapecnik/NiaAML-GUI.svg)
[![Fedora package](https://img.shields.io/fedora/v/NiaAML-GUI?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/NiaAML-GUI)
[![Packaging status](https://repology.org/badge/tiny-repos/niaaml-gui.svg)](https://repology.org/project/niaaml-gui/versions)

---

This is a basic graphical user interface intended for users of the [NiaAML](https://github.com/lukapecnik/NiaAML) Python package.

* **Python versions:** 3.9.x, 3.10.x, 3.11.x

## Installation

Install NiaAML-GUI with pip:

```sh
pip install niaaml_gui
```

After a successful installation, run the [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, please enable Community repository and use:

```sh
$ apk add niaaml-gui
```

## Usage

NiaAML GUI application allows you to use main features of the [NiaAML](https://github.com/lukapecnik/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 a form of CSV files.**

### Optimization 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>

#### 1:

Tabbed view for choosing components for the optimization. Clicked components get transferred to their corresponding brackets (labels **5**, **6** and **7**).

#### 2:

Input CSV dataset's file selection widget. After the dataset has been selected, you can also view and edit it using the edit button next to the `Select file` button. **Also make sure you check the `CSV has header` checkbox in case the selected CSV file has a header row.** Below you can se a screenshot of the CSV file's editting window.

<p align="center"><img src=".github/gui3.png" alt="NiaAML GUI Edit Dataset View" title="NiaAML GUI Edit Dataset View"/></p>

#### 3:

Dropdown widget for categorical features' encoder selection. It will be ignored in case the dataset contains no categorical features.

#### 4:

Dropdown widget for missing data imputer selection. It will be ignored in case the dataset contains no missing values.

#### 5:

List of selected feature selection algorithms (optional).

#### 6:

List of selected feature transform algorithms (optional).

#### 7:

List of selected classifiers.

#### 8:

Dropdown widget for the selection of components' selection optimization algorithm.

#### 9:

Dropdown widget for the selection of hyperparameters' tuning optimization algorithm. Defaults to **8** if none is selected.

#### 10:

Population size for the components' selection process.

#### 11:

Population size for the hyperparameters' tuning process.

#### 12:

Number of evaluations during the components' selection process.

#### 13:

Number of evaluations during the hyperparameters' tuning process.

#### 14:

Dropdown widget for the selection of a fitness function to use during the pipeline evaluation step.

#### 15:

Destination of the optimization's result (pipeline and text file).

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

### Usage View

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

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

#### 1:

Pipeline file selection widget.

#### 2:

Input CSV file selection widget. The file should contain the same headers (if any) than the dataset in the optimization process and there should be no classes (expected results) present. After the dataset has been selected, you can also view and edit it using the edit button next to the `Select file` button. **Also make sure you check the `CSV has header` checkbox in case the selected CSV file has a header row.**

#### Run

You get a similar output than in the optimization process, but this time there is an array of predicted values present.

## Example

Lets say we want to find an optimal classification pipeline for the [Ecoli dataset](https://archive.ics.uci.edu/ml/datasets/ecoli) [[1]](#1). 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>

The result for 5 individuals is the screenshot below.

<p align="center"><img src=".github/gui10.png" alt="NiaAML GUI Run Pipeline Result" title="NiaAML GUI Run Pipeline Result"/></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." 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": "<4.0,>=3.9",
    "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/e0/24/1864aa6c37ed592eb22a8ad0c8df29528570940f45b9296b895666d6294d/niaaml_gui-0.3.0.tar.gz",
    "platform": null,
    "description": "# NiaAML-GUI\n\n---\n\n[![PyPI Version](https://img.shields.io/pypi/v/niaaml-gui.svg)](https://pypi.python.org/pypi/niaaml-gui)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/niaaml-gui.svg)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/niaaml-gui.svg)\n[![GitHub license](https://img.shields.io/github/license/lukapecnik/NiaAML-GUI.svg)](https://github.com/flukapecnik/NiaAML-GUI/blob/master/LICENSE)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/w/lukapecnik/NiaAML-GUI.svg)\n[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/lukapecnik/NiaAML-GUI.svg)](http://isitmaintained.com/project/lukapecnik/NiaAML-GUI \"Average time to resolve an issue\")\n[![Percentage of issues still open](http://isitmaintained.com/badge/open/lukapecnik/NiaAML-GUI.svg)](http://isitmaintained.com/project/lukapecnik/NiaAML-GUI \"Percentage of issues still open\")\n![GitHub contributors](https://img.shields.io/github/contributors/lukapecnik/NiaAML-GUI.svg)\n[![Fedora package](https://img.shields.io/fedora/v/NiaAML-GUI?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/NiaAML-GUI)\n[![Packaging status](https://repology.org/badge/tiny-repos/niaaml-gui.svg)](https://repology.org/project/niaaml-gui/versions)\n\n---\n\nThis is a basic graphical user interface intended for users of the [NiaAML](https://github.com/lukapecnik/NiaAML) Python package.\n\n* **Python versions:** 3.9.x, 3.10.x, 3.11.x\n\n## Installation\n\nInstall NiaAML-GUI with pip:\n\n```sh\npip install niaaml_gui\n```\n\nAfter a successful installation, run the [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, please enable Community repository and use:\n\n```sh\n$ apk add niaaml-gui\n```\n\n## Usage\n\nNiaAML GUI application allows you to use main features of the [NiaAML](https://github.com/lukapecnik/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 a form of CSV files.**\n\n### Optimization 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#### 1:\n\nTabbed view for choosing components for the optimization. Clicked components get transferred to their corresponding brackets (labels **5**, **6** and **7**).\n\n#### 2:\n\nInput CSV dataset's file selection widget. After the dataset has been selected, you can also view and edit it using the edit button next to the `Select file` button. **Also make sure you check the `CSV has header` checkbox in case the selected CSV file has a header row.** Below you can se a screenshot of the CSV file's editting window.\n\n<p align=\"center\"><img src=\".github/gui3.png\" alt=\"NiaAML GUI Edit Dataset View\" title=\"NiaAML GUI Edit Dataset View\"/></p>\n\n#### 3:\n\nDropdown widget for categorical features' encoder selection. It will be ignored in case the dataset contains no categorical features.\n\n#### 4:\n\nDropdown widget for missing data imputer selection. It will be ignored in case the dataset contains no missing values.\n\n#### 5:\n\nList of selected feature selection algorithms (optional).\n\n#### 6:\n\nList of selected feature transform algorithms (optional).\n\n#### 7:\n\nList of selected classifiers.\n\n#### 8:\n\nDropdown widget for the selection of components' selection optimization algorithm.\n\n#### 9:\n\nDropdown widget for the selection of hyperparameters' tuning optimization algorithm. Defaults to **8** if none is selected.\n\n#### 10:\n\nPopulation size for the components' selection process.\n\n#### 11:\n\nPopulation size for the hyperparameters' tuning process.\n\n#### 12:\n\nNumber of evaluations during the components' selection process.\n\n#### 13:\n\nNumber of evaluations during the hyperparameters' tuning process.\n\n#### 14:\n\nDropdown widget for the selection of a fitness function to use during the pipeline evaluation step.\n\n#### 15:\n\nDestination of the optimization's result (pipeline and text file).\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### Usage View\n\nBelow is a screenshot of the second view with labeled components and you can find a description for each component under the screenshot.\n\n<p align=\"center\"><img src=\".github/gui5.png\" alt=\"NiaAML GUI Second View\" title=\"NiaAML GUI Second View\"/></p>\n\n#### 1:\n\nPipeline file selection widget.\n\n#### 2:\n\nInput CSV file selection widget. The file should contain the same headers (if any) than the dataset in the optimization process and there should be no classes (expected results) present. After the dataset has been selected, you can also view and edit it using the edit button next to the `Select file` button. **Also make sure you check the `CSV has header` checkbox in case the selected CSV file has a header row.**\n\n#### Run\n\nYou get a similar output than in the optimization process, but this time there is an array of predicted values present.\n\n## Example\n\nLets say we want to find an optimal classification pipeline for the [Ecoli dataset](https://archive.ics.uci.edu/ml/datasets/ecoli) [[1]](#1). 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\nThe result for 5 individuals is the screenshot below.\n\n<p align=\"center\"><img src=\".github/gui10.png\" alt=\"NiaAML GUI Run Pipeline Result\" title=\"NiaAML GUI Run Pipeline Result\"/></p>\n\n## 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## Cite us\n\nL. Pe\u010dnik, I. Fister Jr. \"NiaAML: AutoML framework based on stochastic population-based nature-inspired algorithms.\" Journal of Open Source Software 6.61 (2021): 2949.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "GUI for NiaAML Python package",
    "version": "0.3.0",
    "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": "bbe3f5270824fed5764b688139c8e7483f94ca7e79d2c8d57da2404e0b18a489",
                "md5": "4ca100ceb8eda77ade861526f0640a91",
                "sha256": "50b0c6dc3bcf22f26a667764ec3827587985eeb5d22ab63a62fd2b28b6d0bc71"
            },
            "downloads": -1,
            "filename": "niaaml_gui-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4ca100ceb8eda77ade861526f0640a91",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 17465,
            "upload_time": "2024-04-30T18:39:38",
            "upload_time_iso_8601": "2024-04-30T18:39:38.040772Z",
            "url": "https://files.pythonhosted.org/packages/bb/e3/f5270824fed5764b688139c8e7483f94ca7e79d2c8d57da2404e0b18a489/niaaml_gui-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0241864aa6c37ed592eb22a8ad0c8df29528570940f45b9296b895666d6294d",
                "md5": "e08599d85135010967f72b259966b4ee",
                "sha256": "a3a7485cd63a5107fb9f1f54cf52365591509c354af4b0f85d3f714aef293052"
            },
            "downloads": -1,
            "filename": "niaaml_gui-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e08599d85135010967f72b259966b4ee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 13901,
            "upload_time": "2024-04-30T18:39:39",
            "upload_time_iso_8601": "2024-04-30T18:39:39.329333Z",
            "url": "https://files.pythonhosted.org/packages/e0/24/1864aa6c37ed592eb22a8ad0c8df29528570940f45b9296b895666d6294d/niaaml_gui-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-30 18:39:39",
    "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: 0.45105s