Former-commit-id: c6393c0e6f
master
parent 434da12d3c
commit 1203796056
  1. BIN
      __pycache__/run.cpython-37.pyc
  2. BIN
      cachedir/joblib/run/GridSearchForModels/080d2e54a0c82b08dc590fe8fd0c0e50/output.pkl
  3. 1
      cachedir/joblib/run/GridSearchForModels/0c5f8a1f4bea8be6ae4682e53eda9c9a/metadata.json
  4. 1
      cachedir/joblib/run/GridSearchForModels/2272bf2f2eb73a7efc74074ee6a6c15e/metadata.json
  5. BIN
      cachedir/joblib/run/GridSearchForModels/2f69ba23eb822696a3dd502d57a69769/output.pkl
  6. 1
      cachedir/joblib/run/GridSearchForModels/3c35980bb4ff691ea900ae01dc4c390e/metadata.json
  7. 1
      cachedir/joblib/run/GridSearchForModels/3f6d2dbb8c264332ed46e83725cce2c3/output.pkl.REMOVED.git-id
  8. 1
      cachedir/joblib/run/GridSearchForModels/417c9d3ca719ab50ac2ab97fbfb5069b/metadata.json
  9. BIN
      cachedir/joblib/run/GridSearchForModels/443876fb4ee9a745a5e0263d22d18b6c/output.pkl
  10. 1
      cachedir/joblib/run/GridSearchForModels/44d3d205fa9d07df22e30c0613c63437/output.pkl.REMOVED.git-id
  11. BIN
      cachedir/joblib/run/GridSearchForModels/47d9815571b6615686b51643ff74edde/output.pkl
  12. 1
      cachedir/joblib/run/GridSearchForModels/60fac8b7832dab843ebf74c2ef6176fa/output.pkl.REMOVED.git-id
  13. 1
      cachedir/joblib/run/GridSearchForModels/655a6eaba76ddf35cbc9b77dd123f6d1/metadata.json
  14. BIN
      cachedir/joblib/run/GridSearchForModels/6af4a60c3ab79f2a59a2c852d99a7740/output.pkl
  15. 1
      cachedir/joblib/run/GridSearchForModels/720be86fddd302411e0948780014d505/metadata.json
  16. 1
      cachedir/joblib/run/GridSearchForModels/72ee0dae832b932164fbb238cdd167cb/metadata.json
  17. 1
      cachedir/joblib/run/GridSearchForModels/7987784bb00482e6d734e7418e8e7825/metadata.json
  18. 1
      cachedir/joblib/run/GridSearchForModels/84c9e65e096b72223ec9394ef6c77677/metadata.json
  19. 1
      cachedir/joblib/run/GridSearchForModels/857a30e45af06f6a78691a05559ad386/output.pkl.REMOVED.git-id
  20. 1
      cachedir/joblib/run/GridSearchForModels/86bbdf5857df4fd69c1a7640e32eb954/output.pkl.REMOVED.git-id
  21. 1
      cachedir/joblib/run/GridSearchForModels/8eb6d31b2f7dfdeafa1c9fbf54862bb3/metadata.json
  22. BIN
      cachedir/joblib/run/GridSearchForModels/8fb98ea4bff0c958c4784d68664d2f05/output.pkl
  23. 1
      cachedir/joblib/run/GridSearchForModels/90003ee6cd1c752ef075aa0a52f23492/metadata.json
  24. 1
      cachedir/joblib/run/GridSearchForModels/90f4ec7056539ba8f1ae91d2ce378613/metadata.json
  25. 1
      cachedir/joblib/run/GridSearchForModels/9147dc03a27d188e71203f91522c7d50/metadata.json
  26. BIN
      cachedir/joblib/run/GridSearchForModels/9484a1ead07b43a733fa1662bd133fff/output.pkl
  27. 1
      cachedir/joblib/run/GridSearchForModels/95a22676f7ad60c99edc19898693b276/output.pkl.REMOVED.git-id
  28. 1
      cachedir/joblib/run/GridSearchForModels/99bebc535b9dc39e3b7a912db6db2091/metadata.json
  29. BIN
      cachedir/joblib/run/GridSearchForModels/a25b1cee38ae9366c3ea6de77a25f3b7/output.pkl
  30. 1
      cachedir/joblib/run/GridSearchForModels/a4f545a4898d1485cfb4ed50c0d2a913/metadata.json
  31. 1
      cachedir/joblib/run/GridSearchForModels/aa7b669072217a30f580f31b1f22c109/metadata.json
  32. BIN
      cachedir/joblib/run/GridSearchForModels/b3db96391ec83e1a8547f6958c50d7fb/output.pkl
  33. 1
      cachedir/joblib/run/GridSearchForModels/bcd3d48e754a86963f67344f00056fa2/metadata.json
  34. 1
      cachedir/joblib/run/GridSearchForModels/c9f7ad12fbeadc6012d9b5d28fd5d889/metadata.json
  35. BIN
      cachedir/joblib/run/GridSearchForModels/ce3deef62fcdb9a13275d0d7a193fdfa/output.pkl
  36. 1
      cachedir/joblib/run/GridSearchForModels/d47cb434b4b20b0c82fcf3a60162c740/metadata.json
  37. 1
      cachedir/joblib/run/GridSearchForModels/da0b6483b461b61b7f4703390b9d52a4/output.pkl.REMOVED.git-id
  38. 1
      cachedir/joblib/run/GridSearchForModels/e20db815e97d599adf98f06c37ea0d88/metadata.json
  39. BIN
      cachedir/joblib/run/GridSearchForModels/e8cc5471eed484384e9281c824bce22c/output.pkl
  40. 1
      cachedir/joblib/run/GridSearchForModels/f4d33884dc001f572bf3782e5bcfc337/metadata.json
  41. 1
      cachedir/joblib/run/GridSearchForModels/fae571cb8275aa179fbc88d44e722bdf/output.pkl.REMOVED.git-id
  42. 1
      cachedir/joblib/run/GridSearchForModels/fb36bc13646b59fa075cbef1b5f8c47e/metadata.json
  43. 1
      cachedir/joblib/run/GridSearchForModels/fb3815bf3f2bf82cd75faa5a3a9cbe4b/metadata.json
  44. 1
      cachedir/joblib/run/GridSearchForModels/fee66581911cfa2324cc40a9d0b5d65a/output.pkl.REMOVED.git-id
  45. BIN
      cachedir/joblib/run/GridSearchForModels/feff3eb388078b3f79cf8488ff40a745/output.pkl
  46. 16
      cachedir/joblib/run/GridSearchForModels/func_code.py
  47. 27
      frontend/src/components/Active.vue
  48. 2
      frontend/src/components/AlgorithmHyperParam.vue
  49. 184
      frontend/src/components/Algorithms.vue
  50. 49
      frontend/src/components/BarChart.vue
  51. 2
      frontend/src/components/Controller.vue
  52. 4
      frontend/src/components/DataSetExecController.vue
  53. 53
      frontend/src/components/DataSpace.vue
  54. 110
      frontend/src/components/FinalResultsLinePlot.vue
  55. 1
      frontend/src/components/Heatmap.vue
  56. 63
      frontend/src/components/Main.vue
  57. 98
      frontend/src/components/Parameters.vue
  58. 3
      frontend/src/components/PerMetricBarChart.vue
  59. 29
      frontend/src/components/PredictionsSpace.vue
  60. 115
      frontend/src/components/Provenance.vue
  61. 85
      frontend/src/components/SlidersController.vue
  62. 4
      frontend/src/main.js
  63. 134
      run.py
  64. 3559
      stance.csv

Binary file not shown.

@ -0,0 +1 @@
{"duration": 808.1316039562225, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "GradientBoostingClassifier(ccp_alpha=0.0, criterion='mae', init=None,\n learning_rate=0.12, loss='deviance', max_depth=3,\n max_features=None, max_leaf_nodes=None,\n min_impurity_decrease=0.0, min_impurity_split=None,\n min_samples_leaf=1, min_samples_split=2,\n min_weight_fraction_leaf=0.0, n_estimators=114,\n n_iter_no_change=None, presort='deprecated',\n random_state=42, subsample=1.0, tol=0.0001,\n validation_fraction=0.1, verbose=0,\n warm_start=False)", "params": "{'n_estimators': [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], 'learning_rate': [0.01, 0.12], 'criterion': ['friedman_mse', 'mse', 'mae']}", "eachAlgor": "'GradB'", "AlgorithmsIDsEnd": "2926", "toggle": "1"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"duration": 82.00885820388794, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "KNeighborsClassifier(algorithm='ball_tree', leaf_size=30, metric='minkowski',\n metric_params=None, n_jobs=None, n_neighbors=24, p=2,\n weights='distance')", "params": "{'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], 'metric': ['chebyshev', 'manhattan', 'euclidean', 'minkowski'], 'algorithm': ['brute', 'kd_tree', 'ball_tree'], 'weights': ['uniform', 'distance']}", "eachAlgor": "'KNN'", "AlgorithmsIDsEnd": "0", "toggle": "0"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"duration": 1185.2191259860992, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "AdaBoostClassifier(algorithm='SAMME', base_estimator=None, learning_rate=1.2,\n n_estimators=79, random_state=42)", "params": "{'n_estimators': [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], 'learning_rate': [0.1, 1.2000000000000002], 'algorithm': ['SAMME.R', 'SAMME']}", "eachAlgor": "'AdaB'", "AlgorithmsIDsEnd": "2766", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 421.42440700531006, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "LogisticRegression(C=1.925, class_weight=None, dual=False, fit_intercept=True,\n intercept_scaling=1, l1_ratio=None, max_iter=200,\n multi_class='auto', n_jobs=None, penalty='none',\n random_state=42, solver='saga', tol=0.0001, verbose=0,\n warm_start=False)", "params": "{'C': [0.5, 0.575, 0.6499999999999999, 0.7249999999999999, 0.7999999999999998, 0.8749999999999998, 0.9499999999999997, 1.0249999999999997, 1.0999999999999996, 1.1749999999999996, 1.2499999999999996, 1.3249999999999995, 1.3999999999999995, 1.4749999999999994, 1.5499999999999994, 1.6249999999999993, 1.6999999999999993, 1.7749999999999992, 1.8499999999999992, 1.9249999999999992], 'max_iter': [50, 100, 150, 200], 'solver': ['lbfgs', 'newton-cg', 'sag', 'saga'], 'penalty': ['l2', 'none']}", "eachAlgor": "'LR'", "AlgorithmsIDsEnd": "1356", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 126.82636213302612, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "QuadraticDiscriminantAnalysis(priors=None, reg_param=0.98,\n store_covariance=False, tol=0.00081)", "params": "{'reg_param': [0.0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.52, 0.54, 0.56, 0.58, 0.6, 0.62, 0.64, 0.66, 0.68, 0.7000000000000001, 0.72, 0.74, 0.76, 0.78, 0.8, 0.8200000000000001, 0.84, 0.86, 0.88, 0.9, 0.92, 0.9400000000000001, 0.96, 0.98], 'tol': [1e-05, 0.00021, 0.00041000000000000005, 0.0006100000000000001, 0.0008100000000000001]}", "eachAlgor": "'QDA'", "AlgorithmsIDsEnd": "2196", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 1975.5374217033386, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,\n criterion='entropy', max_depth=None, max_features='auto',\n max_leaf_nodes=None, max_samples=None,\n min_impurity_decrease=0.0, min_impurity_split=None,\n min_samples_leaf=1, min_samples_split=2,\n min_weight_fraction_leaf=0.0, n_estimators=139,\n n_jobs=None, oob_score=False, random_state=42, verbose=0,\n warm_start=False)", "params": "{'n_estimators': [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139], 'criterion': ['gini', 'entropy']}", "eachAlgor": "'RF'", "AlgorithmsIDsEnd": "2446", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 1522.8265852928162, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "KNeighborsClassifier(algorithm='ball_tree', leaf_size=30, metric='minkowski',\n metric_params=None, n_jobs=None, n_neighbors=24, p=2,\n weights='distance')", "params": "{'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], 'metric': ['chebyshev', 'manhattan', 'euclidean', 'minkowski'], 'algorithm': ['brute', 'kd_tree', 'ball_tree'], 'weights': ['uniform', 'distance']}", "eachAlgor": "'KNN'", "AlgorithmsIDsEnd": "0", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 102.67770314216614, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=0.99,\n solver='eigen', store_covariance=False, tol=0.0001)", "params": "{'shrinkage': [0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35000000000000003, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41000000000000003, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47000000000000003, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.5700000000000001, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.6900000000000001, 0.7000000000000001, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.8200000000000001, 0.8300000000000001, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.9400000000000001, 0.9500000000000001, 0.96, 0.97, 0.98, 0.99], 'solver': ['lsqr', 'eigen']}", "eachAlgor": "'LDA'", "AlgorithmsIDsEnd": "1996", "toggle": "1"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"duration": 9443.513182163239, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "SVC(C=4.39, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,\n decision_function_shape='ovr', degree=3, gamma='scale', kernel='sigmoid',\n max_iter=-1, probability=True, random_state=42, shrinking=True, tol=0.001,\n verbose=False)", "params": "{'C': [0.1, 0.21000000000000002, 0.32000000000000006, 0.43000000000000005, 0.54, 0.65, 0.7600000000000001, 0.8700000000000001, 0.9800000000000001, 1.09, 1.2000000000000002, 1.3100000000000003, 1.4200000000000004, 1.5300000000000002, 1.6400000000000003, 1.7500000000000002, 1.8600000000000003, 1.9700000000000004, 2.08, 2.1900000000000004, 2.3000000000000003, 2.4100000000000006, 2.5200000000000005, 2.6300000000000003, 2.7400000000000007, 2.8500000000000005, 2.9600000000000004, 3.0700000000000003, 3.1800000000000006, 3.2900000000000005, 3.4000000000000004, 3.5100000000000007, 3.6200000000000006, 3.7300000000000004, 3.8400000000000007, 3.9500000000000006, 4.0600000000000005, 4.17, 4.28, 4.390000000000001], 'kernel': ['rbf', 'linear', 'poly', 'sigmoid']}", "eachAlgor": "'SVC'", "AlgorithmsIDsEnd": "576", "toggle": "1"}}

@ -0,0 +1 @@
{"duration": 517.1162519454956, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "MLPClassifier(activation='tanh', alpha=0.00081, batch_size='auto', beta_1=0.9,\n beta_2=0.999, early_stopping=False, epsilon=1e-08,\n hidden_layer_sizes=(100,), learning_rate='constant',\n learning_rate_init=0.001, max_fun=15000, max_iter=100,\n momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True,\n power_t=0.5, random_state=42, shuffle=True, solver='sgd',\n tol=0.00081, validation_fraction=0.1, verbose=False,\n warm_start=False)", "params": "{'alpha': [1e-05, 0.00021, 0.00041000000000000005, 0.0006100000000000001, 0.0008100000000000001], 'tol': [1e-05, 0.00041000000000000005, 0.0008100000000000001], 'max_iter': [100], 'activation': ['relu', 'identity', 'logistic', 'tanh'], 'solver': ['adam', 'sgd']}", "eachAlgor": "'MLP'", "AlgorithmsIDsEnd": "1236", "toggle": "1"}}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"duration": 1597.3868968486786, "input_args": {"XData": " Age Sex Cp Trestbps Chol Fbs Restecg Thalach Exang Oldpeak Slope Ca Thal\n0 63 1 3 145 233 1 0 150 0 2.3 0 0 1\n1 37 1 2 130 250 0 1 187 0 3.5 0 0 2\n2 41 0 1 130 204 0 0 172 0 1.4 2 0 2\n3 56 1 1 120 236 0 1 178 0 0.8 2 0 2\n4 57 0 0 120 354 0 1 163 1 0.6 2 0 2\n.. ... ... .. ... ... ... ... ... ... ... ... .. ...\n298 57 0 0 140 241 0 1 123 1 0.2 1 0 3\n299 45 1 3 110 264 0 1 132 0 1.2 1 0 3\n300 68 1 0 144 193 1 1 141 0 3.4 1 2 3\n301 57 1 0 130 131 0 1 115 1 1.2 1 1 3\n302 57 0 1 130 236 0 0 174 0 0.0 1 1 2\n\n[303 rows x 13 columns]", "yData": "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", "clf": "ExtraTreesClassifier(bootstrap=False, ccp_alpha=0.0, class_weight=None,\n criterion='entropy', max_depth=None, max_features='auto',\n max_leaf_nodes=None, max_samples=None,\n min_impurity_decrease=0.0, min_impurity_split=None,\n min_samples_leaf=1, min_samples_split=2,\n min_weight_fraction_leaf=0.0, n_estimators=139,\n n_jobs=None, oob_score=False, random_state=42, verbose=0,\n warm_start=False)", "params": "{'n_estimators': [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139], 'criterion': ['gini', 'entropy']}", "eachAlgor": "'ExtraT'", "AlgorithmsIDsEnd": "2606", "toggle": "1"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
# first line: 559 # first line: 552
@memory.cache @memory.cache
def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd, toggle): def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd, toggle):
# instantiate spark session # instantiate spark session
@ -63,6 +63,8 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
PerFeatureAccuracyAll = [] PerFeatureAccuracyAll = []
PerClassMetric = [] PerClassMetric = []
perModelProb = [] perModelProb = []
perModelPrediction = []
resultsMicro = [] resultsMicro = []
resultsMacro = [] resultsMacro = []
resultsWeighted = [] resultsWeighted = []
@ -85,7 +87,8 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
inputs = range(len(XData)) inputs = range(len(XData))
num_cores = multiprocessing.cpu_count() num_cores = multiprocessing.cpu_count()
impDataInst = Parallel(n_jobs=num_cores)(delayed(processInput)(i,XData,yData,crossValidation,clf) for i in inputs) #impDataInst = Parallel(n_jobs=num_cores)(delayed(processInput)(i,XData,yData,crossValidation,clf) for i in inputs)
for eachModelParameters in parametersLocalNew: for eachModelParameters in parametersLocalNew:
clf.set_params(**eachModelParameters) clf.set_params(**eachModelParameters)
if (toggle == 1): if (toggle == 1):
@ -103,6 +106,7 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
clf.fit(XData, yData) clf.fit(XData, yData)
yPredict = clf.predict(XData) yPredict = clf.predict(XData)
yPredict = np.nan_to_num(yPredict) yPredict = np.nan_to_num(yPredict)
perModelPrediction.append(yPredict)
# retrieve target names (class names) # retrieve target names (class names)
PerClassMetric.append(classification_report(yData, yPredict, target_names=target_names, digits=2, output_dict=True)) PerClassMetric.append(classification_report(yData, yPredict, target_names=target_names, digits=2, output_dict=True))
yPredictProb = clf.predict_proba(XData) yPredictProb = clf.predict_proba(XData)
@ -128,7 +132,7 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
resultsWeightedBeta2.append(fbeta_score(yData, yPredict, average='weighted', beta=2)) resultsWeightedBeta2.append(fbeta_score(yData, yPredict, average='weighted', beta=2))
resultsLogLoss.append(log_loss(yData, yPredictProb, normalize=True)) resultsLogLoss.append(log_loss(yData, yPredictProb, normalize=True))
print('perase')
maxLog = max(resultsLogLoss) maxLog = max(resultsLogLoss)
minLog = min(resultsLogLoss) minLog = min(resultsLogLoss)
for each in resultsLogLoss: for each in resultsLogLoss:
@ -154,6 +158,10 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
metrics.insert(loop+13,'log_loss',resultsLogLossFinal) metrics.insert(loop+13,'log_loss',resultsLogLossFinal)
perModelPredPandas = pd.DataFrame(perModelPrediction)
print(perModelPredPandas)
perModelPredPandas = perModelPredPandas.to_json()
perModelProbPandas = pd.DataFrame(perModelProb) perModelProbPandas = pd.DataFrame(perModelProb)
perModelProbPandas = perModelProbPandas.to_json() perModelProbPandas = perModelProbPandas.to_json()
@ -189,6 +197,6 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
metrics = metrics.to_json() metrics = metrics.to_json()
results.append(metrics) # Position: 6 and so on results.append(metrics) # Position: 6 and so on
results.append(perModelProbPandas) # Position: 7 and so on results.append(perModelProbPandas) # Position: 7 and so on
results.append(json.dumps(impDataInst)) # Position: 8 and so on results.append(json.dumps(perModelPredPandas)) # Position: 8 and so on
return results return results

