From 07b11e07fc62d9ea9765595812ab68209be99a3a Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Mon, 18 Apr 2022 00:20:08 +0200 Subject: Omogucen izbor enkodiranja za svaku kolonu. Izmenjena klasa Experiment da sadrzi niz parova naziv kolone - enkoding. Ispravljen bag kod menjanja dugmica "izaberi" i "dodaj dataset". --- frontend/src/app/experiment/experiment.component.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'frontend/src/app/experiment/experiment.component.ts') diff --git a/frontend/src/app/experiment/experiment.component.ts b/frontend/src/app/experiment/experiment.component.ts index b5e1d1f4..036db326 100644 --- a/frontend/src/app/experiment/experiment.component.ts +++ b/frontend/src/app/experiment/experiment.component.ts @@ -5,6 +5,7 @@ import Dataset, { ColumnInfo } from '../_data/Dataset'; import { ModelsService } from '../_services/models.service'; import Shared from '../Shared'; import { ExperimentsService } from '../_services/experiments.service'; +import { ColumnEncoding } from '../_data/Experiment'; @Component({ selector: 'app-experiment', @@ -21,6 +22,7 @@ export class ExperimentComponent implements OnInit { NullValueOptions = NullValueOptions; ReplaceWith = ReplaceWith; Encoding = Encoding; + ColumnEncoding = ColumnEncoding; Object = Object; selectedColumnsInfoArray: ColumnInfo[] = []; @@ -38,6 +40,16 @@ export class ExperimentComponent implements OnInit { this.selectedDataset = dataset; this.selectedColumnsInfoArray = this.selectedDataset.columnInfo; this.selectedNotNullColumnsArray = []; + + this.resetColumnEncodings(); + console.log(this.experiment.encodings); + } + + resetColumnEncodings() { + this.experiment.encodings = []; + for (let i = 0; i < this.selectedColumnsInfoArray.length; i++) { + this.experiment.encodings.push(new ColumnEncoding(this.selectedColumnsInfoArray[i].columnName, Encoding.Label)); + } } getInputById(id: string): HTMLInputElement { @@ -179,13 +191,14 @@ export class ExperimentComponent implements OnInit { this.experiment.randomTestSetDistribution = 1 - Math.round(this.tempTestSetDistribution / 100 * 10) / 10; - //console.log("Eksperiment:", this.experiment); + console.log("Eksperiment:", this.experiment); this.experimentsService.addExperiment(this.experiment).subscribe((response) => { this.experiment = response; - this.selectedColumnsInfoArray = []; + this.selectedColumnsInfoArray = []; this.selectedNotNullColumnsArray = []; + this.experiment.encodings = []; Shared.openDialog("Obaveštenje", "Eksperiment je uspešno kreiran."); }, (error) => { -- cgit v1.2.3 From 1509314a97c1a122a50173382e976307f5ec9d40 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Mon, 18 Apr 2022 00:21:57 +0200 Subject: Dodat tip problema u eksperiment --- frontend/src/app/_data/Experiment.ts | 4 ++- .../_elements/model-load/model-load.component.html | 16 ++-------- .../_elements/model-load/model-load.component.ts | 4 ++- .../src/app/experiment/experiment.component.html | 34 +++++++++++++++++----- .../src/app/experiment/experiment.component.ts | 4 +-- frontend/src/app/training/training.component.html | 2 +- 6 files changed, 38 insertions(+), 26 deletions(-) (limited to 'frontend/src/app/experiment/experiment.component.ts') diff --git a/frontend/src/app/_data/Experiment.ts b/frontend/src/app/_data/Experiment.ts index 23fd77d4..d2b6eea5 100644 --- a/frontend/src/app/_data/Experiment.ts +++ b/frontend/src/app/_data/Experiment.ts @@ -1,3 +1,4 @@ +import { ProblemType } from "./Model"; export default class Experiment { _id: string = ''; uploaderId: string = ''; @@ -18,7 +19,8 @@ export default class Experiment { public randomTestSet: boolean = true, public randomTestSetDistribution: number = 0.1, //0.1-0.9 (10% - 90%) JESTE OVDE ZAKUCANO 10, AL POSLATO JE KAO 0.1 BACK-U - public encodings: ColumnEncoding[] = []//[{columnName: "", columnEncoding: Encoding.Label}] + public encodings: ColumnEncoding[] = [],//[{columnName: "", columnEncoding: Encoding.Label}] + public type:ProblemType = ProblemType.Regression ) { } } diff --git a/frontend/src/app/_elements/model-load/model-load.component.html b/frontend/src/app/_elements/model-load/model-load.component.html index 85caca0d..dcb35c21 100644 --- a/frontend/src/app/_elements/model-load/model-load.component.html +++ b/frontend/src/app/_elements/model-load/model-load.component.html @@ -17,7 +17,7 @@
    -
  • @@ -124,19 +124,7 @@ {{newModel.batchSize}} - +
diff --git a/frontend/src/app/_elements/model-load/model-load.component.ts b/frontend/src/app/_elements/model-load/model-load.component.ts index aa0797bd..9bd81f95 100644 --- a/frontend/src/app/_elements/model-load/model-load.component.ts +++ b/frontend/src/app/_elements/model-load/model-load.component.ts @@ -1,5 +1,6 @@ -import { Component, OnInit, ViewChild, Output, EventEmitter } from '@angular/core'; +import { Component, OnInit, ViewChild, Output, EventEmitter, Input } from '@angular/core'; import Shared from 'src/app/Shared'; +import Experiment from 'src/app/_data/Experiment'; import Model, { ActivationFunction, LossFunction, LossFunctionBinaryClassification, LossFunctionMultiClassification, LossFunctionRegression, Metrics, MetricsBinaryClassification, MetricsMultiClassification, MetricsRegression, NullValueOptions, Optimizer, ProblemType } from 'src/app/_data/Model'; import { ModelsService } from 'src/app/_services/models.service'; import { GraphComponent } from '../graph/graph.component'; @@ -13,6 +14,7 @@ import { GraphComponent } from '../graph/graph.component'; export class ModelLoadComponent implements OnInit { @ViewChild(GraphComponent) graph!: GraphComponent; + @Input() forExperiment?:Experiment; @Output() selectedModelChangeEvent = new EventEmitter(); newModel: Model = new Model(); diff --git a/frontend/src/app/experiment/experiment.component.html b/frontend/src/app/experiment/experiment.component.html index 5b3b2c43..35124b98 100644 --- a/frontend/src/app/experiment/experiment.component.html +++ b/frontend/src/app/experiment/experiment.component.html @@ -214,13 +214,33 @@ - -
- -
-
-
-
diff --git a/frontend/src/app/experiment/experiment.component.ts b/frontend/src/app/experiment/experiment.component.ts index 036db326..71679243 100644 --- a/frontend/src/app/experiment/experiment.component.ts +++ b/frontend/src/app/experiment/experiment.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import Experiment, { NullValReplacer, NullValueOptions, ReplaceWith, Encoding } from '../_data/Experiment'; -import Model from '../_data/Model'; +import Model,{ProblemType} from '../_data/Model'; import Dataset, { ColumnInfo } from '../_data/Dataset'; import { ModelsService } from '../_services/models.service'; import Shared from '../Shared'; @@ -24,7 +24,7 @@ export class ExperimentComponent implements OnInit { Encoding = Encoding; ColumnEncoding = ColumnEncoding; Object = Object; - + ProblemType=ProblemType; selectedColumnsInfoArray: ColumnInfo[] = []; selectedNotNullColumnsArray: string[] = []; diff --git a/frontend/src/app/training/training.component.html b/frontend/src/app/training/training.component.html index 0ce4cc89..672e75fb 100644 --- a/frontend/src/app/training/training.component.html +++ b/frontend/src/app/training/training.component.html @@ -23,7 +23,7 @@

2. Izaberite model

- +

3. Treniranje modela

-- cgit v1.2.3 From fdfe2da8c1e71ec1dddeb81bc32356fb746c0c7f Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Mon, 18 Apr 2022 14:29:54 +0200 Subject: Napravi eksperiment - sredjen bag u carousel-u, poslednja izlazna kolona cekirana, ispis poruke kad nema nedostajucih vrednosti za popunjavanje. Na back-u izmenjen DatasetController i Service (name umesto id-a u post requestu) --- backend/api/api/Controllers/DatasetController.cs | 26 ++-- backend/api/api/Services/DatasetService.cs | 4 +- backend/api/api/Services/IDatasetService.cs | 2 +- frontend/src/app/_data/Experiment.ts | 4 +- .../src/app/experiment/experiment.component.html | 154 ++++++++++----------- .../src/app/experiment/experiment.component.ts | 1 + 6 files changed, 92 insertions(+), 99 deletions(-) (limited to 'frontend/src/app/experiment/experiment.component.ts') diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index 58a903eb..0a9fe0bd 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -136,7 +136,7 @@ namespace api.Controllers var existingDataset = _datasetService.GetOneDataset(dataset.uploaderId, dataset.name); if (existingDataset != null) - return NotFound($"Dateset with name = {dataset.name} exisits"); + return NotFound($"Dataset with this name already exists"); else { FileModel fileModel = _fileService.getFile(dataset.fileId); @@ -149,46 +149,46 @@ namespace api.Controllers // PUT api//{name} - [HttpPut("{id}")] + [HttpPut("{name}")] [Authorize(Roles = "User")] - public ActionResult Put(string id, [FromBody] Dataset dataset) + public ActionResult Put(string name, [FromBody] Dataset dataset) { string uploaderId = getUserId(); if (uploaderId == null) return BadRequest(); - var existingDataset = _datasetService.GetOneDataset(uploaderId, id); + var existingDataset = _datasetService.GetOneDataset(uploaderId, name); //ne mora da se proverava if (existingDataset == null) - return NotFound($"Dataset with ID = {id} or user with ID = {uploaderId} not found"); + return NotFound($"Dataset with name = {name} or user with ID = {uploaderId} not found"); dataset.lastUpdated = DateTime.UtcNow; - _datasetService.Update(uploaderId, id, dataset); + _datasetService.Update(uploaderId, name, dataset); - return Ok($"Dataset with ID = {id} updated"); + return Ok($"Dataset with name = {name} updated"); } // DELETE api//name - [HttpDelete("{id}")] + [HttpDelete("{name}")] [Authorize(Roles = "User")] - public ActionResult Delete(string id) + public ActionResult Delete(string name) { string uploaderId = getUserId(); if (uploaderId == null) return BadRequest(); - var dataset = _datasetService.GetOneDataset(uploaderId, id); + var dataset = _datasetService.GetOneDataset(uploaderId, name); if (dataset == null) - return NotFound($"Dataset with ID = {id} or user with ID = {uploaderId} not found"); + return NotFound($"Dataset with name = {name} or user with ID = {uploaderId} not found"); - _datasetService.Delete(dataset.uploaderId, dataset._id); + _datasetService.Delete(dataset.uploaderId, dataset.name); - return Ok($"Dataset with ID = {id} deleted"); + return Ok($"Dataset with name = {name} deleted"); } } diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 6c2efe14..f260a1ba 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -62,9 +62,9 @@ namespace api.Services return _dataset.Find(dataset => dataset.isPublic == true && dataset.isPreProcess).ToList(); } - public Dataset GetOneDataset(string userId, string id) + public Dataset GetOneDataset(string userId, string name) { - return _dataset.Find(dataset => dataset.uploaderId == userId && dataset._id == id && dataset.isPreProcess).FirstOrDefault(); + return _dataset.Find(dataset => dataset.uploaderId == userId && dataset.name == name && dataset.isPreProcess).FirstOrDefault(); } //odraditi za pretragu getOne diff --git a/backend/api/api/Services/IDatasetService.cs b/backend/api/api/Services/IDatasetService.cs index bb06208d..f493a2ec 100644 --- a/backend/api/api/Services/IDatasetService.cs +++ b/backend/api/api/Services/IDatasetService.cs @@ -5,7 +5,7 @@ namespace api.Services { public interface IDatasetService { - Dataset GetOneDataset(string userId, string id); + Dataset GetOneDataset(string userId, string name); Dataset GetOneDataset(string id); List SearchDatasets(string name); List GetMyDatasets(string userId); diff --git a/frontend/src/app/_data/Experiment.ts b/frontend/src/app/_data/Experiment.ts index d2b6eea5..95ef6e1e 100644 --- a/frontend/src/app/_data/Experiment.ts +++ b/frontend/src/app/_data/Experiment.ts @@ -19,8 +19,8 @@ export default class Experiment { public randomTestSet: boolean = true, public randomTestSetDistribution: number = 0.1, //0.1-0.9 (10% - 90%) JESTE OVDE ZAKUCANO 10, AL POSLATO JE KAO 0.1 BACK-U - public encodings: ColumnEncoding[] = [],//[{columnName: "", columnEncoding: Encoding.Label}] - public type:ProblemType = ProblemType.Regression + public encodings: ColumnEncoding[] = [], + public type: ProblemType = ProblemType.Regression ) { } } diff --git a/frontend/src/app/experiment/experiment.component.html b/frontend/src/app/experiment/experiment.component.html index 35124b98..62236cce 100644 --- a/frontend/src/app/experiment/experiment.component.html +++ b/frontend/src/app/experiment/experiment.component.html @@ -31,8 +31,7 @@

-   +   @@ -44,7 +43,8 @@

-   +   @@ -54,89 +54,90 @@
-

Popunjavanje nedostajućih vrednosti:

-
- -