parent
4d5a8b9796
commit
877575a375
Binary file not shown.
@ -0,0 +1 @@ |
||||
{"duration": 0.006577968597412109, "input_args": {}} |
@ -0,0 +1,11 @@ |
||||
# first line: 447 |
||||
@memory.cache |
||||
def create_global_function(): |
||||
global estimator |
||||
def estimator(C, gamma): |
||||
# initialize model |
||||
model = SVC(C=C, gamma=gamma, degree=1, random_state=RANDOM_SEED) |
||||
# set in cross-validation |
||||
result = cross_validate(model, XData, yData, cv=crossValidation) |
||||
# result is mean of test_score |
||||
return np.mean(result['test_score']) |
@ -0,0 +1 @@ |
||||
{"duration": 4.569021940231323, "input_args": {}} |
Binary file not shown.
@ -0,0 +1,17 @@ |
||||
# first line: 457 |
||||
@memory.cache |
||||
def executeModel(): |
||||
|
||||
create_global_function() |
||||
global estimator |
||||
|
||||
params = {"C": (0.0001, 10000), "gamma": (0.0001, 10000)} |
||||
svc_bayesopt = BayesianOptimization(estimator, params) |
||||
svc_bayesopt.maximize(init_points=5, n_iter=20, acq='ucb') |
||||
bestParams = svc_bayesopt.max['params'] |
||||
estimator = SVC(C=bestParams.get('C'), gamma=bestParams.get('gamma'), probability=True) |
||||
estimator.fit(XData, yData) |
||||
yPredict = estimator.predict(XData) |
||||
yPredictProb = cross_val_predict(estimator, XData, yData, cv=crossValidation, method='predict_proba') |
||||
|
||||
return 'Everything Okay' |
@ -1,8 +0,0 @@ |
||||
<!-- About page for the application. --> |
||||
|
||||
<template> |
||||
<div> |
||||
<img src="@/assets/isovis.jpg"> |
||||
<p>HyperSearVis is a visual analytics tool created by Angelos Chatzimparmpas, member of the ISOVIS Group, Linnaeus University, Sweden.</p> |
||||
</div> |
||||
</template> |
@ -1,351 +0,0 @@ |
||||
<template> |
||||
<div id="PCP" class="parcoords" style="min-height: 285px;"></div> |
||||
</template> |
||||
|
||||
<script> |
||||
import 'parcoord-es/dist/parcoords.css'; |
||||
import ParCoords from 'parcoord-es'; |
||||
import * as d3Base from 'd3' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
import { EventBus } from '../main.js' |
||||
|
||||
export default { |
||||
name: 'AlgorithmHyperParam', |
||||
data () { |
||||
return { |
||||
ModelsPerformance: 0, |
||||
selAlgorithm: 0, |
||||
keyAllOrClass: true, |
||||
listClassPerf: [], |
||||
pc: 0, |
||||
factors: [1,0,0 |
||||
,1,0,0,1,0 |
||||
,0,1,0,0,0 |
||||
,0,0,1,0,0 |
||||
,0,1,1,1 |
||||
], |
||||
SVCModels: 576, |
||||
GausNBModels: 736, |
||||
MLPModels: 1236, |
||||
LRModels: 1356, |
||||
LDAModels: 1996, |
||||
QDAModels: 2196, |
||||
RFModels: 2446, |
||||
ExtraTModels: 2606, |
||||
AdaBModels: 2766, |
||||
GradBModels: 2926, |
||||
} |
||||
}, |
||||
methods: { |
||||
reset () { |
||||
d3.selectAll("#PCP > *").remove(); |
||||
}, |
||||
PCPView () { |
||||
d3.selectAll("#PCP > *").remove(); |
||||
if (this.selAlgorithm != '') { |
||||
var colors = ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#b15928'] |
||||
var colorGiv = 0 |
||||
|
||||
var factorsLocal = this.factors |
||||
var divide = 0 |
||||
|
||||
factorsLocal.forEach(element => { |
||||
divide = element + divide |
||||
}); |
||||
|
||||
var McKNN = [] |
||||
const performanceAlgKNN = JSON.parse(this.ModelsPerformance[6]) |
||||
for (let j = 0; j < Object.values(performanceAlgKNN['mean_test_accuracy']).length; j++) { |
||||
let sumKNN |
||||
sumKNN = (factorsLocal[0] * Object.values(performanceAlgKNN['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgKNN['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgKNN['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgKNN['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgKNN['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgKNN['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgKNN['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgKNN['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgKNN['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgKNN['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgKNN['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgKNN['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgKNN['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgKNN['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgKNN['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgKNN['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgKNN['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgKNN['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgKNN['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgKNN['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgKNN['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgKNN['log_loss'])[j])) |
||||
McKNN.push((sumKNN/divide)*100) |
||||
} |
||||
var McSVC = [] |
||||
const performanceAlgSVC = JSON.parse(this.ModelsPerformance[15]) |
||||
for (let j = 0; j < Object.values(performanceAlgSVC['mean_test_accuracy']).length; j++) { |
||||
let sumSVC |
||||
sumSVC = (factorsLocal[0] * Object.values(performanceAlgSVC['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgSVC['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgSVC['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgSVC['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgSVC['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgSVC['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgSVC['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgSVC['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgSVC['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgSVC['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgSVC['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgSVC['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgSVC['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgSVC['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgSVC['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgSVC['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgSVC['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgSVC['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgSVC['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgSVC['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgSVC['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgSVC['log_loss'])[j])) |
||||
McSVC.push((sumSVC/divide)*100) |
||||
} |
||||
var McGausNB = [] |
||||
const performanceAlgGausNB = JSON.parse(this.ModelsPerformance[24]) |
||||
for (let j = 0; j < Object.values(performanceAlgGausNB['mean_test_accuracy']).length; j++) { |
||||
let sumGausNB |
||||
sumGausNB = (factorsLocal[0] * Object.values(performanceAlgGausNB['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgGausNB['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgGausNB['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgGausNB['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgGausNB['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgGausNB['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgGausNB['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgGausNB['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgGausNB['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgGausNB['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgGausNB['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgGausNB['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgGausNB['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgGausNB['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgGausNB['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgGausNB['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgGausNB['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgGausNB['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgGausNB['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgGausNB['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgGausNB['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgGausNB['log_loss'])[j])) |
||||
McGausNB.push((sumGausNB/divide)*100) |
||||
} |
||||
var McMLP = [] |
||||
const performanceAlgMLP = JSON.parse(this.ModelsPerformance[33]) |
||||
for (let j = 0; j < Object.values(performanceAlgMLP['mean_test_accuracy']).length; j++) { |
||||
let sumMLP |
||||
sumMLP = (factorsLocal[0] * Object.values(performanceAlgMLP['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgMLP['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgMLP['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgMLP['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgMLP['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgMLP['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgMLP['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgMLP['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgMLP['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgMLP['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgMLP['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgMLP['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgMLP['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgMLP['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgMLP['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgMLP['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgMLP['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgMLP['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgMLP['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgMLP['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgMLP['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgMLP['log_loss'])[j])) |
||||
McMLP.push((sumMLP/divide)*100) |
||||
} |
||||
var McLR = [] |
||||
const performanceAlgLR = JSON.parse(this.ModelsPerformance[42]) |
||||
for (let j = 0; j < Object.values(performanceAlgLR['mean_test_accuracy']).length; j++) { |
||||
let sumLR |
||||
sumLR = (factorsLocal[0] * Object.values(performanceAlgLR['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgLR['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgLR['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgLR['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgLR['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgLR['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgLR['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgLR['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgLR['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgLR['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgLR['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgLR['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgLR['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgLR['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgLR['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgLR['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgLR['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgLR['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgLR['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgLR['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgLR['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgLR['log_loss'])[j])) |
||||
McLR.push((sumLR/divide)*100) |
||||
} |
||||
var McLDA = [] |
||||
const performanceAlgLDA = JSON.parse(this.ModelsPerformance[51]) |
||||
for (let j = 0; j < Object.values(performanceAlgLDA['mean_test_accuracy']).length; j++) { |
||||
let sumLDA |
||||
sumLDA = (factorsLocal[0] * Object.values(performanceAlgLDA['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgLDA['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgLDA['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgLDA['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgLDA['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgLDA['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgLDA['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgLDA['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgLDA['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgLDA['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgLDA['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgLDA['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgLDA['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgLDA['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgLDA['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgLDA['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgLDA['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgLDA['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgLDA['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgLDA['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgLDA['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgLDA['log_loss'])[j])) |
||||
McLDA.push((sumLDA/divide)*100) |
||||
} |
||||
var McQDA = [] |
||||
const performanceAlgQDA = JSON.parse(this.ModelsPerformance[60]) |
||||
for (let j = 0; j < Object.values(performanceAlgQDA['mean_test_accuracy']).length; j++) { |
||||
let sumQDA |
||||
sumQDA = (factorsLocal[0] * Object.values(performanceAlgQDA['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgQDA['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgQDA['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgQDA['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgQDA['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgQDA['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgQDA['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgQDA['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgQDA['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgQDA['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgQDA['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgQDA['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgQDA['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgQDA['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgQDA['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgQDA['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgQDA['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgQDA['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgQDA['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgQDA['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgQDA['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgQDA['log_loss'])[j])) |
||||
McQDA.push((sumQDA/divide)*100) |
||||
} |
||||
var McRF = [] |
||||
const performanceAlgRF = JSON.parse(this.ModelsPerformance[69]) |
||||
for (let j = 0; j < Object.values(performanceAlgRF['mean_test_accuracy']).length; j++) { |
||||
let sumRF |
||||
sumRF = (factorsLocal[0] * Object.values(performanceAlgRF['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgRF['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgRF['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgRF['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgRF['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgRF['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgRF['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgRF['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgRF['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgRF['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgRF['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgRF['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgRF['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgRF['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgRF['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgRF['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgRF['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgRF['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgRF['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgRF['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgRF['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgRF['log_loss'])[j])) |
||||
McRF.push((sumRF/divide)*100) |
||||
} |
||||
var McExtraT = [] |
||||
const performanceAlgExtraT = JSON.parse(this.ModelsPerformance[78]) |
||||
for (let j = 0; j < Object.values(performanceAlgExtraT['mean_test_accuracy']).length; j++) { |
||||
let sumExtraT |
||||
sumExtraT = (factorsLocal[0] * Object.values(performanceAlgExtraT['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgExtraT['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgExtraT['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgExtraT['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgExtraT['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgExtraT['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgExtraT['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgExtraT['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgExtraT['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgExtraT['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgExtraT['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgExtraT['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgExtraT['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgExtraT['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgExtraT['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgExtraT['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgExtraT['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgExtraT['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgExtraT['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgExtraT['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgExtraT['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgExtraT['log_loss'])[j])) |
||||
McExtraT.push((sumExtraT/divide)*100) |
||||
} |
||||
var McAdaB = [] |
||||
const performanceAlgAdaB = JSON.parse(this.ModelsPerformance[87]) |
||||
for (let j = 0; j < Object.values(performanceAlgAdaB['mean_test_accuracy']).length; j++) { |
||||
let sumAdaB |
||||
sumAdaB = (factorsLocal[0] * Object.values(performanceAlgAdaB['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgAdaB['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgAdaB['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgAdaB['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgAdaB['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgAdaB['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgAdaB['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgAdaB['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgAdaB['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgAdaB['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgAdaB['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgAdaB['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgAdaB['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgAdaB['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgAdaB['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgAdaB['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgAdaB['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgAdaB['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgAdaB['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgAdaB['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgAdaB['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgAdaB['log_loss'])[j])) |
||||
McAdaB.push((sumAdaB/divide)*100) |
||||
} |
||||
var McGradB = [] |
||||
const performanceAlgGradB = JSON.parse(this.ModelsPerformance[96]) |
||||
for (let j = 0; j < Object.values(performanceAlgGradB['mean_test_accuracy']).length; j++) { |
||||
let sumGradB |
||||
sumGradB = (factorsLocal[0] * Object.values(performanceAlgGradB['mean_test_accuracy'])[j]) + (factorsLocal[1] * Object.values(performanceAlgGradB['geometric_mean_score_micro'])[j]) + (factorsLocal[2] * Object.values(performanceAlgGradB['geometric_mean_score_macro'])[j]) |
||||
+ (factorsLocal[3] * Object.values(performanceAlgGradB['geometric_mean_score_weighted'])[j]) + (factorsLocal[4] * Object.values(performanceAlgGradB['mean_test_precision_micro'])[j]) + (factorsLocal[5] * Object.values(performanceAlgGradB['mean_test_precision_macro'])[j]) + (factorsLocal[6] * Object.values(performanceAlgGradB['mean_test_precision_weighted'])[j]) + (factorsLocal[7] * Object.values(performanceAlgGradB['mean_test_recall_micro'])[j]) |
||||
+ (factorsLocal[8] * Object.values(performanceAlgGradB['mean_test_recall_macro'])[j]) + (factorsLocal[9] * Object.values(performanceAlgGradB['mean_test_recall_weighted'])[j]) + (factorsLocal[10] * Object.values(performanceAlgGradB['f5_micro'])[j]) + (factorsLocal[11] * Object.values(performanceAlgGradB['f5_macro'])[j]) + (factorsLocal[12] * Object.values(performanceAlgGradB['f5_weighted'])[j]) + (factorsLocal[13] * Object.values(performanceAlgGradB['f1_micro'])[j]) |
||||
+ (factorsLocal[14] * Object.values(performanceAlgGradB['f1_macro'])[j]) + (factorsLocal[15] * Object.values(performanceAlgGradB['f1_weighted'])[j]) + (factorsLocal[16] * Object.values(performanceAlgGradB['f2_micro'])[j]) + (factorsLocal[17] * Object.values(performanceAlgGradB['f2_macro'])[j]) + (factorsLocal[18] * Object.values(performanceAlgGradB['f2_weighted'])[j]) + (factorsLocal[19] * Math.abs(Object.values(performanceAlgGradB['matthews_corrcoef'])[j])) |
||||
+ (factorsLocal[20] * Object.values(performanceAlgGradB['mean_test_roc_auc_ovo_weighted'])[j]) + (factorsLocal[21] * (1 - Object.values(performanceAlgGradB['log_loss'])[j])) |
||||
McGradB.push((sumGradB/divide)*100) |
||||
} |
||||
|
||||
var Combined = 0 |
||||
if (this.selAlgorithm == 'KNN') { |
||||
Combined = JSON.parse(this.ModelsPerformance[1]) |
||||
colorGiv = colors[0] |
||||
} else if (this.selAlgorithm == 'SVC') { |
||||
Combined = JSON.parse(this.ModelsPerformance[10]) |
||||
colorGiv = colors[1] |
||||
} else if (this.selAlgorithm == 'GauNB') { |
||||
Combined = JSON.parse(this.ModelsPerformance[19]) |
||||
colorGiv = colors[2] |
||||
} else if (this.selAlgorithm == 'MLP') { |
||||
Combined = JSON.parse(this.ModelsPerformance[28]) |
||||
colorGiv = colors[3] |
||||
} else if (this.selAlgorithm == 'LR') { |
||||
Combined = JSON.parse(this.ModelsPerformance[37]) |
||||
colorGiv = colors[4] |
||||
} else if (this.selAlgorithm == 'LDA') { |
||||
Combined = JSON.parse(this.ModelsPerformance[46]) |
||||
colorGiv = colors[5] |
||||
} else if (this.selAlgorithm == 'QDA') { |
||||
Combined = JSON.parse(this.ModelsPerformance[55]) |
||||
colorGiv = colors[6] |
||||
} else if (this.selAlgorithm == 'RF') { |
||||
Combined = JSON.parse(this.ModelsPerformance[64]) |
||||
colorGiv = colors[7] |
||||
} else if (this.selAlgorithm == 'ExtraT') { |
||||
Combined = JSON.parse(this.ModelsPerformance[73]) |
||||
colorGiv = colors[8] |
||||
} else if (this.selAlgorithm == 'AdaB') { |
||||
Combined = JSON.parse(this.ModelsPerformance[82]) |
||||
colorGiv = colors[9] |
||||
} else { |
||||
Combined = JSON.parse(this.ModelsPerformance[91]) |
||||
colorGiv = colors[10] |
||||
} |
||||
var valuesPerf = Object.values(Combined['params']) |
||||
|
||||
var ObjectsParams = Combined['params'] |
||||
var newObjectsParamsฮฮฮ = [] |
||||
var newObjectsParamsSVC = [] |
||||
var newObjectsParamsGausNB = [] |
||||
var newObjectsParamsMLP = [] |
||||
var newObjectsParamsLR = [] |
||||
var newObjectsParamsLDA = [] |
||||
var newObjectsParamsQDA = [] |
||||
var newObjectsParamsRF = [] |
||||
var newObjectsParamsExtraT = [] |
||||
var newObjectsParamsAdaB = [] |
||||
var newObjectsParamsGradB = [] |
||||
var ArrayCombined = [] |
||||
var temp |
||||
for (var i = 0; i < valuesPerf.length; i++) { |
||||
if (this.keyAllOrClass) { |
||||
if (this.selAlgorithm === 'KNN') { |
||||
newObjectsParamsฮฮฮ.push({model: i,'# Perf (%) #': McKNN[i],'n_neighbors':ObjectsParams[i].n_neighbors,'metric':ObjectsParams[i].metric,'algorithm':ObjectsParams[i].algorithm,'weights':ObjectsParams[i].weights}) |
||||
ArrayCombined[i] = newObjectsParamsฮฮฮ[i] |
||||
} else if (this.selAlgorithm === 'SVC') { |
||||
newObjectsParamsSVC.push({model: this.SVCModels + i,'# Perf (%) #': McSVC[i],'C':ObjectsParams[i].C,'kernel':ObjectsParams[i].kernel}) |
||||
ArrayCombined[i] = newObjectsParamsSVC[i] |
||||
} else if (this.selAlgorithm === 'GauNB') { |
||||
newObjectsParamsGausNB.push({model: this.GausNBModels + i,'# Perf (%) #': McGausNB[i],'var_smoothing':ObjectsParams[i].var_smoothing}) |
||||
ArrayCombined[i] = newObjectsParamsGausNB[i] |
||||
} else if (this.selAlgorithm === 'MLP') { |
||||
newObjectsParamsMLP.push({model: this.MLPModels + i,'# Perf (%) #': McMLP[i],'alpha':ObjectsParams[i].alpha,'tol':ObjectsParams[i].tol,'activation':ObjectsParams[i].activation,'max_iter':ObjectsParams[i].max_iter,'solver':ObjectsParams[i].solver}) |
||||
ArrayCombined[i] = newObjectsParamsMLP[i] |
||||
} else if (this.selAlgorithm === 'LR') { |
||||
newObjectsParamsLR.push({model: this.LRModels + i,'# Perf (%) #': McLR[i],'C':ObjectsParams[i].C,'max_iter':ObjectsParams[i].max_iter,'solver':ObjectsParams[i].solver,'penalty':ObjectsParams[i].penalty}) |
||||
ArrayCombined[i] = newObjectsParamsLR[i] |
||||
} else if (this.selAlgorithm === 'LDA') { |
||||
newObjectsParamsLDA.push({model: this.LDAModels + i,'# Perf (%) #': McLDA[i],'shrinkage':ObjectsParams[i].shrinkage,'solver':ObjectsParams[i].solver}) |
||||
ArrayCombined[i] = newObjectsParamsLDA[i] |
||||
} else if (this.selAlgorithm === 'QDA') { |
||||
newObjectsParamsQDA.push({model: this.QDAModels + i,'# Perf (%) #': McQDA[i],'reg_param':ObjectsParams[i].reg_param,'tol':ObjectsParams[i].tol}) |
||||
ArrayCombined[i] = newObjectsParamsQDA[i] |
||||
} else if (this.selAlgorithm === 'RF') { |
||||
newObjectsParamsRF.push({model: this.RFModels + i,'# Perf (%) #': McRF[i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion}) |
||||
ArrayCombined[i] = newObjectsParamsRF[i] |
||||
} else if (this.selAlgorithm === 'ExtraT') { |
||||
newObjectsParamsExtraT.push({model: this.ExtraTModels + i,'# Perf (%) #': McExtraT[i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion}) |
||||
ArrayCombined[i] = newObjectsParamsExtraT[i] |
||||
} else if (this.selAlgorithm === 'AdaB') { |
||||
newObjectsParamsAdaB.push({model: this.AdaBModels + i,'# Perf (%) #': McAdaB[i],'n_estimators':ObjectsParams[i].n_estimators,'learning_rate':ObjectsParams[i].learning_rate,'algorithm':ObjectsParams[i].algorithm}) |
||||
ArrayCombined[i] = newObjectsParamsAdaB[i] |
||||
} else { |
||||
newObjectsParamsGradB.push({model: this.GradBModels + i,'# Perf (%) #': McGradB[i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion,'learning_rate':ObjectsParams[i].learning_rate}) |
||||
ArrayCombined[i] = newObjectsParamsGradB[i] |
||||
} |
||||
} else { |
||||
if (this.selAlgorithm === 'KNN') { |
||||
newObjectsParamsฮฮฮ.push({model: i,'# Perf (%) #': this.listClassPerf[0][i],'n_neighbors':ObjectsParams[i].n_neighbors,'metric':ObjectsParams[i].metric,'algorithm':ObjectsParams[i].algorithm,'weights':ObjectsParams[i].weights}) |
||||
ArrayCombined[i] = newObjectsParamsฮฮฮ[i] |
||||
} else if (this.selAlgorithm === 'SVC') { |
||||
newObjectsParamsSVC.push({model: this.SVCModels + i,'# Perf (%) #': this.listClassPerf[1][i],'C':ObjectsParams[i].C,'kernel':ObjectsParams[i].kernel}) |
||||
ArrayCombined[i] = newObjectsParamsSVC[i] |
||||
} else if (this.selAlgorithm === 'GauNB') { |
||||
newObjectsParamsGausNB.push({model: this.GausNBModels + i,'# Perf (%) #': this.listClassPerf[2][i],'var_smoothing':ObjectsParams[i].var_smoothing}) |
||||
ArrayCombined[i] = newObjectsParamsGausNB[i] |
||||
} else if (this.selAlgorithm === 'MLP') { |
||||
newObjectsParamsMLP.push({model: this.MLPModels + i,'# Perf (%) #': this.listClassPerf[3][i],'alpha':ObjectsParams[i].alpha,'tol':ObjectsParams[i].tol,'activation':ObjectsParams[i].activation,'max_iter':ObjectsParams[i].max_iter,'solver':ObjectsParams[i].solver}) |
||||
ArrayCombined[i] = newObjectsParamsMLP[i] |
||||
} else if (this.selAlgorithm === 'LR') { |
||||
newObjectsParamsLR.push({model: this.LRModels + i,'# Perf (%) #': this.listClassPerf[4][i],'C':ObjectsParams[i].C,'max_iter':ObjectsParams[i].max_iter,'solver':ObjectsParams[i].solver,'penalty':ObjectsParams[i].penalty}) |
||||
ArrayCombined[i] = newObjectsParamsLR[i] |
||||
} else if (this.selAlgorithm === 'LDA') { |
||||
newObjectsParamsLDA.push({model: this.LDAModels + i,'# Perf (%) #': this.listClassPerf[5][i],'shrinkage':ObjectsParams[i].shrinkage,'solver':ObjectsParams[i].solver}) |
||||
ArrayCombined[i] = newObjectsParamsLDA[i] |
||||
} else if (this.selAlgorithm === 'QDA') { |
||||
newObjectsParamsQDA.push({model: this.QDAModels + i,'# Perf (%) #': this.listClassPerf[6][i],'reg_param':ObjectsParams[i].reg_param,'tol':ObjectsParams[i].tol}) |
||||
ArrayCombined[i] = newObjectsParamsQDA[i] |
||||
} else if (this.selAlgorithm === 'RF') { |
||||
newObjectsParamsRF.push({model: this.RFModels + i,'# Perf (%) #': this.listClassPerf[7][i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion}) |
||||
ArrayCombined[i] = newObjectsParamsRF[i] |
||||
} else if (this.selAlgorithm === 'ExtraT') { |
||||
newObjectsParamsExtraT.push({model: this.ExtraTModels + i,'# Perf (%) #': this.listClassPerf[8][i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion}) |
||||
ArrayCombined[i] = newObjectsParamsExtraT[i] |
||||
} else if (this.selAlgorithm === 'AdaB') { |
||||
newObjectsParamsAdaB.push({model: this.AdaBModels + i,'# Perf (%) #': this.listClassPerf[9][i],'n_estimators':ObjectsParams[i].n_estimators,'learning_rate':ObjectsParams[i].learning_rate,'algorithm':ObjectsParams[i].algorithm}) |
||||
ArrayCombined[i] = newObjectsParamsAdaB[i] |
||||
} else { |
||||
newObjectsParamsGradB.push({model: this.GradBModels + i,'# Perf (%) #': this.listClassPerf[10][i],'n_estimators':ObjectsParams[i].n_estimators,'criterion':ObjectsParams[i].criterion,'learning_rate':ObjectsParams[i].learning_rate}) |
||||
ArrayCombined[i] = newObjectsParamsGradB[i] |
||||
} |
||||
} |
||||
} |
||||
EventBus.$emit('AllAlModels', ArrayCombined.length) |
||||
this.pc = ParCoords()("#PCP") |
||||
.data(ArrayCombined) |
||||
.color(colorGiv) |
||||
.hideAxis(['model']) |
||||
.bundlingStrength(0) // set bundling strength |
||||
.smoothness(0) |
||||
.showControlPoints(false) |
||||
.render() |
||||
.brushMode('1D-axes') |
||||
.reorderable() |
||||
.interactive(); |
||||
|
||||
this.pc.on("brushend", function(d) { |
||||
EventBus.$emit('AllSelModels', d.length) |
||||
EventBus.$emit('UpdateBoxPlot', d) |
||||
}); |
||||
} |
||||
}, |
||||
sliders () { |
||||
|
||||
}, |
||||
|
||||
clear () { |
||||
d3.selectAll("#PCP > *").remove(); |
||||
}, |
||||
}, |
||||
mounted() { |
||||
EventBus.$on('ReturningBrushedPointsModels', this.brushed) |
||||
EventBus.$on('emittedEventCallingModelSelect', data => { this.selAlgorithm = data }) |
||||
EventBus.$on('emittedEventCallingModel', data => { this.ModelsPerformance = data }) |
||||
EventBus.$on('emittedEventCallingModel', this.PCPView) |
||||
EventBus.$on('ResponsiveandChange', this.PCPView) |
||||
EventBus.$on('emittedEventCallingModelClear', this.clear) |
||||
|
||||
EventBus.$on('CallFactorsView', data => { this.factors = data }) |
||||
EventBus.$on('CallFactorsView', this.PCPView) |
||||
|
||||
EventBus.$on('boxplotSet', data => { this.listClassPerf = data }) |
||||
EventBus.$on('boxplotCall', data => { this.keyAllOrClass = data }) |
||||
|
||||
// reset view |
||||
EventBus.$on('resetViews', this.reset) |
||||
EventBus.$on('clearPCP', this.reset) |
||||
} |
||||
} |
||||
</script> |
File diff suppressed because it is too large
Load Diff
@ -1,309 +0,0 @@ |
||||
<template> |
||||
<div> |
||||
<div align="center"> |
||||
Projection method: <select id="selectBarChartCM" @change="selectVisualRepresentationCM()"> |
||||
<option value="mdsCM" selected>MDS</option> |
||||
<option value="tsneCM">t-SNE</option> |
||||
<option value="umapCM">UMAP</option> |
||||
</select> |
||||
|
||||
Action: <button |
||||
id="Remove" |
||||
v-on:click="Remove"> |
||||
<font-awesome-icon icon="dna" /> |
||||
{{ CrossoverMutateText }} |
||||
</button> |
||||
</div> |
||||
<div id="OverviewPlotlyCM" class="OverviewPlotlyCM"></div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import * as Plotly from 'plotly.js' |
||||
import * as d3Base from 'd3' |
||||
|
||||
import { EventBus } from '../main.js' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
export default { |
||||
name: 'CrossoverMutationSpace', |
||||
data () { |
||||
return { |
||||
CrossoverMutateText: 'Unselected points\' crossover & mutation', |
||||
WH: [], |
||||
ScatterPlotResults: '', |
||||
representationDef: 'mdsCM', |
||||
} |
||||
}, |
||||
methods: { |
||||
reset () { |
||||
Plotly.purge('OverviewPlotlyCM') |
||||
}, |
||||
selectVisualRepresentationCM () { |
||||
const representationSelectionDocum = document.getElementById('selectBarChartCM') |
||||
this.representationSelection = representationSelectionDocum.options[representationSelectionDocum.selectedIndex].value |
||||
EventBus.$emit('RepresentationSelectionCM', this.representationSelection) |
||||
}, |
||||
clean(obj) { |
||||
var propNames = Object.getOwnPropertyNames(obj); |
||||
for (var i = 0; i < propNames.length; i++) { |
||||
var propName = propNames[i]; |
||||
if (obj[propName] === null || obj[propName] === undefined) { |
||||
delete obj[propName]; |
||||
} |
||||
} |
||||
}, |
||||
ScatterPlotView () { |
||||
Plotly.purge('OverviewPlotlyCM') |
||||
|
||||
var modelId = JSON.parse(this.ScatterPlotResults[0]) |
||||
var colorsforScatterPlot = JSON.parse(this.ScatterPlotResults[1]) |
||||
var parametersLoc = JSON.parse(this.ScatterPlotResults[2]) |
||||
var parameters = JSON.parse(parametersLoc) |
||||
var MDSData= JSON.parse(this.ScatterPlotResults[9]) |
||||
var TSNEData = JSON.parse(this.ScatterPlotResults[10]) |
||||
var UMAPData = JSON.parse(this.ScatterPlotResults[11]) |
||||
|
||||
EventBus.$emit('sendPointsNumberCM', modelId.length) |
||||
|
||||
var stringParameters = [] |
||||
for (let i = 0; i < parameters.length; i++) { |
||||
this.clean(parameters[i]) |
||||
stringParameters.push(JSON.stringify(parameters[i]).replace(/,/gi, '<br>')) |
||||
} |
||||
|
||||
var classifiersInfoProcessing = [] |
||||
for (let i = 0; i < modelId.length; i++) { |
||||
if (i < 100) { |
||||
classifiersInfoProcessing[i] = '<b>Model ID:</b> ' + modelId[i] + '<br><b>Algorithm:</b> k-nearest neighbor' + '<br><b>Parameters:</b> ' + stringParameters[i] |
||||
} |
||||
else { |
||||
classifiersInfoProcessing[i] = '<b>Model ID:</b> ' + modelId[i] + '<br><b>Algorithm:</b> logistic regression' + '<br><b>Parameters:</b> ' + stringParameters[i] |
||||
} |
||||
} |
||||
|
||||
var DataGeneral, maxX, minX, maxY, minY, layout |
||||
|
||||
var width = this.WH[0]*8 // interactive visualization |
||||
var height = this.WH[1]*4 // interactive visualization |
||||
|
||||
if (this.representationDef == 'mdsCM') { |
||||
maxX = Math.max(MDSData[0]) |
||||
minX = Math.min(MDSData[0]) |
||||
maxY = Math.max(MDSData[1]) |
||||
minY = Math.max(MDSData[1]) |
||||
|
||||
DataGeneral = [{ |
||||
type: 'scatter', |
||||
mode: 'markers', |
||||
x: MDSData[0], |
||||
y: MDSData[1], |
||||
hovertemplate: |
||||
"%{text}<br><br>" + |
||||
"<extra></extra>", |
||||
text: classifiersInfoProcessing, |
||||
marker: { |
||||
line: { color: 'rgb(0, 0, 0)', width: 3 }, |
||||
color: colorsforScatterPlot, |
||||
size: 12, |
||||
colorscale: 'Viridis', |
||||
colorbar: { |
||||
title: '# Performance (%) #', |
||||
titleside:'right', |
||||
}, |
||||
} |
||||
|
||||
}] |
||||
layout = { |
||||
|
||||
xaxis: { |
||||
visible: false, |
||||
range: [minX, maxX] |
||||
}, |
||||
yaxis: { |
||||
visible: false, |
||||
range: [minY, maxY] |
||||
}, |
||||
font: { family: 'Helvetica', size: 16, color: '#000000' }, |
||||
autosize: true, |
||||
width: width, |
||||
height: height, |
||||
dragmode: 'lasso', |
||||
hovermode: "closest", |
||||
hoverlabel: { bgcolor: "#FFF" }, |
||||
legend: {orientation: 'h', y: -0.3}, |
||||
margin: { |
||||
l: 50, |
||||
r: 0, |
||||
b: 30, |
||||
t: 40, |
||||
pad: 0 |
||||
}, |
||||
} |
||||
} else if (this.representationDef == 'tsneCM') { |
||||
var result = TSNEData.reduce(function(r, a) { |
||||
a.forEach(function(s, i) { |
||||
var key = i === 0 ? 'Xax' : 'Yax'; |
||||
|
||||
r[key] || (r[key] = []); // if key not found on result object, add the key with empty array as the value |
||||
|
||||
r[key].push(s); |
||||
}) |
||||
return r; |
||||
}, {}) |
||||
|
||||
maxX = Math.max(result.Xax) |
||||
minX = Math.min(result.Xax) |
||||
maxY = Math.max(result.Yax) |
||||
minY = Math.max(result.Yax) |
||||
|
||||
DataGeneral = [{ |
||||
type: 'scatter', |
||||
mode: 'markers', |
||||
x: result.Xax, |
||||
y: result.Yax, |
||||
hovertemplate: |
||||
"%{text}<br><br>" + |
||||
"<extra></extra>", |
||||
text: classifiersInfoProcessing, |
||||
marker: { |
||||
line: { color: 'rgb(0, 0, 0)', width: 3 }, |
||||
color: colorsforScatterPlot, |
||||
size: 12, |
||||
colorscale: 'Viridis', |
||||
colorbar: { |
||||
title: '# Performance (%) #', |
||||
titleside: 'right' |
||||
}, |
||||
} |
||||
}] |
||||
layout = { |
||||
|
||||
xaxis: { |
||||
visible: false, |
||||
range: [minX, maxX] |
||||
}, |
||||
yaxis: { |
||||
visible: false, |
||||
range: [minY, maxY] |
||||
}, |
||||
autosize: true, |
||||
width: width, |
||||
height: height, |
||||
dragmode: 'lasso', |
||||
hovermode: "closest", |
||||
hoverlabel: { bgcolor: "#FFF" }, |
||||
legend: {orientation: 'h', y: -0.3}, |
||||
margin: { |
||||
l: 50, |
||||
r: 0, |
||||
b: 30, |
||||
t: 40, |
||||
pad: 0 |
||||
}, |
||||
} |
||||
|
||||
} else { |
||||
maxX = Math.max(UMAPData[0]) |
||||
minX = Math.min(UMAPData[0]) |
||||
maxY = Math.max(UMAPData[1]) |
||||
minY = Math.max(UMAPData[1]) |
||||
|
||||
DataGeneral = [{ |
||||
type: 'scatter', |
||||
mode: 'markers', |
||||
x: UMAPData[0], |
||||
y: UMAPData[1], |
||||
hovertemplate: |
||||
"%{text}<br><br>" + |
||||
"<extra></extra>", |
||||
text: classifiersInfoProcessing, |
||||
marker: { |
||||
line: { color: 'rgb(0, 0, 0)', width: 3 }, |
||||
color: colorsforScatterPlot, |
||||
size: 12, |
||||
colorscale: 'Viridis', |
||||
colorbar: { |
||||
title: '# Performance (%) #', |
||||
titleside: 'right' |
||||
}, |
||||
} |
||||
|
||||
}] |
||||
layout = { |
||||
|
||||
xaxis: { |
||||
visible: false, |
||||
range: [minX, maxX] |
||||
}, |
||||
yaxis: { |
||||
visible: false, |
||||
range: [minY, maxY] |
||||
}, |
||||
autosize: true, |
||||
width: width, |
||||
height: height, |
||||
dragmode: 'lasso', |
||||
hovermode: "closest", |
||||
hoverlabel: { bgcolor: "#FFF" }, |
||||
legend: {orientation: 'h', y: -0.3}, |
||||
margin: { |
||||
l: 50, |
||||
r: 0, |
||||
b: 30, |
||||
t: 40, |
||||
pad: 0 |
||||
}, |
||||
} |
||||
} |
||||
|
||||
var config = {scrollZoom: true, displaylogo: false, showLink: false, showSendToCloud: false, modeBarButtonsToRemove: ['toImage', 'toggleSpikelines', 'autoScale2d', 'hoverClosestGl2d','hoverCompareCartesian','select2d','hoverClosestCartesian','zoomIn2d','zoomOut2d','zoom2d'], responsive: true} |
||||
|
||||
var scat = document.getElementById('OverviewPlotlyCM') |
||||
|
||||
Plotly.newPlot(scat, DataGeneral, layout, config) |
||||
this.selectedPointsOverview() |
||||
}, |
||||
selectedPointsOverview () { |
||||
const OverviewPlotly = document.getElementById('OverviewPlotlyCM') |
||||
var allModels = JSON.parse(this.ScatterPlotResults[0]) |
||||
OverviewPlotly.on('plotly_selected', function (evt) { |
||||
if (typeof evt !== 'undefined') { |
||||
var pushModelsRemainingTemp = [] |
||||
const ClassifierIDsList = [] |
||||
for (let i = 0; evt.points.length; i++) { |
||||
if (evt.points[i] === undefined) { |
||||
break |
||||
} else { |
||||
const OnlyId = evt.points[i].text.split(' ')[2] |
||||
const OnlyIdCleared = OnlyId.split('<br>') |
||||
ClassifierIDsList.push(OnlyIdCleared[0]) |
||||
} |
||||
} |
||||
for (let i = 0; i < allModels.length; i++) { |
||||
if (ClassifierIDsList.indexOf((allModels[i])) < 0) { |
||||
pushModelsRemainingTemp.push(allModels[i]) |
||||
} |
||||
} |
||||
EventBus.$emit('RemainingPointsCM', pushModelsRemainingTemp) |
||||
EventBus.$emit('SendSelectedPointsUpdateIndicatorCM', ClassifierIDsList) |
||||
EventBus.$emit('SendSelectedPointsToServerEventCM', ClassifierIDsList) |
||||
} |
||||
}) |
||||
}, |
||||
}, |
||||
mounted() { |
||||
EventBus.$on('emittedEventCallingCrossoverMutation', data => { |
||||
this.ScatterPlotResults = data}) |
||||
EventBus.$on('emittedEventCallingCrossoverMutation', this.ScatterPlotView) |
||||
|
||||
EventBus.$on('RepresentationSelectionCM', data => {this.representationDef = data}) |
||||
EventBus.$on('RepresentationSelectionCM', this.ScatterPlotView) |
||||
|
||||
// reset view |
||||
EventBus.$on('resetViews', this.reset) |
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,86 @@ |
||||
<template> |
||||
<div> |
||||
<label id="data" for="param-dataset" data-toggle="tooltip" data-placement="right" title="Tip: use one of the data sets already provided or upload a new file.">{{ dataset }}</label> |
||||
<select id="selectFile" @change="selectDataSet()"> |
||||
<option value="HeartC.csv" selected>Heart Disease</option> |
||||
<option value="IrisC.csv">Iris</option> |
||||
<option value="local">Upload New File</option> |
||||
</select> |
||||
<button class="btn-outline-success" |
||||
id="initializeID" |
||||
v-on:click="initialize"> |
||||
<font-awesome-icon icon="search" /> |
||||
{{ searchText }} |
||||
</button> |
||||
<button class="btn-outline-danger" |
||||
id="resetID" |
||||
v-on:click="reset"> |
||||
<font-awesome-icon icon="trash" /> |
||||
{{ resetText }} |
||||
</button> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Papa from 'papaparse' |
||||
import { EventBus } from '../main.js' |
||||
import {$,jQuery} from 'jquery'; |
||||
import * as d3Base from 'd3' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
export default { |
||||
name: 'FeatureSpace1', |
||||
data () { |
||||
return { |
||||
defaultDataSet: 'HeartC', // default value for the first data set |
||||
searchText: 'Hyper-parameter search', |
||||
resetText: 'Reset', |
||||
dataset: 'Data set' |
||||
} |
||||
}, |
||||
methods: { |
||||
selectDataSet () { |
||||
const fileName = document.getElementById('selectFile') |
||||
this.defaultDataSet = fileName.options[fileName.selectedIndex].value |
||||
this.defaultDataSet = this.defaultDataSet.split('.')[0] |
||||
|
||||
if (this.defaultDataSet == "DiabetesC" || this.defaultDataSet == "HeartC" || this.defaultDataSet == "IrisC" || this.defaultDataSet == "StanceC") { // This is a function that handles a new file, which users can upload. |
||||
this.dataset = "Data set" |
||||
d3.select("#data").select("input").remove(); // Remove the selection field. |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
} else { |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
d3.select("#data").select("input").remove(); |
||||
this.dataset = "" |
||||
var data |
||||
d3.select("#data") |
||||
.append("input") |
||||
.attr("type", "file") |
||||
.style("font-size", "18.5px") |
||||
.style("width", "200px") |
||||
.on("change", function() { |
||||
var file = d3.event.target.files[0]; |
||||
Papa.parse(file, { |
||||
header: true, |
||||
dynamicTyping: true, |
||||
skipEmptyLines: true, |
||||
complete: function(results) { |
||||
data = results.data; |
||||
EventBus.$emit('SendToServerLocalFile', data) |
||||
} |
||||
}); |
||||
}) |
||||
} |
||||
}, |
||||
reset () { |
||||
EventBus.$emit('reset') |
||||
EventBus.$emit('alternateFlagLock') |
||||
}, |
||||
initialize () { |
||||
EventBus.$emit('ConfirmDataSet') |
||||
} |
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,86 @@ |
||||
<template> |
||||
<div> |
||||
<label id="data" for="param-dataset" data-toggle="tooltip" data-placement="right" title="Tip: use one of the data sets already provided or upload a new file.">{{ dataset }}</label> |
||||
<select id="selectFile" @change="selectDataSet()"> |
||||
<option value="HeartC.csv" selected>Heart Disease</option> |
||||
<option value="IrisC.csv">Iris</option> |
||||
<option value="local">Upload New File</option> |
||||
</select> |
||||
<button class="btn-outline-success" |
||||
id="initializeID" |
||||
v-on:click="initialize"> |
||||
<font-awesome-icon icon="search" /> |
||||
{{ searchText }} |
||||
</button> |
||||
<button class="btn-outline-danger" |
||||
id="resetID" |
||||
v-on:click="reset"> |
||||
<font-awesome-icon icon="trash" /> |
||||
{{ resetText }} |
||||
</button> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Papa from 'papaparse' |
||||
import { EventBus } from '../main.js' |
||||
import {$,jQuery} from 'jquery'; |
||||
import * as d3Base from 'd3' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
export default { |
||||
name: 'FeatureSpace2', |
||||
data () { |
||||
return { |
||||
defaultDataSet: 'HeartC', // default value for the first data set |
||||
searchText: 'Hyper-parameter search', |
||||
resetText: 'Reset', |
||||
dataset: 'Data set' |
||||
} |
||||
}, |
||||
methods: { |
||||
selectDataSet () { |
||||
const fileName = document.getElementById('selectFile') |
||||
this.defaultDataSet = fileName.options[fileName.selectedIndex].value |
||||
this.defaultDataSet = this.defaultDataSet.split('.')[0] |
||||
|
||||
if (this.defaultDataSet == "DiabetesC" || this.defaultDataSet == "HeartC" || this.defaultDataSet == "IrisC" || this.defaultDataSet == "StanceC") { // This is a function that handles a new file, which users can upload. |
||||
this.dataset = "Data set" |
||||
d3.select("#data").select("input").remove(); // Remove the selection field. |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
} else { |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
d3.select("#data").select("input").remove(); |
||||
this.dataset = "" |
||||
var data |
||||
d3.select("#data") |
||||
.append("input") |
||||
.attr("type", "file") |
||||
.style("font-size", "18.5px") |
||||
.style("width", "200px") |
||||
.on("change", function() { |
||||
var file = d3.event.target.files[0]; |
||||
Papa.parse(file, { |
||||
header: true, |
||||
dynamicTyping: true, |
||||
skipEmptyLines: true, |
||||
complete: function(results) { |
||||
data = results.data; |
||||
EventBus.$emit('SendToServerLocalFile', data) |
||||
} |
||||
}); |
||||
}) |
||||
} |
||||
}, |
||||
reset () { |
||||
EventBus.$emit('reset') |
||||
EventBus.$emit('alternateFlagLock') |
||||
}, |
||||
initialize () { |
||||
EventBus.$emit('ConfirmDataSet') |
||||
} |
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,86 @@ |
||||
<template> |
||||
<div> |
||||
<label id="data" for="param-dataset" data-toggle="tooltip" data-placement="right" title="Tip: use one of the data sets already provided or upload a new file.">{{ dataset }}</label> |
||||
<select id="selectFile" @change="selectDataSet()"> |
||||
<option value="HeartC.csv" selected>Heart Disease</option> |
||||
<option value="IrisC.csv">Iris</option> |
||||
<option value="local">Upload New File</option> |
||||
</select> |
||||
<button class="btn-outline-success" |
||||
id="initializeID" |
||||
v-on:click="initialize"> |
||||
<font-awesome-icon icon="search" /> |
||||
{{ searchText }} |
||||
</button> |
||||
<button class="btn-outline-danger" |
||||
id="resetID" |
||||
v-on:click="reset"> |
||||
<font-awesome-icon icon="trash" /> |
||||
{{ resetText }} |
||||
</button> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Papa from 'papaparse' |
||||
import { EventBus } from '../main.js' |
||||
import {$,jQuery} from 'jquery'; |
||||
import * as d3Base from 'd3' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
export default { |
||||
name: 'FeatureSpace3', |
||||
data () { |
||||
return { |
||||
defaultDataSet: 'HeartC', // default value for the first data set |
||||
searchText: 'Hyper-parameter search', |
||||
resetText: 'Reset', |
||||
dataset: 'Data set' |
||||
} |
||||
}, |
||||
methods: { |
||||
selectDataSet () { |
||||
const fileName = document.getElementById('selectFile') |
||||
this.defaultDataSet = fileName.options[fileName.selectedIndex].value |
||||
this.defaultDataSet = this.defaultDataSet.split('.')[0] |
||||
|
||||
if (this.defaultDataSet == "DiabetesC" || this.defaultDataSet == "HeartC" || this.defaultDataSet == "IrisC" || this.defaultDataSet == "StanceC") { // This is a function that handles a new file, which users can upload. |
||||
this.dataset = "Data set" |
||||
d3.select("#data").select("input").remove(); // Remove the selection field. |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
} else { |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
d3.select("#data").select("input").remove(); |
||||
this.dataset = "" |
||||
var data |
||||
d3.select("#data") |
||||
.append("input") |
||||
.attr("type", "file") |
||||
.style("font-size", "18.5px") |
||||
.style("width", "200px") |
||||
.on("change", function() { |
||||
var file = d3.event.target.files[0]; |
||||
Papa.parse(file, { |
||||
header: true, |
||||
dynamicTyping: true, |
||||
skipEmptyLines: true, |
||||
complete: function(results) { |
||||
data = results.data; |
||||
EventBus.$emit('SendToServerLocalFile', data) |
||||
} |
||||
}); |
||||
}) |
||||
} |
||||
}, |
||||
reset () { |
||||
EventBus.$emit('reset') |
||||
EventBus.$emit('alternateFlagLock') |
||||
}, |
||||
initialize () { |
||||
EventBus.$emit('ConfirmDataSet') |
||||
} |
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,86 @@ |
||||
<template> |
||||
<div> |
||||
<label id="data" for="param-dataset" data-toggle="tooltip" data-placement="right" title="Tip: use one of the data sets already provided or upload a new file.">{{ dataset }}</label> |
||||
<select id="selectFile" @change="selectDataSet()"> |
||||
<option value="HeartC.csv" selected>Heart Disease</option> |
||||
<option value="IrisC.csv">Iris</option> |
||||
<option value="local">Upload New File</option> |
||||
</select> |
||||
<button class="btn-outline-success" |
||||
id="initializeID" |
||||
v-on:click="initialize"> |
||||
<font-awesome-icon icon="search" /> |
||||
{{ searchText }} |
||||
</button> |
||||
<button class="btn-outline-danger" |
||||
id="resetID" |
||||
v-on:click="reset"> |
||||
<font-awesome-icon icon="trash" /> |
||||
{{ resetText }} |
||||
</button> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Papa from 'papaparse' |
||||
import { EventBus } from '../main.js' |
||||
import {$,jQuery} from 'jquery'; |
||||
import * as d3Base from 'd3' |
||||
|
||||
// attach all d3 plugins to the d3 library |
||||
const d3 = Object.assign(d3Base) |
||||
|
||||
export default { |
||||
name: 'FeatureSpace4', |
||||
data () { |
||||
return { |
||||
defaultDataSet: 'HeartC', // default value for the first data set |
||||
searchText: 'Hyper-parameter search', |
||||
resetText: 'Reset', |
||||
dataset: 'Data set' |
||||
} |
||||
}, |
||||
methods: { |
||||
selectDataSet () { |
||||
const fileName = document.getElementById('selectFile') |
||||
this.defaultDataSet = fileName.options[fileName.selectedIndex].value |
||||
this.defaultDataSet = this.defaultDataSet.split('.')[0] |
||||
|
||||
if (this.defaultDataSet == "DiabetesC" || this.defaultDataSet == "HeartC" || this.defaultDataSet == "IrisC" || this.defaultDataSet == "StanceC") { // This is a function that handles a new file, which users can upload. |
||||
this.dataset = "Data set" |
||||
d3.select("#data").select("input").remove(); // Remove the selection field. |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
} else { |
||||
EventBus.$emit('SendToServerDataSetConfirmation', this.defaultDataSet) |
||||
d3.select("#data").select("input").remove(); |
||||
this.dataset = "" |
||||
var data |
||||
d3.select("#data") |
||||
.append("input") |
||||
.attr("type", "file") |
||||
.style("font-size", "18.5px") |
||||
.style("width", "200px") |
||||
.on("change", function() { |
||||
var file = d3.event.target.files[0]; |
||||
Papa.parse(file, { |
||||
header: true, |
||||
dynamicTyping: true, |
||||
skipEmptyLines: true, |
||||
complete: function(results) { |
||||
data = results.data; |
||||
EventBus.$emit('SendToServerLocalFile', data) |
||||
} |
||||
}); |
||||
}) |
||||
} |
||||
}, |
||||
reset () { |
||||
EventBus.$emit('reset') |
||||
EventBus.$emit('alternateFlagLock') |
||||
}, |
||||
initialize () { |
||||
EventBus.$emit('ConfirmDataSet') |
||||