You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-39Lines changed: 24 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,10 +41,10 @@
41
41
<a href="#-cite-us">📄 Cite us</a>
42
42
</p>
43
43
44
-
This is a basic graphical user interface intended for users of the [NiaAML](https://github.com/firefly-cpp/NiaAML)Python package.
44
+
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.
To install `NiaAML-GUI` on Alpine Linux, enable Community repository and use:
74
74
75
75
```sh
76
-
$ apk add niaaml-gui
76
+
$ apk add niaaml-gui
77
77
```
78
78
79
79
## 🚀 Usage
80
80
81
81
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.**
82
82
83
-
### Optimization View
83
+
### Pipeline Canvas View
84
84
85
85
Below is a screenshot of the first view with labeled components and you can find a description for each component under the screenshot.
86
86
87
87
<palign="center"><imgsrc=".github/gui1.png"alt="NiaAML GUI First View"title="NiaAML GUI First View"/></p>
88
88
89
89
| Component | Description |
90
90
|:----------|:------------|
91
-
| 1 | Tabbed view for choosing components for the optimization. Clicked components get transferred to their corresponding brackets (labels **5**, **6** and **7**). |
92
-
| 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 see a screenshot of the CSV file's editing window. <palign="center"><imgsrc=".github/gui3.png"alt="NiaAML GUI Edit Dataset View"title="NiaAML GUI Edit Dataset View"/></p> |
93
-
| 3 | Dropdown widget for categorical features' encoder selection. It will be ignored if the dataset contains no categorical features. |
94
-
| 4 | Dropdown widget for missing data imputer selection. It will be ignored if the dataset contains no missing values. |
95
-
| 5 | List of selected feature selection algorithms (optional). |
96
-
| 6 | List of selected feature transform algorithms (optional). |
97
-
| 7 | List of selected classifiers. |
98
-
| 8 | Dropdown widget for the selection of components' selection optimization algorithm. |
99
-
| 9 | Dropdown widget for the selection of hyperparameters' tuning optimization algorithm. Defaults to **8** if none is selected. |
100
-
| 10 | Population size for the components' selection process. |
101
-
| 11 | Population size for the hyperparameters' tuning process. |
102
-
| 12 | Number of evaluations during the components' selection process. |
103
-
| 13 | Number of evaluations during the hyperparameters' tuning process. |
104
-
| 14 | Dropdown widget for the selection of a fitness function to use during the pipeline evaluation step. |
105
-
| 15 | Destination of the optimization's result (pipeline and text file). |
91
+
| 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. |
92
+
| 2 | The canvas area where blocks (components) are placed and connected. Users can construct the pipeline visually by drawing arrows between valid components. |
93
+
| 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> <palign="center"><imgsrc=".github/gui3.png"alt="NiaAML GUI Edit Dataset View"title="NiaAML GUI Edit Dataset View"/></p> |
94
+
| 4 | "Categorical Encoder" block. Allows selection of encoding method for categorical features. Dropdown populated dynamically. |
95
+
| 5 | "Missing Imputer" block. Allows selection of imputation method to handle missing values. |
96
+
| 6 | "Feature Selection" block. Multi-selection dialog allows the user to choose one or more feature selection algorithms. |
97
+
| 7 | "Feature Transform" block. Multi-selection dialog allows choosing one or more feature transformation algorithms. |
98
+
| 8 | "Classifier" block. Multi-selection dialog for selecting one or more classification models. |
99
+
| 9 | "Optimization Algorithm (Selection)" block. Dropdown for choosing the optimization algorithm used in component selection. |
100
+
| 10 | "Optimization Algorithm (Tuning)" block. Dropdown for choosing the algorithm used for hyperparameter tuning. |
101
+
| 11 | "Population Size (Components Selection)" block. Numeric input for specifying the population size during component selection. |
102
+
| 12 | "Population Size (Parameter Tuning)" block. Numeric input for specifying the population size for hyperparameter tuning. |
103
+
| 13 | "Number of Evaluations (Component Selection)" block. Sets the number of allowed evaluations during selection. |
104
+
| 14 | "Number of Evaluations (Parameter Tuning)" block. Sets the number of evaluations for hyperparameter tuning. |
105
+
| 15 | "Fitness Function" block. Dropdown for selecting the fitness function used during evaluation of each candidate pipeline. |
106
+
| 16 | "Pipeline Output Folder" block. Defines the target folder where output files (pipeline, logs, results) are saved. |
107
+
| 17 | Arrow connections between blocks. Only valid connections are allowed. When drawing, green/red highlights show whether the target is acceptable. |
108
+
| 18 | Validation system. Before running optimization, the system checks whether all required components are present and properly configured. |
109
+
106
110
107
111
#### Optimization
108
112
@@ -111,24 +115,9 @@ Below you can see screenshots of views during and after the optimization has fin
Below is a screenshot of the second view with labeled components and you can find a description for each component under the screenshot.
117
-
118
-
<palign="center"><imgsrc=".github/gui5.png"alt="NiaAML GUI Second View"title="NiaAML GUI Second View"/></p>
119
-
120
-
| Component | Description |
121
-
|:----------|:------------|
122
-
| 1 | Pipeline file selection widget. |
123
-
| 2 | Input CSV file selection widget. The file should contain the same headers (if any) as 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.**|
124
-
125
-
#### Run
126
-
127
-
You get a similar output than in the optimization process, but this time there is an array of predicted values present.
128
-
129
118
## 📓 Example
130
119
131
-
Let's 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.
120
+
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.
@@ -144,10 +133,6 @@ Now we can use the exported pipeline file for further classification on the unse
144
133
145
134
<palign="center"><imgsrc=".github/gui9.png"alt="NiaAML GUI Run Pipeline"title="NiaAML GUI Run Pipeline"/></p>
146
135
147
-
The result for 5 individuals is shown on the screenshot below.
148
-
149
-
<palign="center"><imgsrc=".github/gui10.png"alt="NiaAML GUI Run Pipeline Result"title="NiaAML GUI Run Pipeline Result"/></p>
150
-
151
136
## 📝 References
152
137
153
138
<aid="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.
0 commit comments