aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/microservice/api/newmlservice.py48
-rw-r--r--frontend/src/app/_pages/my-models/my-models.component.html43
-rw-r--r--frontend/src/app/_pages/my-models/my-models.component.ts59
3 files changed, 26 insertions, 124 deletions
diff --git a/backend/microservice/api/newmlservice.py b/backend/microservice/api/newmlservice.py
index 85be0c2f..99e3cae5 100644
--- a/backend/microservice/api/newmlservice.py
+++ b/backend/microservice/api/newmlservice.py
@@ -179,6 +179,7 @@ def train(dataset, paramsModel,paramsExperiment,paramsDataset,callback):
###KATEGORIJSKE KOLONE
kategorijskekolone=[]
###PRETVARANJE NUMERICKIH U KATREGORIJSKE AKO JE KORISNIK TAKO OZNACIO
+
columnInfo=paramsDataset['columnInfo']
columnTypes=paramsExperiment['columnTypes']
for i in range(len(columnInfo)):
@@ -187,25 +188,27 @@ def train(dataset, paramsModel,paramsExperiment,paramsDataset,callback):
data[col['columnName']]=data[col['columnName']].apply(str)
kategorijskekolone.append(col['columnName'])
#kategorijskekolone=data.select_dtypes(include=['object']).columns
- print(kategorijskekolone)
+ #print(kategorijskekolone)
###NULL
- null_value_options = paramsExperiment["nullValues"]
- null_values_replacers = paramsExperiment["nullValuesReplacers"]
+ #null_value_options = paramsExperiment["nullValues"] #
+ null_values_replacers = paramsExperiment["nullValuesReplacers"] #{"column":"naziv","opt":"tip promene","value":"vrednost za zamenu"}
- if(null_value_options=='replace'):
+ #if(null_value_options=='replace'):
#print("replace null")
- dict=null_values_replacers
- while(len(dict)>0):
- replace=dict.pop()
- col=replace['column']
- opt=replace['option']
- if(opt=='replace'):
- replacevalue=replace['value']
- data[col]=data[col].fillna(replacevalue)
- elif(null_value_options=='delete_rows'):
- data=data.dropna()
- elif(null_value_options=='delete_columns'):
- data=data.dropna(axis=1)
+ dict=null_values_replacers
+ while(len(dict)>0):
+ replace=dict.pop()
+ col=replace['column']
+ opt=replace['option']
+
+ if(opt=='replace'):
+ replacevalue=replace['value']
+ data[col]=data[col].fillna(replacevalue)
+
+ data=data.dropna()
+
+ #print(data)
+
#print(data.shape)
#
@@ -237,11 +240,12 @@ def train(dataset, paramsModel,paramsExperiment,paramsDataset,callback):
elif(encoding=='onehot'):
- category_columns=[]
- for col in data.columns:
- if(data[col].dtype==np.object_):
- category_columns.append(col)
- data=pd.get_dummies(data, columns=category_columns, prefix=category_columns)
+ if((len(pd.unique(data[kolona]))>20)or (kolona==output_column)):
+ encoder=LabelEncoder()
+ data[kolona]=encoder.fit_transform(data[kolona])
+
+ else:
+ data=pd.get_dummies(data, columns=kolona, prefix=kolona)
elif(encoding=='ordinal'):
encoder = OrdinalEncoder()
@@ -296,7 +300,7 @@ def train(dataset, paramsModel,paramsExperiment,paramsDataset,callback):
#x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=test, random_state=random)
#print(x_train,x_test)
x, x_test, y, y_test = train_test_split(x, y, test_size=test, random_state=random, shuffle=True)
- x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=0.15, shuffle=True)
+ x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=(1.0-paramsModel['validationSize']))
# Treniranje modela
#
#
diff --git a/frontend/src/app/_pages/my-models/my-models.component.html b/frontend/src/app/_pages/my-models/my-models.component.html
deleted file mode 100644
index 9b281239..00000000
--- a/frontend/src/app/_pages/my-models/my-models.component.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<div id="header">
- <h1>Moji modeli</h1>
-</div>
-<div id="wrapper">
- <div id="container" class="container p-5" style="background-color: rgba(255, 255, 255, 0.8); min-height: 100%;">
- <div class="row mt-3 mb-2 d-flex justify-content-center">
-
- <div class="col-sm-6" style="margin-bottom: 10px;">
- </div>
-
- <div class="row">
- <div class="col-sm-4" style="margin-bottom: 10px;" *ngFor="let model of myModels">
- <app-item-model [model]="model"></app-item-model>
-
- <div class="panel-footer row"><!-- panel-footer -->
- <div class="col-xs-6 text-center">
- <div>
- <button type="button" class="btn btn-default btn-lg"style="min-width: 7rem;float: left;" (click)="useThisModel(model)" mat-raised-button color="primary">Koristi
- <span class="glyphicon glyphicon-search"></span>
- </button>
- <button (click)="deleteThisModel(model)" mat-raised-button color="warn" style="min-width: 7rem;float: right" ><mat-icon>delete</mat-icon></button>
-
-
- </div>
- </div>
- </div><!-- end panel-footer -->
-
-
-
- </div>
- </div>
- <div class="text-center" *ngIf="this.myModels.length == 0" >
- <h2>Nema rezultata</h2>
- </div>
- </div>
-
- </div>
-
-
-
-
-
- </div>
diff --git a/frontend/src/app/_pages/my-models/my-models.component.ts b/frontend/src/app/_pages/my-models/my-models.component.ts
deleted file mode 100644
index d379fa69..00000000
--- a/frontend/src/app/_pages/my-models/my-models.component.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
-import shared from 'src/app/Shared';
-import Model from 'src/app/_data/Model';
-import { ModelsService } from 'src/app/_services/models.service';
-
-@Component({
- selector: 'app-my-models',
- templateUrl: './my-models.component.html',
- styleUrls: ['./my-models.component.css']
-})
-export class MyModelsComponent implements OnInit {
- myModels: Model[] = [];
- //myModel: Model;
-
- constructor(private modelsS : ModelsService, private router : Router) {
-
-
-
- }
-
- ngOnInit(): void {
- this.getAllMyModels();
-
- }
-/*
- editModel(): void{
- this.modelsS.editModel().subscribe(m => {
- this.myModel = m;
-
- })
- }
-*/
-
-deleteThisModel(model: Model): void{
- shared.openYesNoDialog('Brisanje seta podataka','Da li ste sigurni da želite da obrišete model?',() => {
- this.modelsS.deleteModel(model).subscribe((response) => {
- this.getAllMyModels();
- }, (error) =>{
- if (error.error == "Model with name = {name} deleted") {
- shared.openDialog("Obaveštenje", "Greška prilikom brisanja modela.");
- }
- });
- });
-}
-
-
-useThisModel(model: Model): void{
-
- this.router.navigate(['/training'])
-
-}
- getAllMyModels(): void{
- this.modelsS.getMyModels().subscribe(m => {
- this.myModels = m;
- });
- }
-
-}