aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/src/app/_data/Dataset.ts5
-rw-r--r--frontend/src/app/_data/Experiment.ts13
-rw-r--r--frontend/src/app/_elements/column-table/column-table.component.html10
-rw-r--r--frontend/src/app/_elements/column-table/column-table.component.ts12
4 files changed, 19 insertions, 21 deletions
diff --git a/frontend/src/app/_data/Dataset.ts b/frontend/src/app/_data/Dataset.ts
index ca1a2a5e..4ff0a471 100644
--- a/frontend/src/app/_data/Dataset.ts
+++ b/frontend/src/app/_data/Dataset.ts
@@ -27,7 +27,6 @@ export default class Dataset extends FolderFile {
export class ColumnInfo {
constructor(
public columnName: string = '',
- public columnType: ColumnType,
public isNumber: boolean = false,
public numNulls: number = 0,
public uniqueValues?: string[],
@@ -48,7 +47,3 @@ export class ColumnInfo {
}
-export enum ColumnType {
- categorical = "Kategorijski",
- numerical = "Numerički"
-} \ No newline at end of file
diff --git a/frontend/src/app/_data/Experiment.ts b/frontend/src/app/_data/Experiment.ts
index 05336495..828431cc 100644
--- a/frontend/src/app/_data/Experiment.ts
+++ b/frontend/src/app/_data/Experiment.ts
@@ -15,9 +15,7 @@ export default class Experiment {
public dateCreated: Date = new Date(),
public lastUpdated: Date = new Date(),
public modelIds: string[] = [],
-
-
-
+ public columnTypes: ColumnType[] = [],
public encodings: ColumnEncoding[] = []//[{columnName: "", columnEncoding: Encoding.Label}]
) { }
@@ -47,11 +45,11 @@ export class NullValReplacer {
export enum Encoding {
Label = 'label',
OneHot = 'onehot',
- Ordinal = 'ordinal',
+ /*Ordinal = 'ordinal',
Hashing = 'hashing',
Binary = 'binary',
BaseN = 'baseN'
- /*
+
BackwardDifference = 'backward difference',
CatBoost = 'cat boost',
Count = 'count',
@@ -73,4 +71,9 @@ export class ColumnEncoding {
public columnName: string,
public encoding: Encoding
) { }
+}
+
+export enum ColumnType {
+ categorical = "categorical",
+ numerical = "numerical"
} \ No newline at end of file
diff --git a/frontend/src/app/_elements/column-table/column-table.component.html b/frontend/src/app/_elements/column-table/column-table.component.html
index 09ddffc6..efc093d2 100644
--- a/frontend/src/app/_elements/column-table/column-table.component.html
+++ b/frontend/src/app/_elements/column-table/column-table.component.html
@@ -103,7 +103,7 @@
<td *ngFor="let colInfo of dataset.columnInfo; let i = index" class="pad-fix" [ngClass]="{'text-disabled' : !columnsChecked[i]}">
<p class="verticalAlign text-left" style="font-size:13px;" *ngIf="!colInfo.isNumber">Kategorijski</p>
<mat-form-field *ngIf="colInfo.isNumber">
- <mat-select matNativeControl [(value)]="colInfo.columnType" [disabled]="!columnsChecked[i]" (selectionChange)="columnTypeChanged(colInfo.columnName);">
+ <mat-select matNativeControl [(value)]="this.experiment.columnTypes[i]" [disabled]="!columnsChecked[i]" (selectionChange)="columnTypeChanged(colInfo.columnName);">
<mat-option [value]="ColumnType.categorical">Kategorijski</mat-option>
<mat-option [value]="ColumnType.numerical">Numerički</mat-option>
</mat-select>
@@ -113,14 +113,14 @@
<tr class="graphics-row">
<th class="no-pad">Grafik</th>
<td class="no-pad" *ngFor="let colInfo of dataset.columnInfo; let i = index" [ngClass]="{'graphic-class' : !columnsChecked[i]}">
- <app-box-plot *ngIf="colInfo.columnType == ColumnType.numerical" [width]="150" [height]="150"></app-box-plot>
- <app-pie-chart *ngIf="colInfo.columnType == ColumnType.categorical" [width]="150" [height]="150"></app-pie-chart>
+ <app-box-plot *ngIf="this.experiment.columnTypes[i] == ColumnType.numerical" [width]="150" [height]="150"></app-box-plot>
+ <app-pie-chart *ngIf="this.experiment.columnTypes[i] == ColumnType.categorical" [width]="150" [height]="150"></app-pie-chart>
</td>
</tr>
<tr>
<th class="border-bottom">Statistika</th>
<td *ngFor="let colInfo of dataset.columnInfo; let i = index" [ngClass]="{'text-disabled' : !columnsChecked[i]}" class="text-left">
- <span *ngIf="colInfo.columnType == ColumnType.numerical">
+ <span *ngIf="this.experiment.columnTypes[i] == ColumnType.numerical">
Mean: {{colInfo.mean}}<br>
Median: {{colInfo.median}}<br>
Min: {{colInfo.min}}<br>
@@ -128,7 +128,7 @@
Q1: {{colInfo.q1}}<br>
Q3: {{colInfo.q3}}<br>
</span>
- <div class="text-overflow" *ngIf="colInfo.columnType == ColumnType.categorical && colInfo.uniqueValuesPercent">
+ <div class="text-overflow" *ngIf="this.experiment.columnTypes[i] == ColumnType.categorical && colInfo.uniqueValuesPercent">
<span *ngFor="let uniqueValue of colInfo.uniqueValues | slice:0:6; let i = index">
({{(colInfo.uniqueValuesPercent[i] * 100).toFixed(2)}}%) {{uniqueValue}}<br>
</span>
diff --git a/frontend/src/app/_elements/column-table/column-table.component.ts b/frontend/src/app/_elements/column-table/column-table.component.ts
index b99a3be0..c200e674 100644
--- a/frontend/src/app/_elements/column-table/column-table.component.ts
+++ b/frontend/src/app/_elements/column-table/column-table.component.ts
@@ -1,6 +1,6 @@
import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChildren } from '@angular/core';
-import Dataset, { ColumnType } from 'src/app/_data/Dataset';
-import Experiment, { ColumnEncoding, Encoding, NullValReplacer, NullValueOptions } from 'src/app/_data/Experiment';
+import Dataset from 'src/app/_data/Dataset';
+import Experiment, { ColumnEncoding, Encoding, ColumnType, NullValueOptions } from 'src/app/_data/Experiment';
import { DatasetsService } from 'src/app/_services/datasets.service';
import { EncodingDialogComponent } from 'src/app/_modals/encoding-dialog/encoding-dialog.component';
import { MatDialog } from '@angular/material/dialog';
@@ -75,7 +75,7 @@ export class ColumnTableComponent implements AfterViewInit {
setColumnTypeInitial() {
if (this.dataset != undefined) {
for (let i = 0; i < this.dataset.columnInfo.length; i++) {
- this.dataset.columnInfo[i].columnType = (this.dataset.columnInfo[i].isNumber) ? ColumnType.numerical : ColumnType.categorical;
+ this.experiment.columnTypes[i] = (this.dataset.columnInfo[i].isNumber) ? ColumnType.numerical : ColumnType.categorical;
}
}
}
@@ -140,12 +140,12 @@ export class ColumnTableComponent implements AfterViewInit {
changeOutputColumn(columnName: string) {
if (this.experiment != undefined && this.dataset != undefined) {
- let column = this.dataset.columnInfo.filter(x => x.columnName == this.experiment!.outputColumn)[0];
- if (column.columnType == ColumnType.numerical) {
+ let i = this.dataset.columnInfo.findIndex(x => x.columnName == this.experiment!.outputColumn);
+ if (this.experiment.columnTypes[i] == ColumnType.numerical) {
this.experiment.type = ProblemType.Regression;
}
else {
- if (column.uniqueValues!.length == 2)
+ if (this.dataset.columnInfo[i].uniqueValues!.length == 2)
this.experiment.type = ProblemType.BinaryClassification;
else
this.experiment.type = ProblemType.MultiClassification;