@ -0,0 +1,27 @@
<template>
<button style="float: right;"
id="updateActive"
v-on:click="sendUpdateActive">
<font-awesome-icon icon="calculator" />
{{ valueActive }}
</button>
</template>
<script>
import { EventBus } from '../main.js'
export default {
name: 'Active',
data () {
return {
valueActive: 'Compute Active Metamodel\'s Performance'
}
},
methods: {
sendUpdateActive () {
EventBus.$emit('OpenModal')
}
}
}
</script>

@ -1,5 +1,5 @@
<template> <template>
<div id="PCP" class="parcoords" style="min-height: 307px;"></div> <div id="PCP" class="parcoords" style="min-height: 285px;"></div>
</template> </template>
<script> <script>

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div id="exploding_boxplot" class="exploding_boxplot" style="min-height: 430px;"></div> <div id="exploding_boxplot" class="exploding_boxplot" style="min-height: 450px;"></div>
</div> </div>
</template> </template>
@ -22,7 +22,7 @@ export default {
brushedBoxPl: [], brushedBoxPl: [],
previousColor: 0, previousColor: 0,
selectedAlgorithm: 0, selectedAlgorithm: 0,
AllAlgorithms: ['KNN','SVC','GausNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'], AllAlgorithms: ['KNN','SVC','GauNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'],
SVCModels: 576, SVCModels: 576,
GausNBModels: 736, GausNBModels: 736,
MLPModels: 1236, MLPModels: 1236,
@ -232,92 +232,92 @@ export default {
this.parameters = [] this.parameters = []
if (this.keyAllOrClass) { if (this.keyAllOrClass) {
for (var j = 0; j < Object.keys(PerformAlgorKNN['params']).length; j++) { for (var j = 0; j < Object.keys(PerformAlgorKNN['params']).length; j++) {
this.algorithmKNN.push({'# Performance (%) #': McKNN[j],Algorithm:'K-Nearest Neighbors',Model:'Model ID: ' + AlgorKNNIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorKNNIDs[j]}) this.algorithmKNN.push({'# Performance (%) #': McKNN[j],Algorithm:'KNN',Model:'Model ID: ' + AlgorKNNIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorKNNIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorKNN['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorSVC['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorSVC['params']).length; j++) {
this.algorithmSVC.push({'# Performance (%) #': McSVC[j],Algorithm:'C-Support Vector Classif',Model:'Model ID: ' + AlgorSVCIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorSVCIDs[j]}) this.algorithmSVC.push({'# Performance (%) #': McSVC[j],Algorithm:'SVC',Model:'Model ID: ' + AlgorSVCIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorSVCIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorSVC['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorGausNB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorGausNB['params']).length; j++) {
this.algorithmGausNB.push({'# Performance (%) #': McGausNB[j],Algorithm:'Gaussian Naive Bayes',Model:'Model ID: ' + AlgorGausNBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGausNBIDs[j]}) this.algorithmGausNB.push({'# Performance (%) #': McGausNB[j],Algorithm:'GauNB',Model:'Model ID: ' + AlgorGausNBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGausNBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorMLP['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorMLP['params']).length; j++) {
this.algorithmMLP.push({'# Performance (%) #': McMLP[j],Algorithm:'Multilayer Perceptron',Model:'Model ID: ' + AlgorMLPIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorMLPIDs[j]}) this.algorithmMLP.push({'# Performance (%) #': McMLP[j],Algorithm:'MLP',Model:'Model ID: ' + AlgorMLPIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorMLPIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorMLP['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorLR['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorLR['params']).length; j++) {
this.algorithmLR.push({'# Performance (%) #': McLR[j],Algorithm:'Logistic Regression',Model:'Model ID: ' + AlgorLRIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLR['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLRIDs[j]}) this.algorithmLR.push({'# Performance (%) #': McLR[j],Algorithm:'LR',Model:'Model ID: ' + AlgorLRIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLR['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLRIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorLR['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorLR['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorLDA['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorLDA['params']).length; j++) {
this.algorithmLDA.push({'# Performance (%) #': McLDA[j],Algorithm:'Linear Discrim Analysis',Model:'Model ID: ' + AlgorLDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLDAIDs[j]}) this.algorithmLDA.push({'# Performance (%) #': McLDA[j],Algorithm:'LDA',Model:'Model ID: ' + AlgorLDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLDAIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorLDA['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorQDA['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorQDA['params']).length; j++) {
this.algorithmQDA.push({'# Performance (%) #': McQDA[j],Algorithm:'Quadratic Discrim Analysis',Model:'Model ID: ' + AlgorQDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorQDAIDs[j]}) this.algorithmQDA.push({'# Performance (%) #': McQDA[j],Algorithm:'QDA',Model:'Model ID: ' + AlgorQDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorQDAIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorQDA['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorRF['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorRF['params']).length; j++) {
this.algorithmRF.push({'# Performance (%) #': McRF[j],Algorithm:'Random Forest',Model:'Model ID: ' + AlgorRFIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorRF['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorRFIDs[j]}) this.algorithmRF.push({'# Performance (%) #': McRF[j],Algorithm:'RF',Model:'Model ID: ' + AlgorRFIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorRF['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorRFIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorRF['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorRF['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorExtraT['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorExtraT['params']).length; j++) {
this.algorithmExtraT.push({'# Performance (%) #': McExtraT[j],Algorithm:'Extra Trees',Model:'Model ID: ' + AlgorExtraTIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorExtraTIDs[j]}) this.algorithmExtraT.push({'# Performance (%) #': McExtraT[j],Algorithm:'ExtraT',Model:'Model ID: ' + AlgorExtraTIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorExtraTIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorAdaB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorAdaB['params']).length; j++) {
this.algorithmAdaB.push({'# Performance (%) #': McAdaB[j],Algorithm:'AdaBoost',Model:'Model ID: ' + AlgorAdaBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorAdaBIDs[j]}) this.algorithmAdaB.push({'# Performance (%) #': McAdaB[j],Algorithm:'AdaB',Model:'Model ID: ' + AlgorAdaBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorAdaBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorGradB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorGradB['params']).length; j++) {
this.algorithmGradB.push({'# Performance (%) #': McGradB[j],Algorithm:'Gradient Boosting',Model:'Model ID: ' + AlgorGradBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGradBIDs[j]}) this.algorithmGradB.push({'# Performance (%) #': McGradB[j],Algorithm:'GradB',Model:'Model ID: ' + AlgorGradBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGradBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorGradB['params'])[j]))
} }
} else { } else {
for (var j = 0; j < Object.keys(PerformAlgorKNN['params']).length; j++) { for (var j = 0; j < Object.keys(PerformAlgorKNN['params']).length; j++) {
this.algorithmKNN.push({'# Performance (%) #': this.listClassPerf[0][j],Algorithm:'K-Nearest Neighbors',Model:'Model ID: ' + AlgorKNNIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorKNNIDs[j]}) this.algorithmKNN.push({'# Performance (%) #': this.listClassPerf[0][j],Algorithm:'KNN',Model:'Model ID: ' + AlgorKNNIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorKNNIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorKNN['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorKNN['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorSVC['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorSVC['params']).length; j++) {
this.algorithmSVC.push({'# Performance (%) #': this.listClassPerf[1][j],Algorithm:'C-Support Vector Classif',Model:'Model ID: ' + AlgorSVCIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorSVCIDs[j]}) this.algorithmSVC.push({'# Performance (%) #': this.listClassPerf[1][j],Algorithm:'SVC',Model:'Model ID: ' + AlgorSVCIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorSVCIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorSVC['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorSVC['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorGausNB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorGausNB['params']).length; j++) {
this.algorithmGausNB.push({'# Performance (%) #': this.listClassPerf[2][j],Algorithm:'Gaussian Naive Bayes',Model:'Model ID: ' + AlgorGausNBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGausNBIDs[j]}) this.algorithmGausNB.push({'# Performance (%) #': this.listClassPerf[2][j],Algorithm:'GauNB',Model:'Model ID: ' + AlgorGausNBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGausNBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorGausNB['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorMLP['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorMLP['params']).length; j++) {
this.algorithmMLP.push({'# Performance (%) #': this.listClassPerf[3][j],Algorithm:'Multilayer Perceptron',Model:'Model ID: ' + AlgorMLPIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorMLPIDs[j]}) this.algorithmMLP.push({'# Performance (%) #': this.listClassPerf[3][j],Algorithm:'MLP',Model:'Model ID: ' + AlgorMLPIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorMLPIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorMLP['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorMLP['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorLR['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorLR['params']).length; j++) {
this.algorithmLR.push({'# Performance (%) #': this.listClassPerf[4][j],Algorithm:'Logistic Regression',Model:'Model ID: ' + AlgorLRIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLR['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLRIDs[j]}) this.algorithmLR.push({'# Performance (%) #': this.listClassPerf[4][j],Algorithm:'LR',Model:'Model ID: ' + AlgorLRIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLR['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLRIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorLR['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorLR['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorLDA['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorLDA['params']).length; j++) {
this.algorithmLDA.push({'# Performance (%) #': this.listClassPerf[5][j],Algorithm:'Linear Discrim Analysis',Model:'Model ID: ' + AlgorLDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLDAIDs[j]}) this.algorithmLDA.push({'# Performance (%) #': this.listClassPerf[5][j],Algorithm:'LDA',Model:'Model ID: ' + AlgorLDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorLDAIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorLDA['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorLDA['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorQDA['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorQDA['params']).length; j++) {
this.algorithmQDA.push({'# Performance (%) #': this.listClassPerf[6][j],Algorithm:'Quadratic Discrim Analysis',Model:'Model ID: ' + AlgorQDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorQDAIDs[j]}) this.algorithmQDA.push({'# Performance (%) #': this.listClassPerf[6][j],Algorithm:'QDA',Model:'Model ID: ' + AlgorQDAIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorQDAIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorQDA['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorQDA['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorRF['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorRF['params']).length; j++) {
this.algorithmRF.push({'# Performance (%) #': this.listClassPerf[7][j],Algorithm:'Random Forest',Model:'Model ID: ' + AlgorRFIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorRF['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorRFIDs[j]}) this.algorithmRF.push({'# Performance (%) #': this.listClassPerf[7][j],Algorithm:'RF',Model:'Model ID: ' + AlgorRFIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorRF['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorRFIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorRF['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorRF['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorExtraT['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorExtraT['params']).length; j++) {
this.algorithmExtraT.push({'# Performance (%) #': this.listClassPerf[8][j],Algorithm:'Extra Trees',Model:'Model ID: ' + AlgorExtraTIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorExtraTIDs[j]}) this.algorithmExtraT.push({'# Performance (%) #': this.listClassPerf[8][j],Algorithm:'ExtraT',Model:'Model ID: ' + AlgorExtraTIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorExtraTIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorExtraT['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorAdaB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorAdaB['params']).length; j++) {
this.algorithmAdaB.push({'# Performance (%) #': this.listClassPerf[9][j],Algorithm:'AdaBoost',Model:'Model ID: ' + AlgorAdaBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorAdaBIDs[j]}) this.algorithmAdaB.push({'# Performance (%) #': this.listClassPerf[9][j],Algorithm:'AdaB',Model:'Model ID: ' + AlgorAdaBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorAdaBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorAdaB['params'])[j]))
} }
for (let j = 0; j < Object.keys(PerformAlgorGradB['params']).length; j++) { for (let j = 0; j < Object.keys(PerformAlgorGradB['params']).length; j++) {
this.algorithmGradB.push({'# Performance (%) #': this.listClassPerf[10][j],Algorithm:'Gradient Boosting',Model:'Model ID: ' + AlgorGradBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGradBIDs[j]}) this.algorithmGradB.push({'# Performance (%) #': this.listClassPerf[10][j],Algorithm:'GradB',Model:'Model ID: ' + AlgorGradBIDs[j] + '<br> Parameters: '+JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])+'<br> # Performance (%) #',ModelID:AlgorGradBIDs[j]})
this.parameters.push(JSON.stringify(Object.values(PerformAlgorGradB['params'])[j])) this.parameters.push(JSON.stringify(Object.values(PerformAlgorGradB['params'])[j]))
} }
} }
@ -340,8 +340,8 @@ export default {
// color : color of the point / boxplot // color : color of the point / boxplot
// label : displayed text in toolbox // label : displayed text in toolbox
this.chart = exploding_boxplot(data, {y:'# Performance (%) #',group:'Algorithm',color:'Algorithm',label:'Model'}) this.chart = exploding_boxplot(data, {y:'# Performance (%) #',group:'Algorithm',color:'Algorithm',label:'Model'})
this.chart.width(this.WH[0]*10) // interactive visualization this.chart.width(this.WH[0]*10.225) // interactive visualization
this.chart.height(this.WH[1]*0.9) // interactive visualization this.chart.height(this.WH[1]*0.95) // interactive visualization
//call chart on a div //call chart on a div
this.chart('#exploding_boxplot') this.chart('#exploding_boxplot')
@ -366,7 +366,7 @@ export default {
var flagEmptyGradB = 0 var flagEmptyGradB = 0
el[0].onclick = function() { el[0].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point K-Nearest Neighbors') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point KNN')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[0] allPoints[i].style.fill = previousColor[0]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -386,7 +386,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[1].onclick = function() { el[1].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point C-Support Vector Classif') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point SVC')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[1] allPoints[i].style.fill = previousColor[1]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -406,7 +406,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[2].onclick = function() { el[2].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gaussian Naive Bayes') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GauNB')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[2] allPoints[i].style.fill = previousColor[2]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -419,14 +419,14 @@ export default {
} }
EventBus.$emit('clearPCP') EventBus.$emit('clearPCP')
EventBus.$emit('updateFlagGausNB', flagEmptyGausNB) EventBus.$emit('updateFlagGauNB', flagEmptyGausNB)
if (flagEmptyGausNB == 1) { if (flagEmptyGausNB == 1) {
EventBus.$emit('PCPCall', 'GausNB') EventBus.$emit('PCPCall', 'GauNB')
} }
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[3].onclick = function() { el[3].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Multilayer Perceptron') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point MLP')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[3] allPoints[i].style.fill = previousColor[3]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -446,7 +446,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[4].onclick = function() { el[4].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Logistic Regression') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LR')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[4] allPoints[i].style.fill = previousColor[4]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -466,7 +466,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[5].onclick = function() { el[5].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Linear Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LDA')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[5] allPoints[i].style.fill = previousColor[5]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -486,7 +486,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[6].onclick = function() { el[6].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Quadratic Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point QDA')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[6] allPoints[i].style.fill = previousColor[6]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -506,7 +506,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[7].onclick = function() { el[7].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Random Forest') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point RF')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[7] allPoints[i].style.fill = previousColor[7]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -526,7 +526,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[8].onclick = function() { el[8].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Extra Trees') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point ExtraT')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[8] allPoints[i].style.fill = previousColor[8]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -546,7 +546,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[9].onclick = function() { el[9].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaBoost') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaB')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[9] allPoints[i].style.fill = previousColor[9]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -566,7 +566,7 @@ export default {
EventBus.$emit('updateBarChart', []) EventBus.$emit('updateBarChart', [])
} }
el[10].onclick = function() { el[10].onclick = function() {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gradient Boosting') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GradB')
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
allPoints[i].style.fill = previousColor[10] allPoints[i].style.fill = previousColor[10]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
@ -620,37 +620,37 @@ export default {
for (var j = 0; j < this.AllAlgorithms.length; j++) { for (var j = 0; j < this.AllAlgorithms.length; j++) {
algorithm = [] algorithm = []
if (this.AllAlgorithms[j] === 'KNN') { if (this.AllAlgorithms[j] === 'KNN') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point K-Nearest Neighbors') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point KNN')
algorithm = this.algorithmKNN algorithm = this.algorithmKNN
} else if (this.AllAlgorithms[j] === 'SVC') { } else if (this.AllAlgorithms[j] === 'SVC') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point C-Support Vector Classif') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point SVC')
algorithm = this.algorithmSVC algorithm = this.algorithmSVC
} else if (this.AllAlgorithms[j] === 'GausNB') { } else if (this.AllAlgorithms[j] === 'GauNB') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gaussian Naive Bayes') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GauNB')
algorithm = this.algorithmGausNB algorithm = this.algorithmGausNB
} else if (this.AllAlgorithms[j] === 'MLP') { } else if (this.AllAlgorithms[j] === 'MLP') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Multilayer Perceptron') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point MLP')
algorithm = this.algorithmMLP algorithm = this.algorithmMLP
} else if (this.AllAlgorithms[j] === 'LR') { } else if (this.AllAlgorithms[j] === 'LR') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Logistic Regression') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LR')
algorithm = this.algorithmLR algorithm = this.algorithmLR
} else if (this.AllAlgorithms[j] === 'LDA') { } else if (this.AllAlgorithms[j] === 'LDA') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Linear Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LDA')
algorithm = this.algorithmLDA algorithm = this.algorithmLDA
} else if (this.AllAlgorithms[j] === 'QDA') { } else if (this.AllAlgorithms[j] === 'QDA') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Quadratic Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point QDA')
algorithm = this.algorithmQDA algorithm = this.algorithmQDA
} else if (this.AllAlgorithms[j] === 'RF') { } else if (this.AllAlgorithms[j] === 'RF') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Random Forest') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point RF')
algorithm = this.algorithmRF algorithm = this.algorithmRF
} else if (this.AllAlgorithms[j] === 'ExtraT') { } else if (this.AllAlgorithms[j] === 'ExtraT') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Extra Trees') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point ExtraT')
algorithm = this.algorithmExtraT algorithm = this.algorithmExtraT
} else if (this.AllAlgorithms[j] === 'AdaB') { } else if (this.AllAlgorithms[j] === 'AdaB') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaBoost') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaB')
algorithm = this.algorithmAdaB algorithm = this.algorithmAdaB
} else { } else {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gradient Boosting') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GradB')
algorithm = this.algorithmGradB algorithm = this.algorithmGradB
} }
for (let k = 0; k < allPoints.length; k++) { for (let k = 0; k < allPoints.length; k++) {
@ -663,7 +663,7 @@ export default {
allPoints[i].style.fill = previousColor[0] allPoints[i].style.fill = previousColor[0]
} else if (this.AllAlgorithms[j] === 'SVC') { } else if (this.AllAlgorithms[j] === 'SVC') {
allPoints[i].style.fill = previousColor[1] allPoints[i].style.fill = previousColor[1]
} else if (this.AllAlgorithms[j] === 'GausNB') { } else if (this.AllAlgorithms[j] === 'GauNB') {
allPoints[i].style.fill = previousColor[2] allPoints[i].style.fill = previousColor[2]
} else if (this.AllAlgorithms[j] === 'MLP') { } else if (this.AllAlgorithms[j] === 'MLP') {
allPoints[i].style.fill = previousColor[3] allPoints[i].style.fill = previousColor[3]
@ -698,7 +698,7 @@ export default {
} else if (this.AllAlgorithms[j] === 'SVC') { } else if (this.AllAlgorithms[j] === 'SVC') {
allPoints[i].style.fill = previousColor[1] allPoints[i].style.fill = previousColor[1]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
} else if (this.AllAlgorithms[j] === 'GausNB') { } else if (this.AllAlgorithms[j] === 'GauNB') {
allPoints[i].style.fill = previousColor[2] allPoints[i].style.fill = previousColor[2]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
} else if (this.AllAlgorithms[j] === 'MLP') { } else if (this.AllAlgorithms[j] === 'MLP') {
@ -740,7 +740,7 @@ export default {
allPoints[i].style.fill = "#d3d3d3" allPoints[i].style.fill = "#d3d3d3"
allPoints[i].style.opacity = '0.4' allPoints[i].style.opacity = '0.4'
} }
} else if (this.AllAlgorithms[j] === 'GausNB') { } else if (this.AllAlgorithms[j] === 'GauNB') {
if (modelsActive.indexOf(i+this.GausNBModels) == -1) { if (modelsActive.indexOf(i+this.GausNBModels) == -1) {
allPoints[i].style.fill = "#d3d3d3" allPoints[i].style.fill = "#d3d3d3"
allPoints[i].style.opacity = '0.4' allPoints[i].style.opacity = '0.4'
@ -796,27 +796,27 @@ export default {
}, },
brushed () { brushed () {
if (this.selectedAlgorithm === 'KNN') { if (this.selectedAlgorithm === 'KNN') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point K-Nearest Neighbors') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point KNN')
} else if (this.selectedAlgorithm === 'SVC') { } else if (this.selectedAlgorithm === 'SVC') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point C-Support Vector Classif') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point SVC')
} else if (this.selectedAlgorithm === 'GausNB') { } else if (this.selectedAlgorithm === 'GauNB') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gaussian Naive Bayes') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GauNB')
} else if (this.selectedAlgorithm === 'MLP') { } else if (this.selectedAlgorithm === 'MLP') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Multilayer Perceptron') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point MLP')
} else if (this.selectedAlgorithm === 'LR') { } else if (this.selectedAlgorithm === 'LR') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Logistic Regression') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LR')
} else if (this.selectedAlgorithm === 'LDA') { } else if (this.selectedAlgorithm === 'LDA') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Linear Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point LDA')
} else if (this.selectedAlgorithm === 'QDA') { } else if (this.selectedAlgorithm === 'QDA') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Quadratic Discrim Analysis') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point QDA')
} else if (this.selectedAlgorithm === 'RF') { } else if (this.selectedAlgorithm === 'RF') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Random Forest') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point RF')
} else if (this.selectedAlgorithm === 'ExtraT') { } else if (this.selectedAlgorithm === 'ExtraT') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Extra Trees') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point ExtraT')
} else if (this.selectedAlgorithm === 'AdaB') { } else if (this.selectedAlgorithm === 'AdaB') {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaBoost') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point AdaB')
} else { } else {
var allPoints = document.getElementsByClassName('d3-exploding-boxplot point Gradient Boosting') var allPoints = document.getElementsByClassName('d3-exploding-boxplot point GradB')
} }
const previousColor = ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#b15928'] const previousColor = ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#b15928']
var modelsActive = [] var modelsActive = []
@ -828,7 +828,7 @@ export default {
allPoints[i].style.fill = previousColor[0] allPoints[i].style.fill = previousColor[0]
} else if (this.selectedAlgorithm === 'SVC') { } else if (this.selectedAlgorithm === 'SVC') {
allPoints[i].style.fill = previousColor[1] allPoints[i].style.fill = previousColor[1]
} else if (this.selectedAlgorithm === 'GausNB') { } else if (this.selectedAlgorithm === 'GauNB') {
allPoints[i].style.fill = previousColor[2] allPoints[i].style.fill = previousColor[2]
} else if (this.selectedAlgorithm === 'MLP') { } else if (this.selectedAlgorithm === 'MLP') {
allPoints[i].style.fill = previousColor[3] allPoints[i].style.fill = previousColor[3]
@ -863,7 +863,7 @@ export default {
} else if (this.selectedAlgorithm === 'SVC') { } else if (this.selectedAlgorithm === 'SVC') {
allPoints[i].style.fill = previousColor[1] allPoints[i].style.fill = previousColor[1]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
} else if (this.selectedAlgorithm === 'GausNB') { } else if (this.selectedAlgorithm === 'GauNB') {
allPoints[i].style.fill = previousColor[2] allPoints[i].style.fill = previousColor[2]
allPoints[i].style.opacity = '1.0' allPoints[i].style.opacity = '1.0'
} else if (this.selectedAlgorithm === 'MLP') { } else if (this.selectedAlgorithm === 'MLP') {
@ -905,7 +905,7 @@ export default {
allPoints[i].style.fill = "#d3d3d3" allPoints[i].style.fill = "#d3d3d3"
allPoints[i].style.opacity = '0.4' allPoints[i].style.opacity = '0.4'
} }
} else if (this.selectedAlgorithm === 'GausNB') { } else if (this.selectedAlgorithm === 'GauNB') {
if (modelsActive.indexOf(i+this.GausNBModels) == -1) { if (modelsActive.indexOf(i+this.GausNBModels) == -1) {
allPoints[i].style.fill = "#d3d3d3" allPoints[i].style.fill = "#d3d3d3"
allPoints[i].style.opacity = '0.4' allPoints[i].style.opacity = '0.4'
@ -966,25 +966,25 @@ export default {
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
if (allPoints[i].style.fill != "rgb(211, 211, 211)") { if (allPoints[i].style.fill != "rgb(211, 211, 211)") {
activeModels.push(allPoints[i].__data__.Model) activeModels.push(allPoints[i].__data__.Model)
if (allPoints[i].__data__.Algorithm === 'K-Nearest Neighbors') { if (allPoints[i].__data__.Algorithm === 'KNN') {
algorithmsSelected.push('KNN') algorithmsSelected.push('KNN')
} else if (allPoints[i].__data__.Algorithm === 'C-Support Vector Classif') { } else if (allPoints[i].__data__.Algorithm === 'SVC') {
algorithmsSelected.push('SVC') algorithmsSelected.push('SVC')
} else if (allPoints[i].__data__.Algorithm === 'Gaussian Naive Bayes') { } else if (allPoints[i].__data__.Algorithm === 'GauNB') {
algorithmsSelected.push('GausNB') algorithmsSelected.push('GauNB')
} else if (allPoints[i].__data__.Algorithm === 'Multilayer Perceptron') { } else if (allPoints[i].__data__.Algorithm === 'MLP') {
algorithmsSelected.push('MLP') algorithmsSelected.push('MLP')
} else if (allPoints[i].__data__.Algorithm === 'Logistic Regression') { } else if (allPoints[i].__data__.Algorithm === 'LR') {
algorithmsSelected.push('LR') algorithmsSelected.push('LR')
} else if (allPoints[i].__data__.Algorithm === 'Linear Discrim Analysis') { } else if (allPoints[i].__data__.Algorithm === 'LDA') {
algorithmsSelected.push('LDA') algorithmsSelected.push('LDA')
} else if (allPoints[i].__data__.Algorithm === 'Quadratic Discrim Analysis') { } else if (allPoints[i].__data__.Algorithm === 'QDA') {
algorithmsSelected.push('QDA') algorithmsSelected.push('QDA')
} else if (allPoints[i].__data__.Algorithm === 'Random Forest') { } else if (allPoints[i].__data__.Algorithm === 'RF') {
algorithmsSelected.push('RF') algorithmsSelected.push('RF')
} else if (allPoints[i].__data__.Algorithm === 'Extra Trees') { } else if (allPoints[i].__data__.Algorithm === 'ExtraT') {
algorithmsSelected.push('ExtraT') algorithmsSelected.push('ExtraT')
} else if (allPoints[i].__data__.Algorithm === 'AdaBoost') { } else if (allPoints[i].__data__.Algorithm === 'AdaB') {
algorithmsSelected.push('AdaB') algorithmsSelected.push('AdaB')
} else { } else {
algorithmsSelected.push('GradB') algorithmsSelected.push('GradB')
@ -1010,25 +1010,25 @@ export default {
for (let i = 0; i < allPoints.length; i++) { for (let i = 0; i < allPoints.length; i++) {
if (allPoints[i].style.fill != "rgb(211, 211, 211)") { if (allPoints[i].style.fill != "rgb(211, 211, 211)") {
activeModels.push(allPoints[i].__data__.Model) activeModels.push(allPoints[i].__data__.Model)
if (allPoints[i].__data__.Algorithm === 'K-Nearest Neighbors') { if (allPoints[i].__data__.Algorithm === 'KNN') {
algorithmsSelected.push('KNN') algorithmsSelected.push('KNN')
} else if (allPoints[i].__data__.Algorithm === 'C-Support Vector Classif') { } else if (allPoints[i].__data__.Algorithm === 'SVC') {
algorithmsSelected.push('SVC') algorithmsSelected.push('SVC')
} else if (allPoints[i].__data__.Algorithm === 'Gaussian Naive Bayes') { } else if (allPoints[i].__data__.Algorithm === 'GauNB') {
algorithmsSelected.push('GausNB') algorithmsSelected.push('GauNB')
} else if (allPoints[i].__data__.Algorithm === 'Multilayer Perceptron') { } else if (allPoints[i].__data__.Algorithm === 'MLP') {
algorithmsSelected.push('MLP') algorithmsSelected.push('MLP')
} else if (allPoints[i].__data__.Algorithm === 'Logistic Regression') { } else if (allPoints[i].__data__.Algorithm === 'LR') {
algorithmsSelected.push('LR') algorithmsSelected.push('LR')
} else if (allPoints[i].__data__.Algorithm === 'Linear Discrim Analysis') { } else if (allPoints[i].__data__.Algorithm === 'LDA') {
algorithmsSelected.push('LDA') algorithmsSelected.push('LDA')
} else if (allPoints[i].__data__.Algorithm === 'Quadratic Discrim Analysis') { } else if (allPoints[i].__data__.Algorithm === 'QDA') {
algorithmsSelected.push('QDA') algorithmsSelected.push('QDA')
} else if (allPoints[i].__data__.Algorithm === 'Random Forest') { } else if (allPoints[i].__data__.Algorithm === 'RF') {
algorithmsSelected.push('RF') algorithmsSelected.push('RF')
} else if (allPoints[i].__data__.Algorithm === 'Extra Trees') { } else if (allPoints[i].__data__.Algorithm === 'ExtraT') {
algorithmsSelected.push('ExtraT') algorithmsSelected.push('ExtraT')
} else if (allPoints[i].__data__.Algorithm === 'AdaBoost') { } else if (allPoints[i].__data__.Algorithm === 'AdaB') {
algorithmsSelected.push('AdaB') algorithmsSelected.push('AdaB')
} else { } else {
algorithmsSelected.push('GradB') algorithmsSelected.push('GradB')
@ -1056,7 +1056,7 @@ export default {
$(el)[0].dispatchEvent(new Event('click')) $(el)[0].dispatchEvent(new Event('click'))
} else if (this.selectedAlgorithm == 'SVC') { } else if (this.selectedAlgorithm == 'SVC') {
$(el)[1].dispatchEvent(new Event('click')) $(el)[1].dispatchEvent(new Event('click'))
} else if (this.selectedAlgorithm == 'GausNB') { } else if (this.selectedAlgorithm == 'GauNB') {
$(el)[2].dispatchEvent(new Event('click')) $(el)[2].dispatchEvent(new Event('click'))
} else if (this.selectedAlgorithm == 'MLP') { } else if (this.selectedAlgorithm == 'MLP') {
$(el)[3].dispatchEvent(new Event('click')) $(el)[3].dispatchEvent(new Event('click'))

@ -1,7 +1,7 @@
<template> <template>
<b-row> <b-row>
<b-col cols="12"> <b-col cols="12">
<div id="barChart" class="barChart" style="min-height: 307px;"></div> <div id="barChart" class="barChart" style="min-height: 285px;"></div>
</b-col> </b-col>
</b-row> </b-row>
</template> </template>
@ -36,7 +36,8 @@ export default {
AdaBModels: 2766, AdaBModels: 2766,
GradBModels: 2926, GradBModels: 2926,
colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'], colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'],
WH: [] WH: [],
RetrieveDataSet: 'HeartC'
} }
}, },
methods: { methods: {
@ -104,7 +105,7 @@ export default {
KNNModels.push(JSON.parse(this.modelsSelectedinBar[i])) KNNModels.push(JSON.parse(this.modelsSelectedinBar[i]))
} else if (this.algorithmsinBar[i] === "SVC") { } else if (this.algorithmsinBar[i] === "SVC") {
SVCModels.push(JSON.parse(this.modelsSelectedinBar[i]) - this.SVCModels) SVCModels.push(JSON.parse(this.modelsSelectedinBar[i]) - this.SVCModels)
} else if (this.algorithmsinBar[i] === "GausNB") { } else if (this.algorithmsinBar[i] === "GauNB") {
GausNBModels.push(JSON.parse(this.modelsSelectedinBar[i] - this.GausNBModels)) GausNBModels.push(JSON.parse(this.modelsSelectedinBar[i] - this.GausNBModels))
} else if (this.algorithmsinBar[i] === "MLP") { } else if (this.algorithmsinBar[i] === "MLP") {
MLPModels.push(JSON.parse(this.modelsSelectedinBar[i]) - this.MLPModels) MLPModels.push(JSON.parse(this.modelsSelectedinBar[i]) - this.MLPModels)
@ -404,11 +405,11 @@ export default {
} }
Plotly.purge('barChart') Plotly.purge('barChart')
var layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, var layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
autosize: true, autosize: true,
barmode: 'group', barmode: 'group',
width: this.WH[0]*10, width: this.WH[0]*10.21,
height: this.WH[1]*0.635, height: this.WH[1]*0.59,
xaxis: { xaxis: {
title: 'Algorithm', title: 'Algorithm',
type:"category", type:"category",
@ -433,9 +434,9 @@ export default {
bargap:0.1, bargap:0.1,
bargroupgap: 0.2, bargroupgap: 0.2,
margin: { margin: {
l: 50, l: 40,
r: 0, r: 0,
b: 30, b: 0,
t: 40, t: 40,
pad: 0 pad: 0
}, },
@ -461,12 +462,26 @@ export default {
sumLineList[i] = keepSumLine sumLineList[i] = keepSumLine
} }
var beautifyLabels = []
if (this.RetrieveDataSet == 'StanceC') {
beautifyLabels.push('Absence of Hypotheticality')
beautifyLabels.push('Presence of Hypotheticality')
}
else if (this.RetrieveDataSet == 'HeartC') {
beautifyLabels.push('< 50% diameter narrowing / Healthy')
beautifyLabels.push('> 50% diameter narrowing / Diseased')
} else {
target_names.forEach(element => {
beautifyLabels.push(element)
});
}
for (var i = 0; i < target_names.length; i++) { for (var i = 0; i < target_names.length; i++) {
if (this.tNameAll == target_names[i]) { if (this.tNameAll == target_names[i]) {
traces[i] = { traces[i] = {
x: ['K-Nearest Neighbors','C-Support Vector Classif','Gaussian Naive Bayes','Multilayer Perceptron','Logistic Regression','Linear Discrim Analysis','Quadratic Discrim Analysis','Random Forest','Extra Trees','AdaBoost','Gradient Boosting'], x: ['KNN','SVC','GauNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'],
y: sumList[i], y: sumList[i],
name: '<b>'+target_names[i]+'</b>', name: '<b>'+beautifyLabels[i]+'</b>',
opacity: 0.5, opacity: 0.5,
marker: { marker: {
opacity: 0.5, opacity: 0.5,
@ -476,9 +491,9 @@ export default {
}; };
tracesSel[i] = { tracesSel[i] = {
type: 'bar', type: 'bar',
x: ['K-Nearest Neighbors','C-Support Vector Classif','Gaussian Naive Bayes','Multilayer Perceptron','Logistic Regression','Linear Discrim Analysis','Quadratic Discrim Analysis','Random Forest','Extra Trees','AdaBoost','Gradient Boosting'], x: ['KNN','SVC','GauNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'],
y: sumLineList[i], y: sumLineList[i],
name: '<b>'+target_names[i]+' (Sel)</b>', name: '<b>'+beautifyLabels[i]+' (Sel)</b>',
xaxis: 'x2', xaxis: 'x2',
mode: 'markers', mode: 'markers',
marker: { marker: {
@ -491,9 +506,9 @@ export default {
data.push(tracesSel[i]) data.push(tracesSel[i])
} else { } else {
traces[i] = { traces[i] = {
x: ['K-Nearest Neighbors','C-Support Vector Classif','Gaussian Naive Bayes','Multilayer Perceptron','Logistic Regression','Linear Discrim Analysis','Quadratic Discrim Analysis','Random Forest','Extra Trees','AdaBoost','Gradient Boosting'], x: ['KNN','SVC','GauNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'],
y: sumList[i], y: sumList[i],
name: target_names[i], name: beautifyLabels[i],
opacity: 0.5, opacity: 0.5,
marker: { marker: {
opacity: 0.5, opacity: 0.5,
@ -503,9 +518,9 @@ export default {
}; };
tracesSel[i] = { tracesSel[i] = {
type: 'bar', type: 'bar',
x: ['K-Nearest Neighbors','C-Support Vector Classif','Gaussian Naive Bayes','Multilayer Perceptron','Logistic Regression','Linear Discrim Analysis','Quadratic Discrim Analysis','Random Forest','Extra Trees','AdaBoost','Gradient Boosting'], x: ['KNN','SVC','GauNB','MLP','LR','LDA','QDA','RF','ExtraT','AdaB','GradB'],
y: sumLineList[i], y: sumLineList[i],
name: target_names[i]+' (Sel)', name: beautifyLabels[i]+' (Sel)',
xaxis: 'x2', xaxis: 'x2',
mode: 'markers', mode: 'markers',
marker: { marker: {
@ -564,6 +579,8 @@ export default {
// reset view // reset view
EventBus.$on('resetViews', this.reset) EventBus.$on('resetViews', this.reset)
EventBus.$on('SendToServerDataSetConfirmation', data => { this.RetrieveDataSet = data })
} }
} }
</script> </script>

@ -1,5 +1,5 @@
<template> <template>
<button style="float: right;" <button class="btn-outline-success" style="float: right;"
id="Execute" id="Execute"
v-on:click="execute"> v-on:click="execute">
<font-awesome-icon icon="play" /> <font-awesome-icon icon="play" />

@ -9,13 +9,13 @@
<option value="local">Upload New File</option> <option value="local">Upload New File</option>
</select> </select>
<button <button class="btn-outline-primary"
id="Confirm" id="Confirm"
v-on:click="confirm"> v-on:click="confirm">
<font-awesome-icon icon="check" /> <font-awesome-icon icon="check" />
{{ value }} {{ value }}
</button> </button>
<button <button class="btn-outline-danger"
id="Reset" id="Reset"
v-on:click="reset"> v-on:click="reset">
<font-awesome-icon icon="trash" /> <font-awesome-icon icon="trash" />

@ -72,6 +72,7 @@ export default {
restoreData: 'Restore Step', restoreData: 'Restore Step',
userSelectedFilter: 'mean', userSelectedFilter: 'mean',
responsiveWidthHeight: [], responsiveWidthHeight: [],
RetrieveDataSet: 'HeartC',
colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'], colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'],
} }
}, },
@ -134,17 +135,19 @@ export default {
const XandYCoordinatesTSNE = JSON.parse(this.dataPoints[5]) const XandYCoordinatesTSNE = JSON.parse(this.dataPoints[5])
const XandYCoordinatesUMAP = JSON.parse(this.dataPoints[6]) const XandYCoordinatesUMAP = JSON.parse(this.dataPoints[6])
const impSizeArray = JSON.parse(this.dataPoints[7]) const impSizeArray = JSON.parse(this.dataPoints[7])
const KNNSize = JSON.parse(impSizeArray[8]) const KNNSize = JSON.parse(impSizeArray[7])
const SVCSize = JSON.parse(impSizeArray[17]) const SVCSize = JSON.parse(impSizeArray[16])
const GausNBSize = JSON.parse(impSizeArray[26]) const GausNBSize = JSON.parse(impSizeArray[25])
const MLPSize = JSON.parse(impSizeArray[35]) const MLPSize = JSON.parse(impSizeArray[34])
const LRSize = JSON.parse(impSizeArray[44]) const LRSize = JSON.parse(impSizeArray[43])
const LDASize = JSON.parse(impSizeArray[53]) const LDASize = JSON.parse(impSizeArray[52])
const QDASize = JSON.parse(impSizeArray[62]) const QDASize = JSON.parse(impSizeArray[61])
const RFSize = JSON.parse(impSizeArray[71]) const RFSize = JSON.parse(impSizeArray[70])
const ExtraTSize = JSON.parse(impSizeArray[80]) const ExtraTSize = JSON.parse(impSizeArray[79])
const AdaBSize = JSON.parse(impSizeArray[89]) const AdaBSize = JSON.parse(impSizeArray[88])
const GradBSize = JSON.parse(impSizeArray[98]) const GradBSize = JSON.parse(impSizeArray[97])
console.log(KNNSize)
var sizeScatterplot = [] var sizeScatterplot = []
var scale = d3.scaleLinear() var scale = d3.scaleLinear()
@ -182,6 +185,20 @@ export default {
var traces = [] var traces = []
var layout = [] var layout = []
var beautifyLabels = []
if (this.RetrieveDataSet == 'StanceC') {
beautifyLabels.push('Absence of Hypotheticality')
beautifyLabels.push('Presence of Hypotheticality')
}
else if (this.RetrieveDataSet == 'HeartC') {
beautifyLabels.push('< 50% diameter narrowing / Healthy')
beautifyLabels.push('> 50% diameter narrowing / Diseased')
} else {
target_names.forEach(element => {
beautifyLabels.push(element)
});
}
for (let i = 0; i < target_names.length; i++) { for (let i = 0; i < target_names.length; i++) {
const aux_X = result.Xax.filter((item, index) => originalDataLabels[index] == target_names[i]); const aux_X = result.Xax.filter((item, index) => originalDataLabels[index] == target_names[i]);
@ -210,7 +227,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -219,7 +236,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 'MDS Projection', title: 'MDS Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -289,7 +306,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -298,7 +315,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 't-SNE Projection', title: 't-SNE Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -358,7 +375,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: Opacity, size: sizeScatterplot },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -367,7 +384,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 'UMAP Projection', title: 'UMAP Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -445,6 +462,8 @@ export default {
// reset view // reset view
EventBus.$on('resetViews', this.reset) EventBus.$on('resetViews', this.reset)
EventBus.$on('SendToServerDataSetConfirmation', data => { this.RetrieveDataSet = data })
} }
} }
</script> </script>

@ -1,5 +1,5 @@
<template> <template>
<div id="LinePlot" style="min-height: 306px;"></div> <div id="LinePlot" style="min-height: 365px;"></div>
</template> </template>
<script> <script>
@ -24,6 +24,10 @@ export default {
scoresSTD3: [], scoresSTD3: [],
scoresPositive3: [], scoresPositive3: [],
scoresNegative3: [], scoresNegative3: [],
scoresMean4: [],
scoresSTD4: [],
scoresPositive4: [],
scoresNegative4: [],
Stack_scoresMean: [], Stack_scoresMean: [],
Stack_scoresSTD: [], Stack_scoresSTD: [],
Stack_scoresPositive: [], Stack_scoresPositive: [],
@ -36,6 +40,10 @@ export default {
Stack_scoresSTD3: [], Stack_scoresSTD3: [],
Stack_scoresPositive3: [], Stack_scoresPositive3: [],
Stack_scoresNegative3: [], Stack_scoresNegative3: [],
Stack_scoresMean4: [],
Stack_scoresSTD4: [],
Stack_scoresPositive4: [],
Stack_scoresNegative4: [],
xaxis: [], xaxis: [],
WH: [] WH: []
} }
@ -61,34 +69,44 @@ export default {
this.scoresPositive2.push(parseFloat(this.scoresMean2[this.scoresMean2.length - 1]) + parseFloat(this.scoresSTD2[this.scoresSTD2.length - 1])) this.scoresPositive2.push(parseFloat(this.scoresMean2[this.scoresMean2.length - 1]) + parseFloat(this.scoresSTD2[this.scoresSTD2.length - 1]))
this.scoresNegative2.push(parseFloat(this.scoresMean2[this.scoresMean2.length - 1]) - parseFloat(this.scoresSTD2[this.scoresSTD2.length - 1])) this.scoresNegative2.push(parseFloat(this.scoresMean2[this.scoresMean2.length - 1]) - parseFloat(this.scoresSTD2[this.scoresSTD2.length - 1]))
this.scoresMean3.push((JSON.parse(this.FinalResultsforLinePlot[4])*100).toFixed(1)) this.scoresMean3.push((JSON.parse(this.FinalResultsforLinePlot[4])*100).toFixed(1))
this.scoresSTD3.push((JSON.parse(this.FinalResultsforLinePlot[5])*100).toFixed(1)) this.scoresSTD3.push((JSON.parse(this.FinalResultsforLinePlot[5])*100).toFixed(1))
this.scoresPositive3.push(parseFloat(this.scoresMean3[this.scoresMean3.length - 1]) + parseFloat(this.scoresSTD3[this.scoresSTD3.length - 1])) this.scoresPositive3.push(parseFloat(this.scoresMean3[this.scoresMean3.length - 1]) + parseFloat(this.scoresSTD3[this.scoresSTD3.length - 1]))
this.scoresNegative3.push(parseFloat(this.scoresMean3[this.scoresMean3.length - 1]) - parseFloat(this.scoresSTD3[this.scoresSTD3.length - 1])) this.scoresNegative3.push(parseFloat(this.scoresMean3[this.scoresMean3.length - 1]) - parseFloat(this.scoresSTD3[this.scoresSTD3.length - 1]))
this.scoresMean4.push((JSON.parse(this.FinalResultsforLinePlot[6])*100).toFixed(1))
this.scoresSTD4.push((JSON.parse(this.FinalResultsforLinePlot[7])*100).toFixed(1))
this.scoresPositive4.push(parseFloat(this.scoresMean4[this.scoresMean4.length - 1]) + parseFloat(this.scoresSTD4[this.scoresSTD4.length - 1]))
this.scoresNegative4.push(parseFloat(this.scoresMean4[this.scoresMean4.length - 1]) - parseFloat(this.scoresSTD4[this.scoresSTD4.length - 1]))
// Stack // Stack
this.Stack_scoresMean.push((JSON.parse(this.FinalResultsforLinePlot[6])*100).toFixed(1)) this.Stack_scoresMean.push((JSON.parse(this.FinalResultsforLinePlot[8])*100).toFixed(1))
this.Stack_scoresSTD.push((JSON.parse(this.FinalResultsforLinePlot[7])*100).toFixed(1)) this.Stack_scoresSTD.push((JSON.parse(this.FinalResultsforLinePlot[9])*100).toFixed(1))
this.Stack_scoresPositive.push(parseFloat(this.Stack_scoresMean[this.Stack_scoresMean.length - 1]) + parseFloat(this.Stack_scoresSTD[this.Stack_scoresSTD.length - 1])) this.Stack_scoresPositive.push(parseFloat(this.Stack_scoresMean[this.Stack_scoresMean.length - 1]) + parseFloat(this.Stack_scoresSTD[this.Stack_scoresSTD.length - 1]))
this.Stack_scoresNegative.push(parseFloat(this.Stack_scoresMean[this.Stack_scoresMean.length - 1]) - parseFloat(this.Stack_scoresSTD[this.Stack_scoresSTD.length - 1])) this.Stack_scoresNegative.push(parseFloat(this.Stack_scoresMean[this.Stack_scoresMean.length - 1]) - parseFloat(this.Stack_scoresSTD[this.Stack_scoresSTD.length - 1]))
this.Stack_scoresMean2.push((JSON.parse(this.FinalResultsforLinePlot[8])*100).toFixed(1)) this.Stack_scoresMean2.push((JSON.parse(this.FinalResultsforLinePlot[10])*100).toFixed(1))
this.Stack_scoresSTD2.push((JSON.parse(this.FinalResultsforLinePlot[9])*100).toFixed(1)) this.Stack_scoresSTD2.push((JSON.parse(this.FinalResultsforLinePlot[11])*100).toFixed(1))
this.Stack_scoresPositive2.push(parseFloat(this.Stack_scoresMean2[this.Stack_scoresMean2.length - 1]) + parseFloat(this.Stack_scoresSTD2[this.Stack_scoresSTD2.length - 1])) this.Stack_scoresPositive2.push(parseFloat(this.Stack_scoresMean2[this.Stack_scoresMean2.length - 1]) + parseFloat(this.Stack_scoresSTD2[this.Stack_scoresSTD2.length - 1]))
this.Stack_scoresNegative2.push(parseFloat(this.Stack_scoresMean2[this.Stack_scoresMean2.length - 1]) - parseFloat(this.Stack_scoresSTD2[this.Stack_scoresSTD2.length - 1])) this.Stack_scoresNegative2.push(parseFloat(this.Stack_scoresMean2[this.Stack_scoresMean2.length - 1]) - parseFloat(this.Stack_scoresSTD2[this.Stack_scoresSTD2.length - 1]))
this.Stack_scoresMean3.push((JSON.parse(this.FinalResultsforLinePlot[10])*100).toFixed(1)) this.Stack_scoresMean3.push((JSON.parse(this.FinalResultsforLinePlot[12])*100).toFixed(1))
this.Stack_scoresSTD3.push((JSON.parse(this.FinalResultsforLinePlot[11])*100).toFixed(1)) this.Stack_scoresSTD3.push((JSON.parse(this.FinalResultsforLinePlot[13])*100).toFixed(1))
this.Stack_scoresPositive3.push(parseFloat(this.Stack_scoresMean3[this.Stack_scoresMean3.length - 1]) + parseFloat(this.Stack_scoresSTD3[this.Stack_scoresSTD3.length - 1])) this.Stack_scoresPositive3.push(parseFloat(this.Stack_scoresMean3[this.Stack_scoresMean3.length - 1]) + parseFloat(this.Stack_scoresSTD3[this.Stack_scoresSTD3.length - 1]))
this.Stack_scoresNegative3.push(parseFloat(this.Stack_scoresMean3[this.Stack_scoresMean3.length - 1]) - parseFloat(this.Stack_scoresSTD3[this.Stack_scoresSTD3.length - 1])) this.Stack_scoresNegative3.push(parseFloat(this.Stack_scoresMean3[this.Stack_scoresMean3.length - 1]) - parseFloat(this.Stack_scoresSTD3[this.Stack_scoresSTD3.length - 1]))
this.Stack_scoresMean4.push((JSON.parse(this.FinalResultsforLinePlot[14])*100).toFixed(1))
this.Stack_scoresSTD4.push((JSON.parse(this.FinalResultsforLinePlot[15])*100).toFixed(1))
this.Stack_scoresPositive4.push(parseFloat(this.Stack_scoresMean4[this.Stack_scoresMean4.length - 1]) + parseFloat(this.Stack_scoresSTD4[this.Stack_scoresSTD4.length - 1]))
this.Stack_scoresNegative4.push(parseFloat(this.Stack_scoresMean4[this.Stack_scoresMean4.length - 1]) - parseFloat(this.Stack_scoresSTD4[this.Stack_scoresSTD4.length - 1]))
var xaxisReversed = [] var xaxisReversed = []
xaxisReversed = this.xaxis.slice().reverse() xaxisReversed = this.xaxis.slice().reverse()
@ -108,7 +126,7 @@ export default {
line: {color: "rgb(55,126,184)"}, line: {color: "rgb(55,126,184)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'pentagon' }, symbol: 'circle' },
name: "Active Accuracy", name: "Active Accuracy",
type: "scatter" type: "scatter"
} }
@ -133,7 +151,7 @@ export default {
line: {color: "rgb(55,126,184)"}, line: {color: "rgb(55,126,184)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'x' }, symbol: 'square' },
name: "Active Precision", name: "Active Precision",
type: "scatter" type: "scatter"
} }
@ -158,7 +176,7 @@ export default {
line: {color: "rgb(55,126,184)"}, line: {color: "rgb(55,126,184)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'diamond' }, symbol: 'triangle' },
name: "Active Recall", name: "Active Recall",
type: "scatter" type: "scatter"
} }
@ -176,21 +194,46 @@ export default {
type: "scatter" type: "scatter"
} }
var trace7 = {
x: this.xaxis,
y: this.scoresMean4,
text: text,
line: {color: "rgb(55,126,184)"},
mode: "lines+markers",
marker : {
symbol: 'diamond' },
name: "Active F1 Score",
type: "scatter"
}
var trace8 = {
x: xaxisReversed,
y: this.scoresPositive4.concat(this.scoresNegative4),
text: '',
hoverinfo: 'text',
fill: "tozerox",
fillcolor: "rgba(55,126,184,0)",
line: {color: "transparent"},
name: "Active F1 Score",
showlegend: false,
type: "scatter"
}
// Stack // Stack
var trace7 = { var trace9 = {
x: this.xaxis, x: this.xaxis,
y: this.Stack_scoresMean, y: this.Stack_scoresMean,
text: text, text: text,
line: {color: "rgb(228,26,28)"}, line: {color: "rgb(228,26,28)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'circle' }, symbol: 'x' },
name: "Stack Accuracy", name: "Stack Accuracy",
type: "scatter" type: "scatter"
} }
var trace8 = { var trace10 = {
x: xaxisReversed, x: xaxisReversed,
y: this.Stack_scoresPositive.concat(this.Stack_scoresNegative), y: this.Stack_scoresPositive.concat(this.Stack_scoresNegative),
text: '', text: '',
@ -203,19 +246,19 @@ export default {
type: "scatter" type: "scatter"
} }
var trace9 = { var trace11 = {
x: this.xaxis, x: this.xaxis,
y: this.Stack_scoresMean2, y: this.Stack_scoresMean2,
text: text, text: text,
line: {color: "rgb(228,26,28)"}, line: {color: "rgb(228,26,28)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'square' }, symbol: 'cross' },
name: "Stack Precision", name: "Stack Precision",
type: "scatter" type: "scatter"
} }
var trace10 = { var trace12 = {
x: xaxisReversed, x: xaxisReversed,
y: this.Stack_scoresPositive2.concat(this.Stack_scoresNegative2), y: this.Stack_scoresPositive2.concat(this.Stack_scoresNegative2),
text: '', text: '',
@ -228,19 +271,19 @@ export default {
type: "scatter" type: "scatter"
} }
var trace11 = { var trace13 = {
x: this.xaxis, x: this.xaxis,
y: this.Stack_scoresMean3, y: this.Stack_scoresMean3,
text: text, text: text,
line: {color: "rgb(228,26,28)"}, line: {color: "rgb(228,26,28)"},
mode: "lines+markers", mode: "lines+markers",
marker : { marker : {
symbol: 'star-triangle-up' }, symbol: 'pentagon' },
name: "Stack Recall", name: "Stack Recall",
type: "scatter" type: "scatter"
} }
var trace12 = { var trace14 = {
x: xaxisReversed, x: xaxisReversed,
y: this.Stack_scoresPositive3.concat(this.Stack_scoresNegative3), y: this.Stack_scoresPositive3.concat(this.Stack_scoresNegative3),
text: '', text: '',
@ -253,7 +296,32 @@ export default {
type: "scatter" type: "scatter"
} }
const DataforLinePlot = [trace1, trace2, trace7, trace8, trace3, trace4, trace9, trace10, trace5, trace6, trace11, trace12] var trace15 = {
x: this.xaxis,
y: this.Stack_scoresMean4,
text: text,
line: {color: "rgb(228,26,28)"},
mode: "lines+markers",
marker : {
symbol: 'hexagram' },
name: "Stack F1 Score",
type: "scatter"
}
var trace16 = {
x: xaxisReversed,
y: this.Stack_scoresPositive4.concat(this.Stack_scoresNegative4),
text: '',
hoverinfo: 'text',
fill: "tozerox",
fillcolor: "rgba(228,26,28,0)",
line: {color: "transparent"},
name: "Stack F1 Score",
showlegend: false,
type: "scatter"
}
const DataforLinePlot = [trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8, trace9, trace10, trace11, trace12, trace13, trace14, trace15, trace16]
var width = this.WH[0]*3 // interactive visualization var width = this.WH[0]*3 // interactive visualization
var height = this.WH[1]*0.6 // interactive visualization var height = this.WH[1]*0.6 // interactive visualization

@ -434,6 +434,7 @@ export default {
} }
finalresults.push(results) finalresults.push(results)
} }
console.log(finalresults)
EventBus.$emit('flagLocal', true) EventBus.$emit('flagLocal', true)
EventBus.$emit('sendSelectedFeaturestoPickle', finalresults) EventBus.$emit('sendSelectedFeaturestoPickle', finalresults)
EventBus.$emit('SendSelectedFeaturesEvent', finalresults) EventBus.$emit('SendSelectedFeaturesEvent', finalresults)

@ -4,9 +4,9 @@
<body> <body>
<b-container fluid class="bv-example-row"> <b-container fluid class="bv-example-row">
<b-row class="md-3"> <b-row class="md-3">
<b-col cols="3"> <b-col cols="3" >
<mdb-card> <mdb-card>
<mdb-card-header color="primary-color" tag="h5" class="text-center">Data Sets and Performance Metrics Manager</mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center" style="background-color: #C0C0C0;">Data Sets and Performance Metrics Manager</mdb-card-header>
<mdb-card-body> <mdb-card-body>
<mdb-card-text class="text-left" style="font-size: 18.5px;"> <mdb-card-text class="text-left" style="font-size: 18.5px;">
<DataSetExecController/> <DataSetExecController/>
@ -17,7 +17,7 @@
</b-col> </b-col>
<b-col cols="6"> <b-col cols="6">
<mdb-card> <mdb-card>
<mdb-card-header color="primary-color" tag="h5" class="text-center">Provenance of the Stacking Ensemble<small class="float-right"><knowledge/></small></mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center" style="background-color: #C0C0C0;"><small class="float-left"><knowledge/></small>History of the Stacking Ensemble<small class="float-right"><active/></small></mdb-card-header>
<mdb-card-body> <mdb-card-body>
<Provenance/> <Provenance/>
</mdb-card-body> </mdb-card-body>
@ -25,22 +25,23 @@
</b-col> </b-col>
<b-col cols="3"> <b-col cols="3">
<mdb-card> <mdb-card>
<mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [1, 3 (W), 4 (W)]</small>Performance of the Metamodel</mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center" style="background-color: #C0C0C0;"><small class="float-left" style="padding-top: 3px;"><font-awesome-icon class="fa-lg" icon="dice-four"/>&nbsp;Metrics Support: [M1, M3-M5 (W)]</small>Metamodel's Performance</mdb-card-header>
<mdb-card-body> <mdb-card-body>
<FinalResultsLinePlot/> <FinalResultsLinePlot/>
</mdb-card-body> </mdb-card-body>
</mdb-card> </mdb-card>
</b-col> </b-col>
</b-row> </b-row>
<hr/>
<ul class="nav nav-tabs" id="myTab" role="tablist" style="margin-top: 15px"> <ul class="nav nav-tabs" id="myTab" role="tablist" style="margin-top: 15px">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Algorithms</a> <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Algorithms' Exploration</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Data</a> <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Data Wrangling</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Models</a> <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Models' Exploration</a>
</li> </li>
</ul> </ul>
<div class="tab-content" id="myTabContent"> <div class="tab-content" id="myTabContent">
@ -49,14 +50,14 @@
<b-col cols="3"> <b-col cols="3">
<mdb-card style="margin-top: 15px"> <mdb-card style="margin-top: 15px">
<mdb-card-header color="primary-color" tag="h5" class="text-center">Overview of the Algorithms Space</mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center">Overview of the Algorithms Space</mdb-card-header>
<mdb-card-body class="text-left"> <mdb-card-body class="text-center">
<Parameters/> <Parameters/>
</mdb-card-body> </mdb-card-body>
</mdb-card> </mdb-card>
</b-col> </b-col>
<b-col cols="9"> <b-col cols="9">
<mdb-card style="margin-top: 15px;"> <mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [All]</small>Performance of the Algorithms [Sel: {{valueSel}} / All: {{valueAll}}]<small class="float-right"><Controller/></small></mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [All]</small>Performance of the Algorithms [Sel: {{valueSel}} / All: {{valueAll}}]<small class="float-right" style="font-size:85% !important"><Controller/></small></mdb-card-header>
<mdb-card-body> <mdb-card-body>
<Algorithms :width="width" :height="height"/> <Algorithms :width="width" :height="height"/>
</mdb-card-body> </mdb-card-body>
@ -74,7 +75,7 @@
</b-col> </b-col>
<b-col cols="9"> <b-col cols="9">
<mdb-card style="margin-top: 15px;"> <mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [3*, 4*, 5* (F1 Score)]</small>Performance of the Algorithms for Each Class<small class="float-right"><ResetClass/></small></mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;"><font-awesome-icon class="fa-lg" icon="dice-three"/>&nbsp;Metrics Support: [M3*, M4*, M5* (F1 Score)]</small>Performance of the Algorithms for Each Class<small class="float-right"><ResetClass/></small></mdb-card-header>
<mdb-card-body> <mdb-card-body>
<BarChart/> <BarChart/>
</mdb-card-body> </mdb-card-body>
@ -113,7 +114,7 @@
<b-row class="md-3"> <b-row class="md-3">
<b-col cols="6"> <b-col cols="6">
<mdb-card style="margin-top: 15px;"> <mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [All]</small>Models Space <mdb-card-header color="primary-color" tag="h5" class="text-center"><small class="float-left" style="padding-top: 3px;">Metrics Support: [All]</small>Models' Space
[Sel: {{OverSelLength}} / All: {{OverAllLength}}] [Sel: {{OverSelLength}} / All: {{OverAllLength}}]
</mdb-card-header> </mdb-card-header>
<mdb-card-body> <mdb-card-body>
@ -126,7 +127,7 @@
</b-col> </b-col>
<b-col cols="6"> <b-col cols="6">
<mdb-card style="margin-top: 15px;"> <mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center">Predictions Space</mdb-card-header> <mdb-card-header color="primary-color" tag="h5" class="text-center">Predictions' Space</mdb-card-header>
<mdb-card-body> <mdb-card-body>
<mdb-card-text class="text-center" style="min-height: 845px"> <mdb-card-text class="text-center" style="min-height: 845px">
<PredictionsSpace/> <PredictionsSpace/>
@ -169,6 +170,7 @@ import AlgorithmHyperParam from './AlgorithmHyperParam.vue'
import Controller from './Controller.vue' import Controller from './Controller.vue'
import ResetClass from './ResetClass.vue' import ResetClass from './ResetClass.vue'
import Knowledge from './Knowledge.vue' import Knowledge from './Knowledge.vue'
import Active from './Active.vue'
import Export from './Export.vue' import Export from './Export.vue'
import SlidersController from './SlidersController.vue' import SlidersController from './SlidersController.vue'
import ScatterPlot from './ScatterPlot.vue' import ScatterPlot from './ScatterPlot.vue'
@ -207,6 +209,7 @@ export default Vue.extend({
Controller, Controller,
ResetClass, ResetClass,
Knowledge, Knowledge,
Active,
SlidersController, SlidersController,
ScatterPlot, ScatterPlot,
PerMetricBarChart, PerMetricBarChart,
@ -320,7 +323,6 @@ export default Vue.extend({
.then(response => { .then(response => {
this.OverviewResults = response.data.OverviewResults this.OverviewResults = response.data.OverviewResults
console.log('Server successfully sent all the data related to visualizations!') console.log('Server successfully sent all the data related to visualizations!')
this.DataSpaceCallAfterDataManipulation()
EventBus.$emit('emittedEventCallingScatterPlot', this.OverviewResults) EventBus.$emit('emittedEventCallingScatterPlot', this.OverviewResults)
if (this.firstTimeFlag == 1) { if (this.firstTimeFlag == 1) {
this.selectedModels_Stack.push(0) this.selectedModels_Stack.push(0)
@ -347,6 +349,7 @@ export default Vue.extend({
EventBus.$emit('emittedEventCallingHeatmapView', this.OverviewResults) EventBus.$emit('emittedEventCallingHeatmapView', this.OverviewResults)
EventBus.$emit('emittedEventCallingPredictionsSpacePlotView', this.OverviewResults) EventBus.$emit('emittedEventCallingPredictionsSpacePlotView', this.OverviewResults)
EventBus.$emit('emittedEventCallingBalanceView', this.OverviewResults) EventBus.$emit('emittedEventCallingBalanceView', this.OverviewResults)
this.DataSpaceCall()
}) })
.catch(error => { .catch(error => {
console.log(error) console.log(error)
@ -404,7 +407,6 @@ export default Vue.extend({
this.OverSelLength = 0 this.OverSelLength = 0
EventBus.$emit('resetViews') EventBus.$emit('resetViews')
} else { } else {
console.log(this.ClassifierIDsList)
const path = `http://127.0.0.1:5000/data/ServerRequestSelPoin` const path = `http://127.0.0.1:5000/data/ServerRequestSelPoin`
const postData = { const postData = {
ClassifiersList: this.ClassifierIDsList, ClassifiersList: this.ClassifierIDsList,
@ -626,26 +628,6 @@ export default Vue.extend({
console.log(error) console.log(error)
}) })
}, },
DataSpaceCallAfterDataManipulation () {
const path = `http://localhost:5000/data/requestDataSpaceResultsAfterDataManipulation`
const axiosConfig = {
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Origin, Content-Type, X-Auth-Token',
'Access-Control-Allow-Methods': 'GET, PUT, POST, DELETE, OPTIONS'
}
}
axios.get(path, axiosConfig)
.then(response => {
console.log('Calling Data Space!')
this.DataSpaceCall()
})
.catch(error => {
console.log(error)
})
},
SendAlgorithmsToServer () { SendAlgorithmsToServer () {
const path = `http://127.0.0.1:5000/data/ServerRequestSelParameters` const path = `http://127.0.0.1:5000/data/ServerRequestSelParameters`
const postData = { const postData = {
@ -1068,12 +1050,23 @@ body {
right: 0px; right: 0px;
top: 0px; top: 0px;
bottom: 0px; bottom: 0px;
margin-top: 18px !important; margin-top: -4px !important;
} }
.modal-backdrop { .modal-backdrop {
z-index: -1 !important; z-index: -1 !important;
} }
.card-body {
padding: 0.60rem !important;
}
hr {
margin-top: 1rem;
margin-bottom: 1rem;
border: 0;
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
@import './../assets/w3.css'; @import './../assets/w3.css';
</style> </style>

@ -75,7 +75,7 @@ export default {
countAdaBRelated: [], countAdaBRelated: [],
countAdaB: 0, countAdaB: 0,
countGradBRelated: [], countGradBRelated: [],
countGradB: 0 countGradB: 0,
} }
}, },
methods: { methods: {
@ -89,7 +89,7 @@ export default {
var cfg = { var cfg = {
w: 600, //Width of the circle w: 600, //Width of the circle
h: 600, //Height of the circle h: 600, //Height of the circle
margin: {top: 20, right: 20, bottom: 20, left: 20}, //The margins around the circle margin: {top: 60, right: 20, bottom: 20, left: 120}, //The margins around the circle
legendPosition: {x: 20, y: 20}, // the position of the legend, from the top-left corner of the svg legendPosition: {x: 20, y: 20}, // the position of the legend, from the top-left corner of the svg
levels: 3, //How many levels or inner circles should there be drawn levels: 3, //How many levels or inner circles should there be drawn
maxValue: 0, //What is the value that the biggest circle will represent maxValue: 0, //What is the value that the biggest circle will represent
@ -105,6 +105,7 @@ export default {
areaName:"areaName", areaName:"areaName",
value: "value", value: "value",
sortAreas: true, sortAreas: true,
colorsDiff: ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#b15928']
}; };
//Put all of the options into a variable called cfg //Put all of the options into a variable called cfg
@ -174,6 +175,7 @@ export default {
.enter() .enter()
.append("circle") .append("circle")
.attr("class", "gridCircle") .attr("class", "gridCircle")
.attr("transform", "translate(5,5)")
.attr("r", function(d, i){return radius/cfg.levels*d;}) .attr("r", function(d, i){return radius/cfg.levels*d;})
.style("fill", "#CDCDCD") .style("fill", "#CDCDCD")
.style("stroke", "#CDCDCD") .style("stroke", "#CDCDCD")
@ -185,10 +187,10 @@ export default {
.data(d3.range(1,(cfg.levels+1)).reverse()) .data(d3.range(1,(cfg.levels+1)).reverse())
.enter().append("text") .enter().append("text")
.attr("class", "axisLabel") .attr("class", "axisLabel")
.attr("x", 4) .attr("x", 10)
.attr("y", function(d){return -d*radius/cfg.levels;}) .attr("y", function(d){return -d*radius/cfg.levels;})
.attr("dy", "0.4em") .attr("dy", "0.4em")
.style("font-size", "10px") .style("font-size", "16px")
.attr("fill", "#737373") .attr("fill", "#737373")
.text(function(d,i) { return Format(maxValue * d/cfg.levels); }); .text(function(d,i) { return Format(maxValue * d/cfg.levels); });
@ -206,19 +208,31 @@ export default {
axis.append("line") axis.append("line")
.attr("x1", 0) .attr("x1", 0)
.attr("y1", 0) .attr("y1", 0)
.attr("x2", function(d, i){ return rScale(maxValue*1.1) * Math.cos(angleSlice*i - Math.PI/2); }) .attr("transform", "translate(5,5)")
.attr("y2", function(d, i){ return rScale(maxValue*1.1) * Math.sin(angleSlice*i - Math.PI/2); }) .attr("x2", function(d, i){ return rScale(maxValue*1.2) * Math.cos(angleSlice*i - Math.PI/2); })
.attr("y2", function(d, i){ return rScale(maxValue*1.2) * Math.sin(angleSlice*i - Math.PI/2); })
.attr("class", "line") .attr("class", "line")
.style("stroke", "white") .style("stroke", "white")
.style("stroke-width", "2px"); .style("stroke-width", "2px");
axis.append("rect")
.attr("text-anchor", "left")
.attr("dy", "0.35em")
.attr("x", function(d, i){ return (rScale(maxValue * cfg.labelFactor) * Math.cos(angleSlice*i - Math.PI/2)) - 25; })
.attr("y", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.sin(angleSlice*i - Math.PI/2); })
.text(function(d){return d})
.attr("width", 15)
.attr("height", 15)
.style("fill", function(d,i) { return cfg.colorsDiff[i]; })
//Append the labels at each axis //Append the labels at each axis
axis.append("text") axis.append("text")
.attr("class", "legend") .attr("class", "legend")
.style("font-size", "11px") .style("font-size", "16px")
.attr("text-anchor", "middle") .attr("text-anchor", "middle")
.attr("dy", "0.35em") .attr("dy", "0em")
.attr("x", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.cos(angleSlice*i - Math.PI/2); }) .style("font-size", "16px")
.attr("x", function(d, i){ return (rScale(maxValue * cfg.labelFactor) * Math.cos(angleSlice*i - Math.PI/2)) + 15; })
.attr("y", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.sin(angleSlice*i - Math.PI/2); }) .attr("y", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.sin(angleSlice*i - Math.PI/2); })
.text(function(d){return d}) .text(function(d){return d})
.call(wrap, cfg.wrapWidth); .call(wrap, cfg.wrapWidth);
@ -241,6 +255,7 @@ export default {
var blobWrapper = g.selectAll(".radarWrapper") var blobWrapper = g.selectAll(".radarWrapper")
.data(data) .data(data)
.enter().append("g") .enter().append("g")
.attr("transform", "translate(5,5)")
.attr("class", "radarWrapper"); .attr("class", "radarWrapper");
//Append the backgrounds //Append the backgrounds
@ -316,8 +331,8 @@ export default {
newY = parseFloat(d3.select(this).attr('cy')) - 10; newY = parseFloat(d3.select(this).attr('cy')) - 10;
tooltip tooltip
.attr('x', newX) .attr('x', newX+5)
.attr('y', newY) .attr('y', newY+5)
.text(Format(d[value])) .text(Format(d[value]))
.transition().duration(200) .transition().duration(200)
.style('opacity', 1); .style('opacity', 1);
@ -619,9 +634,9 @@ export default {
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
var margin = {top: 50, right: 120, bottom: 55, left: 65}, var margin = {top: 50, right: 120, bottom: 55, left: 65},
legendPosition = {x: 425, y: 185}, legendPosition = {x: 425, y: 25},
width = Math.min(510, window.innerWidth - 10) - margin.left - margin.right, width = Math.min(520, window.innerWidth - 10) - margin.left - margin.right,
height = Math.min(width, window.innerHeight - margin.top - margin.bottom - 20); height = Math.min(width + 12, window.innerHeight + 12 - margin.top - margin.bottom);
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
////////////////////////// Data ////////////////////////////// ////////////////////////// Data //////////////////////////////
@ -629,29 +644,29 @@ export default {
var data = [ var data = [
[ [
{axis:"KNN [M 576]",legend:"Entire",value:KNNAll/max}, {axis:"KNN [576]",legend:"Entire",value:KNNAll/max},
{axis:"SVC [M 160]",legend:"Entire",value:SVCAll/max}, {axis:"SVC [160]",legend:"Entire",value:SVCAll/max},
{axis:"GausNB [M 500]",legend:"Entire",value:GausNBAll/max}, {axis:"GauNB [500]",legend:"Entire",value:GausNBAll/max},
{axis:"MLP [M 120]",legend:"Entire",value:MLPAll/max}, {axis:"MLP [120]",legend:"Entire",value:MLPAll/max},
{axis:"LR [M 640]",legend:"Entire",value:LRAll/max}, {axis:"LR [640]",legend:"Entire",value:LRAll/max},
{axis:"LDA [M 200]",legend:"Entire",value:LDAAll/max}, {axis:"LDA [200]",legend:"Entire",value:LDAAll/max},
{axis:"QDA [M 250]",legend:"Entire",value:QDAAll/max}, {axis:"QDA [250]",legend:"Entire",value:QDAAll/max},
{axis:"RF [M 160]",legend:"Entire",value:RFAll/max}, {axis:"RF [160]",legend:"Entire",value:RFAll/max},
{axis:"ExtraT [M 160]",legend:"Entire",value:ExtraTAll/max}, {axis:"ExtraT [160]",legend:"Entire",value:ExtraTAll/max},
{axis:"AdaB [M 160]",legend:"Entire",value:AdaBAll/max}, {axis:"AdaB [160]",legend:"Entire",value:AdaBAll/max},
{axis:"GradB [M 180]",legend:"Entire",value:GradBAll/max}, {axis:"GradB [180]",legend:"Entire",value:GradBAll/max},
],[ ],[
{axis:"KNN [M 576]",legend:"Selection",value:KNNSelection/max}, {axis:"KNN [576]",legend:"Selection",value:KNNSelection/max},
{axis:"SVC [M 160]",legend:"Selection",value:SVCSelection/max}, {axis:"SVC [160]",legend:"Selection",value:SVCSelection/max},
{axis:"GausNB [M 500]",legend:"Selection",value:GausNBSelection/max}, {axis:"GauNB [500]",legend:"Selection",value:GausNBSelection/max},
{axis:"MLP [M 120]",legend:"Selection",value:MLPSelection/max}, {axis:"MLP [120]",legend:"Selection",value:MLPSelection/max},
{axis:"LR [M 640]",legend:"Selection",value:LRSelection/max}, {axis:"LR [640]",legend:"Selection",value:LRSelection/max},
{axis:"LDA [M 200]",legend:"Selection",value:LDASelection/max}, {axis:"LDA [200]",legend:"Selection",value:LDASelection/max},
{axis:"QDA [M 250]",legend:"Selection",value:QDASelection/max}, {axis:"QDA [250]",legend:"Selection",value:QDASelection/max},
{axis:"RF [M 160]",legend:"Selectionn",value:RFSelection/max}, {axis:"RF [160]",legend:"Selectionn",value:RFSelection/max},
{axis:"ExtraT [M 160]",legend:"Selection",value:ExtraTSelection/max}, {axis:"ExtraT [160]",legend:"Selection",value:ExtraTSelection/max},
{axis:"AdaB [M 160]",legend:"Selection",value:AdaBSelection/max}, {axis:"AdaB [160]",legend:"Selection",value:AdaBSelection/max},
{axis:"GradB [M 180]",legend:"Selection",value:GradBSelection/max}, {axis:"GradB [180]",legend:"Selection",value:GradBSelection/max},
], ],
]; ];
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
@ -765,10 +780,12 @@ export default {
stroke: #fff; stroke: #fff;
stroke-width: 3px; stroke-width: 3px;
fill: url(#gradient-chart-area); fill: url(#gradient-chart-area);
transform: translate(5px, 5px);
} }
.center-circle { .center-circle {
fill: #fff; fill: #fff;
transform: translate(5px, 5px);
} }
.bars { .bars {
@ -778,6 +795,7 @@ export default {
.gridlines { .gridlines {
fill: none; fill: none;
stroke: #fff; stroke: #fff;
transform: translate(5px, 5px);
} }
.minor { .minor {
@ -796,12 +814,12 @@ export default {
.category-label-text { .category-label-text {
font-weight: bold; font-weight: bold;
font-size: 14px; font-size: 16px;
fill: #fff; fill: #fff;
} }
.question-label-text { .question-label-text {
font-size: 7px; font-size: 16px;
font-weight: bold; font-weight: bold;
fill: gray; fill: gray;
} }
@ -814,7 +832,7 @@ export default {
.category-labels { .category-labels {
text-anchor: middle; text-anchor: middle;
font-weight: bold; font-weight: bold;
font-size: 14px; font-size: 16px;
fill: #fff; fill: #fff;
} }
@ -823,6 +841,6 @@ export default {
} }
#overview { #overview {
min-height: 430px; min-height: 450px;
} }
</style> </style>

@ -80,12 +80,13 @@ export default {
} }
}; };
var data = [trace1, trace2]; var data = [trace1, trace2];
var layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, var layout = {
boxmode: 'group', boxmode: 'group',
autosize: true, autosize: true,
width: width, width: width,
height: height, height: height,
hovermode: 'x', hovermode: 'x',
font: { family: 'Helvetica', size: 14, color: '#000000' },
margin: { margin: {
l: 50, l: 50,
r: 0, r: 0,

@ -26,6 +26,7 @@ export default {
UpdatedData: '', UpdatedData: '',
representationDef: 'mds', representationDef: 'mds',
representationSelection: 'mds', representationSelection: 'mds',
RetrieveDataSet: 'HeartC',
colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'], colorsValues: ['#808000','#008080','#bebada','#fccde5','#d9d9d9','#bc80bd','#ccebc5'],
WH: [] WH: []
} }
@ -102,7 +103,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -111,7 +112,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 'MDS Projection', title: 'MDS Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -169,7 +170,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -178,7 +179,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 't-SNE Projection', title: 't-SNE Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -211,6 +212,20 @@ export default {
var traces = [] var traces = []
var beautifyLabels = []
if (this.RetrieveDataSet == 'StanceC') {
beautifyLabels.push('Absence of Hypotheticality')
beautifyLabels.push('Presence of Hypotheticality')
}
else if (this.RetrieveDataSet == 'HeartC') {
beautifyLabels.push('< 50% diameter narrowing / Healthy')
beautifyLabels.push('> 50% diameter narrowing / Diseased')
} else {
target_names.forEach(element => {
beautifyLabels.push(element)
});
}
for (let i = 0; i < target_names.length; i++) { for (let i = 0; i < target_names.length; i++) {
const aux_X = result.Xax.filter((item, index) => originalDataLabels[index] == target_names[i]); const aux_X = result.Xax.filter((item, index) => originalDataLabels[index] == target_names[i]);
@ -226,7 +241,7 @@ export default {
x: aux_X, x: aux_X,
y: aux_Y, y: aux_Y,
mode: 'markers', mode: 'markers',
name: target_names[i], name: beautifyLabels[i],
marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 }, marker: { color: this.colorsValues[i], line: { color: 'rgb(0, 0, 0)', width: 2 }, opacity: 1, size: 12 },
hovertemplate: hovertemplate:
"<b>%{text}</b><br><br>" + "<b>%{text}</b><br><br>" +
@ -235,7 +250,7 @@ export default {
}) })
} }
layout = {font: { family: 'Helvetica', size: 16, color: '#000000' }, layout = {font: { family: 'Helvetica', size: 14, color: '#000000' },
title: 'UMAP Projection', title: 'UMAP Projection',
xaxis: { xaxis: {
visible: false visible: false
@ -321,6 +336,8 @@ export default {
// reset the views // reset the views
EventBus.$on('resetViews', this.reset) EventBus.$on('resetViews', this.reset)
EventBus.$on('SendToServerDataSetConfirmation', data => { this.RetrieveDataSet = data })
} }
} }
</script> </script>

@ -1,8 +1,9 @@
<template> <template>
<div> <div>
<div class="squares-container" style="min-height: 306px;"> <div class="squares-container" style="min-height: 364px;">
<div id="tooltip"></div> <!-- new --> <div id="tooltip"></div> <!-- new -->
<canvas id="main-canvas" style="overflow-y: auto; height:290px;"></canvas> <div id="performanceCapture" style="min-height: 150px;"></div> <!-- new -->
<canvas id="main-canvas" style="overflow-y: auto; height:190px;"></canvas>
<br> <br>
<div id="dynamic-buttons"></div> <div id="dynamic-buttons"></div>
</div> </div>
@ -10,14 +11,9 @@
</template> </template>
<script> <script>
import * as d3Base from 'd3'
import { EventBus } from '../main.js' import { EventBus } from '../main.js'
import $ from 'jquery' import $ from 'jquery'
// attach all d3 plugins to the d3 library
const d3 = Object.assign(d3Base)
import * as Stardust from 'stardust-core' import * as Stardust from 'stardust-core'
import * as StardustGL from 'stardust-webgl' import * as StardustGL from 'stardust-webgl'
@ -72,7 +68,6 @@ export default {
var canvas = document.getElementById("main-canvas"); var canvas = document.getElementById("main-canvas");
var width = this.WH[0]*4 // interactive visualization var width = this.WH[0]*4 // interactive visualization
var height = this.WH[1]*0.58 // interactive visualization var height = this.WH[1]*0.58 // interactive visualization
console.log(width)
var flagKNN = 0 var flagKNN = 0
var flagSVC = 0 var flagSVC = 0
@ -88,6 +83,7 @@ export default {
var localStackStore = [] var localStackStore = []
var StackInfo = JSON.parse(this.stackInformation[1]) var StackInfo = JSON.parse(this.stackInformation[1])
console.log(StackInfo)
var arrayOfNumbers = StackInfo.map(Number) var arrayOfNumbers = StackInfo.map(Number)
this.storeData.push(arrayOfNumbers) this.storeData.push(arrayOfNumbers)
localStackStore = this.storeData.slice() localStackStore = this.storeData.slice()
@ -213,7 +209,9 @@ export default {
this.data.forEach(d => { this.data.forEach(d => {
if (d.column == this.counter) { if (d.column == this.counter) {
d.typeIndex = this.typeCounter[d.type]++; d.typeIndex = this.typeCounter[d.type]++;
console.log(d.typeIndex)
d.typeColumnIndex = this.typeColumnCounter[d.column]++; d.typeColumnIndex = this.typeColumnCounter[d.column]++;
console.log(d.typeColumnIndex)
} }
}); });
@ -226,7 +224,7 @@ export default {
let isotypeHeight = 18; let isotypeHeight = 18;
let colors = [[166,206,227], [31,120,180], [178,223,138], [51,160,44], [251,154,153], [227,26,28], [253,191,111], [255,127,0], [202,178,214], [106,61,154], [177,89,40]]; let colors = [[166,206,227], [31,120,180], [178,223,138], [51,160,44], [251,154,153], [227,26,28], [253,191,111], [255,127,0], [202,178,214], [106,61,154], [177,89,40]];
colors = colors.map(x => [x[0] / 255, x[1] / 255, x[2] / 255, 1]); colors = colors.map(x => [x[0] / 255, x[1] / 255, x[2] / 255, 1]);
// here 10 was 5!
let pScale = Stardust.scale.custom(` let pScale = Stardust.scale.custom(`
Vector2( Vector2(
20 + column * 100 + typeColumnIndex % 5 * 8, 20 + column * 100 + typeColumnIndex % 5 * 8,
@ -327,7 +325,7 @@ export default {
} }
} }
const stringStep = "Stack " const stringStep = "Stack Ensemble"
var myButton = '<button id="HistoryReturnButtons'+this.counter+'" class="dynamic_buttons">'+stringStep+this.counter+'</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' var myButton = '<button id="HistoryReturnButtons'+this.counter+'" class="dynamic_buttons">'+stringStep+this.counter+'</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
$("#dynamic-buttons").append(myButton); $("#dynamic-buttons").append(myButton);
@ -354,6 +352,103 @@ export default {
EventBus.$emit('ChangeKey', 0) EventBus.$emit('ChangeKey', 0)
} }
); );
var width = 150;
var arcSize = (6 * width / 100);
var innerRadius = arcSize * 3;
var data = [
{value: 45, label: "Accuracy", color: '#ff0000'},
{value: 33, label: "Precision", color: '#00ff00'},
{value: 66, label: "Recall", color: '#0000ff'},
{value: 50, label: "F1 Score", color: '#ffff00'}
];
function render() {
var svg = d3.select('#performanceCapture').append('svg').attr('width', width).attr('height', width);
var arcs = data.map(function (obj, i) {
return d3.svg.arc().innerRadius(i * arcSize + innerRadius).outerRadius((i + 1) * arcSize - (width / 100) + innerRadius);
});
var arcsGrey = data.map(function (obj, i) {
return d3.svg.arc().innerRadius(i * arcSize + (innerRadius + ((arcSize / 2) - 2))).outerRadius((i + 1) * arcSize - ((arcSize / 2)) + (innerRadius));
});
var pieData = data.map(function (obj, i) {
return [
{value: obj.value * 0.75, arc: arcs[i], object: obj},
{value: (100 - obj.value) * 0.75, arc: arcsGrey[i], object: obj},
{value: 100 * 0.25, arc: arcs[i], object: obj}];
});
var pie = d3.layout.pie().sort(null).value(function (d) {
return d.value;
});
var g = svg.selectAll('g').data(pieData).enter()
.append('g')
.attr('transform', 'translate(' + width / 2 + ',' + width / 2 + ') rotate(180)');
var gText = svg.selectAll('g.textClass').data([{}]).enter()
.append('g')
.classed('textClass', true)
.attr('transform', 'translate(' + width / 2 + ',' + width / 2 + ') rotate(180)');
g.selectAll('path').data(function (d) {
return pie(d);
}).enter().append('path')
.attr('id', function (d, i) {
if (i == 1) {
return "Text" + d.data.object.label
}
})
.attr('d', function (d) {
return d.data.arc(d);
}).attr('fill', function (d, i) {
return i == 0 ? d.data.object.color : i == 1 ? '#D3D3D3' : 'none';
});
svg.selectAll('g').each(function (d, index) {
var el = d3.select(this);
var path = el.selectAll('path').each(function (r, i) {
if (i === 1) {
var centroid = r.data.arc.centroid({
startAngle: r.startAngle + 0.05,
endAngle: r.startAngle + 0.001 + 0.05
});
var lableObj = r.data.object;
g.append('text')
.attr('font-size', ((5 * width) / 100))
.attr('dominant-baseline', 'central')
/*.attr('transform', "translate(" + centroid[0] + "," + (centroid[1] + 10) + ") rotate(" + (180 / Math.PI * r.startAngle + 7) + ")")
.attr('alignment-baseline', 'middle')*/
.append("textPath")
.attr("textLength", function (d, i) {
return 0;
})
.attr("xlink:href", "#Text" + r.data.object.label)
.attr("startOffset", '5')
.attr("dy", '-3em')
.text(lableObj.value + '%');
}
if (i === 0) {
var centroidText = r.data.arc.centroid({
startAngle: r.startAngle,
endAngle: r.startAngle
});
var lableObj = r.data.object;
gText.append('text')
.attr('font-size', ((5 * width) / 100))
.text(lableObj.label)
.attr('transform', "translate(" + (centroidText[0] - ((1.5 * width) / 100)) + "," + (centroidText[1] + ") rotate(" + (180) + ")"))
.attr('dominant-baseline', 'central');
}
});
});
}
render()
}, },
updateExtraction () { updateExtraction () {
EventBus.$emit('SendSelectedPointsToServerEvent', this.storeData[this.flagUpdated]) EventBus.$emit('SendSelectedPointsToServerEvent', this.storeData[this.flagUpdated])

@ -1,26 +1,57 @@
<template> <template>
<div> <div>
<b-row> <b-row>
<b-col cols="10"> <b-col cols="12">
<div id="WrapSliders"> <table class="table table-borderless table-sm">
<p>(1) Accuracy:<b-form-slider ref="basic1" v-model="basicValue1" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;padding-left:15px"></b-form-slider>{{ basicValue1 }}%</p> <tbody>
<p>(2*) G-Mean:<b-form-slider ref="basic2" v-model="basicValue2" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; padding-left:15px"></b-form-slider>{{ basicValue2 }}%</p> <tr>
<p>(3*) Precision:<b-form-slider ref="basic3" v-model="basicValue3" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; padding-left:15px"></b-form-slider>{{ basicValue3 }}%</p> <td>(M1) Accuracy:</td>
<p>(4*) Recall:<b-form-slider ref="basic4" v-model="basicValue4" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; padding-left:15px"></b-form-slider>{{ basicValue4 }}%</p> <td><b-form-slider ref="basic1" v-model="basicValue1" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;"></b-form-slider>{{ basicValue1 }}%</td>
<p>(5*) F-Beta Score:<b-form-slider ref="basic5" v-model="basicValue5" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; padding-left:15px"></b-form-slider >{{ basicValue5 }}%</p> <td style="text-align: center; width: 70px"><font-awesome-icon class="fa-lg" icon="dice-four"/></td>
<p>(6) MCC:<b-form-slider ref="basic6" v-model="basicValue6" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; padding-left:15px"></b-form-slider>{{ basicValue6 }}%</p> </tr>
<p>(7) ROC AUC:<b-form-slider ref="basic7" v-model="basicValue7" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;padding-left:15px"></b-form-slider>{{ basicValue7 }}%</p> <tr>
<p>(8) Log Loss:<b-form-slider ref="basic8" v-model="basicValue8" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;padding-left:15px"></b-form-slider>{{ basicValue8 }}%</p> <td>(M2*) G-Mean:</td>
</div> <td><b-form-slider ref="basic2" v-model="basicValue2" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;"></b-form-slider>{{ basicValue2 }}%</td>
</b-col> <td style="text-align: center; width: 70px"></td>
<b-col cols="2"> </tr>
<br> <tr>
<br> <td>(M3*) Precision:</td>
Deep Feature Search: <td><b-form-slider ref="basic3" v-model="basicValue3" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; "></b-form-slider>{{ basicValue3 }}%</td>
<input type="checkbox" id="toggleDeepID" data-toggle="toggle" checked="checked" data-on="Enabled" data-off="Disabled" data-size="small"> <td style="text-align: center; width: 70px"><font-awesome-icon class="fa-lg" icon="dice-three"/>&nbsp;<font-awesome-icon class="fa-lg" icon="dice-four"/></td>
</tr>
<tr>
<td>(M4*) Recall:</td>
<td><b-form-slider ref="basic4" v-model="basicValue4" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; "></b-form-slider>{{ basicValue4 }}%</td>
<td style="text-align: center; width: 70px"><font-awesome-icon class="fa-lg" icon="dice-three"/>&nbsp;<font-awesome-icon class="fa-lg" icon="dice-four"/></td>
</tr>
<tr>
<td width="185">(M5*) <select id="selectFilterBeta" @change="selectAppliedFilterBeta()" >
<option value="one" selected>F1 Score</option>
<option value="half">F0.5 Score</option>
<option value="two">F2 Score</option>
</select>:</td>
<td><b-form-slider ref="basic5" v-model="basicValue5" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; "></b-form-slider >{{ basicValue5 }}%</td>
<td style="text-align: center; width: 70px"><font-awesome-icon class="fa-lg" icon="dice-three"/>&nbsp;<font-awesome-icon class="fa-lg" icon="dice-four"/></td>
</tr>
<tr>
<td>(M6) MCC:</td>
<td><b-form-slider ref="basic6" v-model="basicValue6" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px; "></b-form-slider>{{ basicValue6 }}%</td>
<td style="text-align: center; width: 70px"></td>
</tr>
<tr>
<td>(M7) ROC AUC:</td>
<td><b-form-slider ref="basic7" v-model="basicValue7" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;"></b-form-slider>{{ basicValue7 }}%</td>
<td style="text-align: center; width: 70px"></td>
</tr>
<tr>
<td>(M8) Log Loss:</td>
<td><b-form-slider ref="basic8" v-model="basicValue8" :min="0" :max="100" trigger-change-event @slide-start="slideStart" @slide-stop="slideStop" style="padding-right: 15px;"></b-form-slider>{{ basicValue8 }}%</td>
<td style="text-align: center; width: 70px"></td>
</tr>
</tbody>
</table>
</b-col> </b-col>
</b-row> </b-row>
<br>
<b-row> <b-row>
<b-col cols="6"> <b-col cols="6">
<p>(*) Average: <select id="selectFilterAverage" @change="selectAppliedFilterAverage()"> <p>(*) Average: <select id="selectFilterAverage" @change="selectAppliedFilterAverage()">
@ -30,11 +61,7 @@
</select></p> </select></p>
</b-col> </b-col>
<b-col cols="6"> <b-col cols="6">
<p>(5) Beta Value: <select id="selectFilterBeta" @change="selectAppliedFilterBeta()"> <p>Detailed Feature Search: <input type="checkbox" id="toggleDeepID" data-toggle="toggle" checked="checked" data-on="Enabled" data-off="Disabled" data-size="small"></p>
<option value="one" selected>F1 Score</option>
<option value="half">F0.5 Score</option>
<option value="two">F2 Score</option>
</select></p>
</b-col> </b-col>
</b-row> </b-row>
</div> </div>
@ -217,9 +244,9 @@
}, },
mounted () { mounted () {
$('#toggleDeepID').bootstrapToggle({ $('#toggleDeepID').bootstrapToggle({
on: 'I', on: 'On',
off: '0', off: 'Off',
width: '50%', width: '20%',
}); });
$('#toggleDeepID').change(function() { $('#toggleDeepID').change(function() {
var toggleDeepSlid = document.getElementById('toggleDeepID') var toggleDeepSlid = document.getElementById('toggleDeepID')
@ -239,9 +266,9 @@ p {
padding: 0 !important; padding: 0 !important;
} }
/*.slider.slider-horizontal { .slider.slider-horizontal{
width: 300px !important; width:260px; /* sample value - set it as you like*/
}*/ }
.slider-handle { .slider-handle {
background: black; background: black;

@ -6,10 +6,10 @@ import 'bootstrap-vue/dist/bootstrap-vue.css'
import router from './router' import router from './router'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { faUpload, faPlay, faCheck, faSave, faTrash, faPlus, faBalanceScale, faMinus, faEraser, faClone, faObjectGroup, faUndo, faSyncAlt, faFileExport, faWindowClose, faHistory } from '@fortawesome/free-solid-svg-icons' import { faUpload, faPlay, faCheck, faSave, faTrash, faPlus, faBalanceScale, faMinus, faEraser, faClone, faObjectGroup, faUndo, faSyncAlt, faFileExport, faWindowClose, faHistory, faDiceThree, faDiceFour, faCalculator } from '@fortawesome/free-solid-svg-icons'
import bFormSlider from 'vue-bootstrap-slider' import bFormSlider from 'vue-bootstrap-slider'
library.add(faUpload, faPlay, faCheck, faSave, faTrash, faPlus, faBalanceScale, faMinus, faEraser, faClone, faObjectGroup, faUndo, faSyncAlt, faFileExport, faWindowClose, faHistory ) library.add(faUpload, faPlay, faCheck, faSave, faTrash, faPlus, faBalanceScale, faMinus, faEraser, faClone, faObjectGroup, faUndo, faSyncAlt, faFileExport, faWindowClose, faHistory, faDiceThree, faDiceFour,faCalculator )
Vue.component('font-awesome-icon', FontAwesomeIcon) Vue.component('font-awesome-icon', FontAwesomeIcon)

134
run.py

@ -388,30 +388,15 @@ def DataSetSelection():
XDataStored = XData.copy() XDataStored = XData.copy()
yDataStored = yData.copy() yDataStored = yData.copy()
callPreResults()
warnings.simplefilter('ignore') warnings.simplefilter('ignore')
return 'Everything is okay' return 'Everything is okay'
# Sending each model's results to frontend
@app.route('/data/requestDataSpaceResultsAfterDataManipulation', methods=["GET", "POST"])
def SendDataSpaceResultsAfterDataSpaceManipul():
callPreResults()
global preResults
response = {
'DataResults': preResults,
}
return jsonify(response)
def callPreResults(): def callPreResults():
global XData global XData
global yData global yData
global target_names global target_names
global allParametersPerformancePerModel global impDataInst
DataSpaceResMDS = FunMDS(XData) DataSpaceResMDS = FunMDS(XData)
DataSpaceResTSNE = FunTsne(XData) DataSpaceResTSNE = FunTsne(XData)
@ -430,7 +415,7 @@ def callPreResults():
preResults.append(json.dumps(AllTargets)) # Position: 4 preResults.append(json.dumps(AllTargets)) # Position: 4
preResults.append(json.dumps(DataSpaceResTSNE)) # Position: 5 preResults.append(json.dumps(DataSpaceResTSNE)) # Position: 5
preResults.append(json.dumps(DataSpaceUMAP)) # Position: 6 preResults.append(json.dumps(DataSpaceUMAP)) # Position: 6
preResults.append(json.dumps(allParametersPerformancePerModel)) # Position: 7 preResults.append(json.dumps(impDataInst)) # Position: 7
# Sending each model's results to frontend # Sending each model's results to frontend
@app.route('/data/requestDataSpaceResults', methods=["GET", "POST"]) @app.route('/data/requestDataSpaceResults', methods=["GET", "POST"])
@ -507,7 +492,7 @@ def RetrieveModel():
params = {'n_neighbors': list(range(1, 25)), 'metric': ['chebyshev', 'manhattan', 'euclidean', 'minkowski'], 'algorithm': ['brute', 'kd_tree', 'ball_tree'], 'weights': ['uniform', 'distance']} params = {'n_neighbors': list(range(1, 25)), 'metric': ['chebyshev', 'manhattan', 'euclidean', 'minkowski'], 'algorithm': ['brute', 'kd_tree', 'ball_tree'], 'weights': ['uniform', 'distance']}
AlgorithmsIDsEnd = 0 AlgorithmsIDsEnd = 0
elif (eachAlgor) == 'SVC': elif (eachAlgor) == 'SVC':
clf = SVC(probability=True) clf = SVC(probability=True,random_state=RANDOM_SEED)
params = {'C': list(np.arange(0.1,4.43,0.11)), 'kernel': ['rbf','linear', 'poly', 'sigmoid']} params = {'C': list(np.arange(0.1,4.43,0.11)), 'kernel': ['rbf','linear', 'poly', 'sigmoid']}
AlgorithmsIDsEnd = SVCModelsCount AlgorithmsIDsEnd = SVCModelsCount
elif (eachAlgor) == 'GausNB': elif (eachAlgor) == 'GausNB':
@ -515,11 +500,11 @@ def RetrieveModel():
params = {'var_smoothing': list(np.arange(0.00000000001,0.0000001,0.0000000002))} params = {'var_smoothing': list(np.arange(0.00000000001,0.0000001,0.0000000002))}
AlgorithmsIDsEnd = GausNBModelsCount AlgorithmsIDsEnd = GausNBModelsCount
elif (eachAlgor) == 'MLP': elif (eachAlgor) == 'MLP':
clf = MLPClassifier() clf = MLPClassifier(random_state=RANDOM_SEED)
params = {'alpha': list(np.arange(0.00001,0.001,0.0002)), 'tol': list(np.arange(0.00001,0.001,0.0004)), 'max_iter': list(np.arange(100,200,100)), 'activation': ['relu', 'identity', 'logistic', 'tanh'], 'solver' : ['adam', 'sgd']} params = {'alpha': list(np.arange(0.00001,0.001,0.0002)), 'tol': list(np.arange(0.00001,0.001,0.0004)), 'max_iter': list(np.arange(100,200,100)), 'activation': ['relu', 'identity', 'logistic', 'tanh'], 'solver' : ['adam', 'sgd']}
AlgorithmsIDsEnd = MLPModelsCount AlgorithmsIDsEnd = MLPModelsCount
elif (eachAlgor) == 'LR': elif (eachAlgor) == 'LR':
clf = LogisticRegression() clf = LogisticRegression(random_state=RANDOM_SEED)
params = {'C': list(np.arange(0.5,2,0.075)), 'max_iter': list(np.arange(50,250,50)), 'solver': ['lbfgs', 'newton-cg', 'sag', 'saga'], 'penalty': ['l2', 'none']} params = {'C': list(np.arange(0.5,2,0.075)), 'max_iter': list(np.arange(50,250,50)), 'solver': ['lbfgs', 'newton-cg', 'sag', 'saga'], 'penalty': ['l2', 'none']}
AlgorithmsIDsEnd = LRModelsCount AlgorithmsIDsEnd = LRModelsCount
elif (eachAlgor) == 'LDA': elif (eachAlgor) == 'LDA':
@ -531,19 +516,19 @@ def RetrieveModel():
params = {'reg_param': list(np.arange(0,1,0.02)), 'tol': list(np.arange(0.00001,0.001,0.0002))} params = {'reg_param': list(np.arange(0,1,0.02)), 'tol': list(np.arange(0.00001,0.001,0.0002))}
AlgorithmsIDsEnd = QDAModelsCount AlgorithmsIDsEnd = QDAModelsCount
elif (eachAlgor) == 'RF': elif (eachAlgor) == 'RF':
clf = RandomForestClassifier() clf = RandomForestClassifier(random_state=RANDOM_SEED)
params = {'n_estimators': list(range(60, 140)), 'criterion': ['gini', 'entropy']} params = {'n_estimators': list(range(60, 140)), 'criterion': ['gini', 'entropy']}
AlgorithmsIDsEnd = RFModelsCount AlgorithmsIDsEnd = RFModelsCount
elif (eachAlgor) == 'ExtraT': elif (eachAlgor) == 'ExtraT':
clf = ExtraTreesClassifier() clf = ExtraTreesClassifier(random_state=RANDOM_SEED)
params = {'n_estimators': list(range(60, 140)), 'criterion': ['gini', 'entropy']} params = {'n_estimators': list(range(60, 140)), 'criterion': ['gini', 'entropy']}
AlgorithmsIDsEnd = ExtraTModelsCount AlgorithmsIDsEnd = ExtraTModelsCount
elif (eachAlgor) == 'AdaB': elif (eachAlgor) == 'AdaB':
clf = AdaBoostClassifier() clf = AdaBoostClassifier(random_state=RANDOM_SEED)
params = {'n_estimators': list(range(40, 80)), 'learning_rate': list(np.arange(0.1,2.3,1.1)), 'algorithm': ['SAMME.R', 'SAMME']} params = {'n_estimators': list(range(40, 80)), 'learning_rate': list(np.arange(0.1,2.3,1.1)), 'algorithm': ['SAMME.R', 'SAMME']}
AlgorithmsIDsEnd = AdaBModelsCount AlgorithmsIDsEnd = AdaBModelsCount
else: else:
clf = GradientBoostingClassifier() clf = GradientBoostingClassifier(random_state=RANDOM_SEED)
params = {'n_estimators': list(range(85, 115)), 'learning_rate': list(np.arange(0.01,0.23,0.11)), 'criterion': ['friedman_mse', 'mse', 'mae']} params = {'n_estimators': list(range(85, 115)), 'learning_rate': list(np.arange(0.01,0.23,0.11)), 'criterion': ['friedman_mse', 'mse', 'mae']}
AlgorithmsIDsEnd = GradBModelsCount AlgorithmsIDsEnd = GradBModelsCount
allParametersPerformancePerModel = GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd, toggle) allParametersPerformancePerModel = GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd, toggle)
@ -620,6 +605,8 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
PerFeatureAccuracyAll = [] PerFeatureAccuracyAll = []
PerClassMetric = [] PerClassMetric = []
perModelProb = [] perModelProb = []
perModelPrediction = []
resultsMicro = [] resultsMicro = []
resultsMacro = [] resultsMacro = []
resultsWeighted = [] resultsWeighted = []
@ -642,7 +629,8 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
inputs = range(len(XData)) inputs = range(len(XData))
num_cores = multiprocessing.cpu_count() num_cores = multiprocessing.cpu_count()
impDataInst = Parallel(n_jobs=num_cores)(delayed(processInput)(i,XData,yData,crossValidation,clf) for i in inputs) #impDataInst = Parallel(n_jobs=num_cores)(delayed(processInput)(i,XData,yData,crossValidation,clf) for i in inputs)
for eachModelParameters in parametersLocalNew: for eachModelParameters in parametersLocalNew:
clf.set_params(**eachModelParameters) clf.set_params(**eachModelParameters)
if (toggle == 1): if (toggle == 1):
@ -660,6 +648,7 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
clf.fit(XData, yData) clf.fit(XData, yData)
yPredict = clf.predict(XData) yPredict = clf.predict(XData)
yPredict = np.nan_to_num(yPredict) yPredict = np.nan_to_num(yPredict)
perModelPrediction.append(yPredict)
# retrieve target names (class names) # retrieve target names (class names)
PerClassMetric.append(classification_report(yData, yPredict, target_names=target_names, digits=2, output_dict=True)) PerClassMetric.append(classification_report(yData, yPredict, target_names=target_names, digits=2, output_dict=True))
yPredictProb = clf.predict_proba(XData) yPredictProb = clf.predict_proba(XData)
@ -685,7 +674,7 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
resultsWeightedBeta2.append(fbeta_score(yData, yPredict, average='weighted', beta=2)) resultsWeightedBeta2.append(fbeta_score(yData, yPredict, average='weighted', beta=2))
resultsLogLoss.append(log_loss(yData, yPredictProb, normalize=True)) resultsLogLoss.append(log_loss(yData, yPredictProb, normalize=True))
print('perase')
maxLog = max(resultsLogLoss) maxLog = max(resultsLogLoss)
minLog = min(resultsLogLoss) minLog = min(resultsLogLoss)
for each in resultsLogLoss: for each in resultsLogLoss:
@ -711,6 +700,10 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
metrics.insert(loop+13,'log_loss',resultsLogLossFinal) metrics.insert(loop+13,'log_loss',resultsLogLossFinal)
perModelPredPandas = pd.DataFrame(perModelPrediction)
print(perModelPredPandas)
perModelPredPandas = perModelPredPandas.to_json()
perModelProbPandas = pd.DataFrame(perModelProb) perModelProbPandas = pd.DataFrame(perModelProb)
perModelProbPandas = perModelProbPandas.to_json() perModelProbPandas = perModelProbPandas.to_json()
@ -746,7 +739,7 @@ def GridSearchForModels(XData, yData, clf, params, eachAlgor, AlgorithmsIDsEnd,
metrics = metrics.to_json() metrics = metrics.to_json()
results.append(metrics) # Position: 6 and so on results.append(metrics) # Position: 6 and so on
results.append(perModelProbPandas) # Position: 7 and so on results.append(perModelProbPandas) # Position: 7 and so on
results.append(json.dumps(impDataInst)) # Position: 8 and so on results.append(json.dumps(perModelPredPandas)) # Position: 8 and so on
return results return results
@ -1500,6 +1493,8 @@ def InitializeEnsemble():
XModels = PreprocessingMetrics() XModels = PreprocessingMetrics()
global ModelSpaceMDS global ModelSpaceMDS
global ModelSpaceTSNE global ModelSpaceTSNE
global allParametersPerformancePerModel
global impDataInst
XModels = XModels.fillna(0) XModels = XModels.fillna(0)
@ -1515,11 +1510,67 @@ def InitializeEnsemble():
PredictionSpaceUMAP = FunUMAP(PredictionProbSel) PredictionSpaceUMAP = FunUMAP(PredictionProbSel)
ModelsIDs = preProceModels() ModelsIDs = preProceModels()
impDataInst = processDataInstance(ModelsIDs,allParametersPerformancePerModel)
key = 0 key = 0
EnsembleModel(ModelsIDs, key) EnsembleModel(ModelsIDs, key)
ReturnResults(ModelSpaceMDS,ModelSpaceTSNE,ModelSpaceUMAP,PredictionSpaceMDS,PredictionSpaceTSNE,PredictionSpaceUMAP) ReturnResults(ModelSpaceMDS,ModelSpaceTSNE,ModelSpaceUMAP,PredictionSpaceMDS,PredictionSpaceTSNE,PredictionSpaceUMAP)
def processDataInstance(ModelsIDs, allParametersPerformancePerModel):
dicKNN = json.loads(allParametersPerformancePerModel[8])
dicSVC = json.loads(allParametersPerformancePerModel[17])
dicGausNB = json.loads(allParametersPerformancePerModel[26])
dicMLP = json.loads(allParametersPerformancePerModel[35])
dicLR = json.loads(allParametersPerformancePerModel[44])
dicLDA = json.loads(allParametersPerformancePerModel[53])
dicQDA = json.loads(allParametersPerformancePerModel[62])
dicRF = json.loads(allParametersPerformancePerModel[71])
dicExtraT = json.loads(allParametersPerformancePerModel[70])
dicAdaB = json.loads(allParametersPerformancePerModel[89])
dicGradB = json.loads(allParametersPerformancePerModel[98])
dfKNN = pd.DataFrame.from_dict(dicKNN)
dfSVC = pd.DataFrame.from_dict(dicSVC)
dfGausNB = pd.DataFrame.from_dict(dicGausNB)
dfMLP = pd.DataFrame.from_dict(dicMLP)
dfLR = pd.DataFrame.from_dict(dicLR)
dfLDA = pd.DataFrame.from_dict(dicLDA)
dfQDA = pd.DataFrame.from_dict(dicQDA)
dfRF = pd.DataFrame.from_dict(dicRF)
dfExtraT = pd.DataFrame.from_dict(dicExtraT)
dfAdaB = pd.DataFrame.from_dict(dicAdaB)
dfGradB = pd.DataFrame.from_dict(dicGradB)
dfKNN.index = dfKNN.index.astype(int)
dfSVC.index = dfSVC.index.astype(int) + SVCModelsCount
dfGausNB.index = dfGausNB.index.astype(int) + GausNBModelsCount
dfMLP.index = dfMLP.index.astype(int) + MLPModelsCount
dfLR.index = dfLR.index.astype(int) + LRModelsCount
dfLDA.index = dfLDA.index.astype(int) + LDAModelsCount
dfQDA.index = dfQDA.index.astype(int) + QDAModelsCount
dfRF.index = dfRF.index.astype(int) + RFModelsCount
dfExtraT.index = dfExtraT.index.astype(int) + ExtraTModelsCount
dfAdaB.index = dfAdaB.index.astype(int) + AdaBModelsCount
dfGradB.index = dfGradB.index.astype(int) + GradBModelsCount
dfKNNFiltered = dfKNN.loc[KNNModels, :]
dfSVCFiltered = dfSVC.loc[SVCModels, :]
dfGausNBFiltered = dfGausNB.loc[GausNBModels, :]
dfMLPFiltered = dfMLP.loc[MLPModels, :]
dfLRFiltered = dfLR.loc[LRModels, :]
dfLDAFiltered = dfLDA.loc[LDAModels, :]
dfQDAFiltered = dfQDA.loc[QDAModels, :]
dfRFFiltered = dfRF.loc[RFModels, :]
dfExtraTFiltered = dfExtraT.loc[ExtraTModels, :]
dfAdaBFiltered = dfAdaB.loc[AdaBModels, :]
dfGradBFiltered = dfGradB.loc[GradBModels, :]
df_connect = pd.concat([dfKNNFiltered, dfSVCFiltered, dfGausNBFiltered, dfMLPFiltered, dfLRFiltered, dfLDAFiltered, dfQDAFiltered, dfRFFiltered, dfExtraTFiltered, dfAdaBFiltered, dfGradBFiltered])
print(df_connect.sum(axis=1))
return df_connect
def ReturnResults(ModelSpaceMDS,ModelSpaceTSNE,ModelSpaceUMAP,PredictionSpaceMDS,PredictionSpaceTSNE,PredictionSpaceUMAP): def ReturnResults(ModelSpaceMDS,ModelSpaceTSNE,ModelSpaceUMAP,PredictionSpaceMDS,PredictionSpaceTSNE,PredictionSpaceUMAP):
global Results global Results
@ -1589,7 +1640,6 @@ def RetrieveSelClassifiersIDandRemoveFromStack():
global resultsUpdatePredictionSpace global resultsUpdatePredictionSpace
resultsUpdatePredictionSpace = [] resultsUpdatePredictionSpace = []
print(PredictionProbSelUpdate)
resultsUpdatePredictionSpace.append(json.dumps(PredictionProbSelUpdate[0])) # Position: 0 resultsUpdatePredictionSpace.append(json.dumps(PredictionProbSelUpdate[0])) # Position: 0
resultsUpdatePredictionSpace.append(json.dumps(PredictionProbSelUpdate[1])) resultsUpdatePredictionSpace.append(json.dumps(PredictionProbSelUpdate[1]))
@ -1827,7 +1877,7 @@ def RetrieveSelDataPoints():
params = RetrieveParamsClearedListKNN params = RetrieveParamsClearedListKNN
AlgorithmsIDsEnd = 0 AlgorithmsIDsEnd = 0
elif (eachAlgor) == 'SVC': elif (eachAlgor) == 'SVC':
clf = SVC(probability=True) clf = SVC(probability=True,random_state=RANDOM_SEED)
params = RetrieveParamsClearedListSVC params = RetrieveParamsClearedListSVC
AlgorithmsIDsEnd = SVCModelsCount AlgorithmsIDsEnd = SVCModelsCount
elif (eachAlgor) == 'GausNB': elif (eachAlgor) == 'GausNB':
@ -1835,11 +1885,11 @@ def RetrieveSelDataPoints():
params = RetrieveParamsClearedListGausNB params = RetrieveParamsClearedListGausNB
AlgorithmsIDsEnd = GausNBModelsCount AlgorithmsIDsEnd = GausNBModelsCount
elif (eachAlgor) == 'MLP': elif (eachAlgor) == 'MLP':
clf = MLPClassifier() clf = MLPClassifier(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListMLP params = RetrieveParamsClearedListMLP
AlgorithmsIDsEnd = MLPModelsCount AlgorithmsIDsEnd = MLPModelsCount
elif (eachAlgor) == 'LR': elif (eachAlgor) == 'LR':
clf = LogisticRegression() clf = LogisticRegression(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListLR params = RetrieveParamsClearedListLR
AlgorithmsIDsEnd = LRModelsCount AlgorithmsIDsEnd = LRModelsCount
elif (eachAlgor) == 'LDA': elif (eachAlgor) == 'LDA':
@ -1851,19 +1901,19 @@ def RetrieveSelDataPoints():
params = RetrieveParamsClearedListQDA params = RetrieveParamsClearedListQDA
AlgorithmsIDsEnd = QDAModelsCount AlgorithmsIDsEnd = QDAModelsCount
elif (eachAlgor) == 'RF': elif (eachAlgor) == 'RF':
clf = RandomForestClassifier() clf = RandomForestClassifier(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListRF params = RetrieveParamsClearedListRF
AlgorithmsIDsEnd = RFModelsCount AlgorithmsIDsEnd = RFModelsCount
elif (eachAlgor) == 'ExtraT': elif (eachAlgor) == 'ExtraT':
clf = ExtraTreesClassifier() clf = ExtraTreesClassifier(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListExtraT params = RetrieveParamsClearedListExtraT
AlgorithmsIDsEnd = ExtraTModelsCount AlgorithmsIDsEnd = ExtraTModelsCount
elif (eachAlgor) == 'AdaB': elif (eachAlgor) == 'AdaB':
clf = AdaBoostClassifier() clf = AdaBoostClassifier(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListGradB params = RetrieveParamsClearedListGradB
AlgorithmsIDsEnd = AdaBModelsCount AlgorithmsIDsEnd = AdaBModelsCount
else: else:
clf = GradientBoostingClassifier() clf = GradientBoostingClassifier(random_state=RANDOM_SEED)
params = RetrieveParamsClearedListGradB params = RetrieveParamsClearedListGradB
AlgorithmsIDsEnd = GradBModelsCount AlgorithmsIDsEnd = GradBModelsCount
metricsSelList = GridSearchSel(clf, params, factors, AlgorithmsIDsEnd, listofDataPoints) metricsSelList = GridSearchSel(clf, params, factors, AlgorithmsIDsEnd, listofDataPoints)
@ -2367,7 +2417,7 @@ def EnsembleModel(Models, keyRetrieved):
global yData global yData
global sclf global sclf
lr = LogisticRegression() lr = LogisticRegression(random_state=RANDOM_SEED)
if (keyRetrieved == 0): if (keyRetrieved == 0):
all_classifiers = [] all_classifiers = []
@ -2721,7 +2771,7 @@ def EnsembleModel(Models, keyRetrieved):
# del columnsReduce[0:len(resultsList[index][1])] # del columnsReduce[0:len(resultsList[index][1])]
# else: # else:
# for j, each in enumerate(resultsList[index][1]): # for j, each in enumerate(resultsList[index][1]):
# all_classifiersSelection.append(make_pipeline(ColumnSelector(cols=columnsReduce[j]), RandomForestClassifier().set_params(**each))) # all_classifiersSelection.append(make_pipeline(ColumnSelector(cols=columnsReduce[j]), RandomForestClassifier(random_state=RANDOM_SEED).set_params(**each)))
# del columnsReduce[0:len(resultsList[index][1])] # del columnsReduce[0:len(resultsList[index][1])]
# sclf = StackingCVClassifier(classifiers=all_classifiersSelection, # sclf = StackingCVClassifier(classifiers=all_classifiersSelection,
# use_probas=True, # use_probas=True,
@ -2733,7 +2783,7 @@ def EnsembleModel(Models, keyRetrieved):
pass pass
else: else:
num_cores = multiprocessing.cpu_count() num_cores = multiprocessing.cpu_count()
inputsSc = ['accuracy','precision_weighted','recall_weighted','accuracy','precision_weighted','recall_weighted'] inputsSc = ['accuracy','precision_weighted','recall_weighted','accuracy','precision_weighted','recall_weighted','f1_weighted','f1_weighted']
flat_results = Parallel(n_jobs=num_cores)(delayed(solve)(sclf,sclfStack,XData,yData,crossValidation,item,index) for index, item in enumerate(inputsSc)) flat_results = Parallel(n_jobs=num_cores)(delayed(solve)(sclf,sclfStack,XData,yData,crossValidation,item,index) for index, item in enumerate(inputsSc))
scores = [item for sublist in flat_results for item in sublist] scores = [item for sublist in flat_results for item in sublist]
@ -2749,14 +2799,6 @@ def solve(sclf,sclfStack,XData,yData,crossValidation,scoringIn,loop):
scoresLoc.append(temp.std()) scoresLoc.append(temp.std())
return scoresLoc return scoresLoc
def processInput(indexValue,XData,yData,crossValidation,sclf):
XDataRemove = XData.copy()
XDataRemove.drop(indexValue, inplace=True)
yDataRemove = yData.copy()
del yDataRemove[indexValue]
tempRemove = model_selection.cross_val_score(sclf, XDataRemove, yDataRemove, cv=crossValidation, scoring='accuracy', n_jobs=-1)
return tempRemove.mean()
# Sending the final results to be visualized as a line plot # Sending the final results to be visualized as a line plot
@app.route('/data/SendFinalResultsBacktoVisualize', methods=["GET", "POST"]) @app.route('/data/SendFinalResultsBacktoVisualize', methods=["GET", "POST"])
def SendToPlotFinalResults(): def SendToPlotFinalResults():

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save