diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-03-31 13:55:39 +0200 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-03-31 13:56:29 +0200 |
commit | 355d4b6f2b2bfe6037533253d8d3e8428d59d992 (patch) | |
tree | 22b31dfe8bcca1741424a7173145b85df79338ff /frontend/src/app/_pages/add-model | |
parent | e5d06f541553597d5db1b0e8a552935679875132 (diff) |
Dodat je automatski izbor metrika.
Diffstat (limited to 'frontend/src/app/_pages/add-model')
-rw-r--r-- | frontend/src/app/_pages/add-model/add-model.component.html | 73 | ||||
-rw-r--r-- | frontend/src/app/_pages/add-model/add-model.component.ts | 25 |
2 files changed, 55 insertions, 43 deletions
diff --git a/frontend/src/app/_pages/add-model/add-model.component.html b/frontend/src/app/_pages/add-model/add-model.component.html index 593d52b7..5e8372c9 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.html +++ b/frontend/src/app/_pages/add-model/add-model.component.html @@ -234,6 +234,8 @@ </div> <div class="row p-2"> + <!--***********************************ENKODER*********************************************--> + <div class="col-1"> </div> <div class="col-3"> @@ -247,6 +249,9 @@ </option> </select> </div> + + <!--***********************************BROJ NEURONA SKRIVENOG SLOJA*********************************************--> + <div class="col-1"> </div> <div class="col-3"> @@ -256,7 +261,8 @@ <input type="number" min="1" class="form-control" name="hiddenLayerNeurons" [(ngModel)]="newModel.hiddenLayerNeurons"> </div> - </div> + </div> +<!--***********************************OPTIMIZACIJA*********************************************--> <div class="row p-2"> <div class="col-1"> @@ -283,7 +289,7 @@ </div> </div> <!--***********************************LOSS FUNCTION*********************************************--> - <div class="row p-2"> + <div class="row justify-content-center"> <div class="col-1"> </div> <div class="col-3"> @@ -291,7 +297,7 @@ </div> <div class="col-2"> <select id=lossFunctionOptions class="form-control" name="lossFunction" - [(ngModel)]="newModel.lossFunction"> + [(ngModel)]="newModel.lossFunction" aria-checked="true"> <option *ngFor="let option of Object.keys(lossFunction); let optionName of Object.values(lossFunction)" [value]="option"> @@ -301,8 +307,27 @@ </div> <div class="col-1"> </div> - + </div> <!-- ************************************************************************************************** --> + +<!--**********************************************METRIKE ZA KOMPAJLER I GRAFIKE***********************************************--> + +<hr> + <div class="form-check form-check-inline overflow-auto " style="width: max-content;"> + <h3>Izaberite metrike:</h3> + <div id="divMetricsinput" > + + <div *ngFor="let option of Object.keys(metrics); let optionName of Object.values(metrics) "class="form-check form-check-inline"> + + <input name="cbmetrics" class="form-check-input" type="checkbox" value="{{option}}" id="metrics_{{option}}" style="float: left;"> + <label class="form-check-label" for="metrics_{{option}}" for="inlineCheckbox2"> + {{optionName}} + </label> + </div> + </div> + </div> +<!--************************************************************************************************* --> + <div class="col-3 mt-2"> <label for="type" class="form-check-label">Nasumičan redosled podataka?</label> <input class="mx-3 form-check-input" type="checkbox" [(ngModel)]="newModel.randomOrder" @@ -310,9 +335,9 @@ </div> <div class="col-1"> </div> - </div> + - <!--<div class="row p-2"> + <div class="row p-2 justify-content-left"> <div class="col-3"></div> <div class="col-3"> <label for="hiddenLayerActivationFunction" class="col-form-label">Funkcija aktivacije skrivenih @@ -332,7 +357,7 @@ </div> <div class="col-3"></div> </div> - --> + <div class="row p-2"> <div class="col-1"> </div> @@ -353,36 +378,8 @@ [(ngModel)]="tempTestSetDistribution" [disabled]="!newModel.randomTestSet"> </div> </div> - <div class="col"> - trening - <mat-slider min="10" max="90" step="10" value="10" name="randomTestSetDistribution" thumbLabel - [disabled]="!newModel.randomTestSet" [(ngModel)]="tempTestSetDistribution"> - </mat-slider> - test - </div> + <!--***********************************AKTIVACIONE FUNKCIJE*********************************************--> -<h3 >Aktivacione funkcije</h3> - - <div class="row p-2" style="align-self: center;"> - <div class="col-3"></div> - <div class="col-3"> - <label for="hiddenLayerActivationFunction" class="col-form-label" style="text-align: center;">Funkcija aktivacije skrivenih - slojeva:</label> - </div> - <div class="col-3"> - <div *ngFor="let item of [].constructor(newModel.hiddenLayers); let i = index"> - <select [id]="'hiddenLayerActivationFunctionOption_'+i" class="form-control" - [(ngModel)]="newModel.hiddenLayerActivationFunctions[i]"> - <option - *ngFor="let option of Object.keys(ActivationFunction); let optionName of Object.values(ActivationFunction)" - [value]="option"> - {{ optionName }} - </option> - </select> - </div> - </div> - <div class="col-3"></div> - </div> <div class="row p-2" style="align-self: center;"> <div class="col-1"> @@ -405,13 +402,13 @@ </div> - <!--<div class="col"> + <div class="col"> trening <mat-slider min="10" max="90" step="10" value="10" name="randomTestSetDistribution" thumbLabel [disabled]="!newModel.randomTestSet" [(ngModel)]="tempTestSetDistribution"> </mat-slider> test - </div>--> + </div> <div class="col"> </div> </div> diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts index 4428c8c6..a1d36b42 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.ts +++ b/frontend/src/app/_pages/add-model/add-model.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import Model, { LossFunctionBinaryClassification, LossFunctionMultiClassification, LossFunctionRegression, NullValReplacer, ReplaceWith } from 'src/app/_data/Model'; -import { ProblemType, Encoding, ActivationFunction, LossFunction, Optimizer, NullValueOptions } from 'src/app/_data/Model'; +import { ProblemType, Encoding, ActivationFunction, LossFunction, Optimizer, NullValueOptions,Metrics,MetricsRegression , MetricsBinaryClassification,MetricsMultiClassification} from 'src/app/_data/Model'; import { DatasetLoadComponent } from 'src/app/_elements/dataset-load/dataset-load.component'; import { ModelsService } from 'src/app/_services/models.service'; import shared from 'src/app/Shared'; @@ -10,6 +10,7 @@ import { DatasetsService } from 'src/app/_services/datasets.service'; import { NgxCsvParser } from 'ngx-csv-parser'; import { CsvParseService } from 'src/app/_services/csv-parse.service'; + @Component({ selector: 'app-add-model', templateUrl: './add-model.component.html', @@ -27,7 +28,7 @@ export class AddModelComponent implements OnInit { ProblemType = ProblemType; Encoding = Encoding; ActivationFunction = ActivationFunction; - activationFunction:any=ActivationFunction + metrics:any=Metrics; LossFunction = LossFunction; lossFunction : any = LossFunction; Optimizer = Optimizer; @@ -54,7 +55,7 @@ export class AddModelComponent implements OnInit { term: string = ""; selectedProblemType:string=''; - + selectedMetrics=[]; constructor(private models: ModelsService, private datasets: DatasetsService, private csv: CsvParseService) { this.newModel = new Model(); @@ -108,6 +109,7 @@ export class AddModelComponent implements OnInit { this.getCheckedInputCols(); this.getCheckedOutputCol(); + this.getMetrics(); if (this.validationInputsOutput()) { console.log('ADD MODEL: STEP 1 - UPLOAD FILE'); @@ -155,7 +157,7 @@ export class AddModelComponent implements OnInit { if (this.selectedDataset) { //dataset je izabran this.getCheckedInputCols(); this.getCheckedOutputCol(); - + this.getMetrics(); if (this.validationInputsOutput()) { this.newModel.datasetId = this.selectedDataset._id; @@ -473,17 +475,30 @@ export class AddModelComponent implements OnInit { switch(this.problemtype){ case 'regresioni': this.lossFunction=LossFunctionRegression; + this.metrics=MetricsRegression; break; case 'binarni-klasifikacioni': this.lossFunction=LossFunctionBinaryClassification; + this.metrics=MetricsBinaryClassification; break; case 'multi-klasifikacioni': this.lossFunction=LossFunctionMultiClassification; + this.metrics=MetricsMultiClassification; break; default: break; } } - + getMetrics() { + this.newModel.metrics=[]; + let cb = document.getElementsByName("cbmetrics"); + + for (let i = 0; i < cb.length; i++) { + let chb = <HTMLInputElement>cb[i]; + if (chb.checked == true) + this.newModel.metrics.push(chb.value); + } + + } } |