diff --git a/__pycache__/run.cpython-38.pyc b/__pycache__/run.cpython-38.pyc
index 7e24ac9..22d455c 100644
Binary files a/__pycache__/run.cpython-38.pyc and b/__pycache__/run.cpython-38.pyc differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/031611c241ba479d18e1372b83d0b576/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/031611c241ba479d18e1372b83d0b576/output.pkl
new file mode 100644
index 0000000..3c95086
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/031611c241ba479d18e1372b83d0b576/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/08076429e1f4a912207d8f1318e23956/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/08076429e1f4a912207d8f1318e23956/output.pkl
new file mode 100644
index 0000000..03f86f8
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/08076429e1f4a912207d8f1318e23956/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/0ac4b1e38d060ee7705418ad7d40ac9b/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/0ac4b1e38d060ee7705418ad7d40ac9b/output.pkl
new file mode 100644
index 0000000..7ed6830
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/0ac4b1e38d060ee7705418ad7d40ac9b/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/1ed1e3543e5b8c0b8ed8273e2b6d737b/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/1ed1e3543e5b8c0b8ed8273e2b6d737b/metadata.json
new file mode 100644
index 0000000..adfb1b2
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/1ed1e3543e5b8c0b8ed8273e2b6d737b/metadata.json
@@ -0,0 +1 @@
+{"duration": 7.470085859298706, "input_args": {"Data": " F1 F2 F3 F4\n0 2.5 3.3 6.3 6.0\n1 1.9 2.7 5.8 5.1\n2 2.1 3.0 7.1 5.9\n3 1.8 2.9 6.3 5.6\n4 2.2 3.0 6.5 5.8\n.. ... ... ... ...\n145 0.3 3.0 4.8 1.4\n146 0.2 3.8 5.1 1.6\n147 0.2 3.2 4.6 1.4\n148 0.2 3.7 5.3 1.5\n149 0.2 3.3 5.0 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=9.044474534604408, gamma=0.1, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/2bc28dfd99c9f6a65f1d74e67cd622bb/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/2bc28dfd99c9f6a65f1d74e67cd622bb/output.pkl
new file mode 100644
index 0000000..2487c0c
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/2bc28dfd99c9f6a65f1d74e67cd622bb/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/metadata.json
new file mode 100644
index 0000000..e2cbdf5
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/metadata.json
@@ -0,0 +1 @@
+{"duration": 2.0144307613372803, "input_args": {"Data": " F1 F2_mms F3 F4 F1xF3\n0 2.5 0.541667 6.3 6.0 15.75\n1 1.9 0.291667 5.8 5.1 11.02\n2 2.1 0.416667 7.1 5.9 14.91\n3 1.8 0.375000 6.3 5.6 11.34\n4 2.2 0.416667 6.5 5.8 14.30\n.. ... ... ... ... ...\n145 0.3 0.416667 4.8 1.4 1.44\n146 0.2 0.750000 5.1 1.6 1.02\n147 0.2 0.500000 4.6 1.4 0.92\n148 0.2 0.708333 5.3 1.5 1.06\n149 0.2 0.541667 5.0 1.4 1.00\n\n[150 rows x 5 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/output.pkl
new file mode 100644
index 0000000..30bd2fa
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/2ea39cd41bf1eea844679842787364a7/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/3f0623bf82584c5a558248b65b02e98a/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/3f0623bf82584c5a558248b65b02e98a/output.pkl
new file mode 100644
index 0000000..5dc1d53
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/3f0623bf82584c5a558248b65b02e98a/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/61cd7da84c1bbfd3fb974c2dba5bf7df/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/61cd7da84c1bbfd3fb974c2dba5bf7df/output.pkl
new file mode 100644
index 0000000..75e575e
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/61cd7da84c1bbfd3fb974c2dba5bf7df/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/6c4a3c6ccc38028fd8eb8e3cafea6fb8/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/6c4a3c6ccc38028fd8eb8e3cafea6fb8/metadata.json
new file mode 100644
index 0000000..f025dba
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/6c4a3c6ccc38028fd8eb8e3cafea6fb8/metadata.json
@@ -0,0 +1 @@
+{"duration": 2.988314151763916, "input_args": {"Data": " F1 F2 F3_l10 F4\n0 2.5 3.3 0.298389 6.0\n1 1.9 2.7 0.282605 5.1\n2 2.1 3.0 0.320533 5.9\n3 1.8 2.9 0.298389 5.6\n4 2.2 3.0 0.304254 5.8\n.. ... ... ... ...\n145 0.3 3.0 0.244984 1.4\n146 0.2 3.8 0.257268 1.6\n147 0.2 3.2 0.236226 1.4\n148 0.2 3.7 0.264948 1.5\n149 0.2 3.3 0.253280 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/77fea9bd3b261749a4919132a55d4c8b/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/77fea9bd3b261749a4919132a55d4c8b/metadata.json
new file mode 100644
index 0000000..fb858dc
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/77fea9bd3b261749a4919132a55d4c8b/metadata.json
@@ -0,0 +1 @@
+{"duration": 7.335001707077026, "input_args": {"Data": " F1 F2 F3 F4\n0 2.5 3.3 6.3 6.0\n1 1.9 2.7 5.8 5.1\n2 2.1 3.0 7.1 5.9\n3 1.8 2.9 6.3 5.6\n4 2.2 3.0 6.5 5.8\n.. ... ... ... ...\n145 0.3 3.0 4.8 1.4\n146 0.2 3.8 5.1 1.6\n147 0.2 3.2 4.6 1.4\n148 0.2 3.7 5.3 1.5\n149 0.2 3.3 5.0 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=46.46493418419044, gamma=0.1, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/7b0a5c188fd9aceb09dfd157de9124db/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/7b0a5c188fd9aceb09dfd157de9124db/output.pkl
new file mode 100644
index 0000000..d601d91
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/7b0a5c188fd9aceb09dfd157de9124db/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/883ab89549bbca0bfafb9f9e5a3e0400/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/883ab89549bbca0bfafb9f9e5a3e0400/output.pkl
new file mode 100644
index 0000000..ee077ca
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/883ab89549bbca0bfafb9f9e5a3e0400/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/8acd1de1317c1ff3977e18a58b7d3733/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/8acd1de1317c1ff3977e18a58b7d3733/metadata.json
new file mode 100644
index 0000000..0723e58
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/8acd1de1317c1ff3977e18a58b7d3733/metadata.json
@@ -0,0 +1 @@
+{"duration": 3.0411131381988525, "input_args": {"Data": " F1 F2 F3_l1p F4\n0 2.5 3.3 1.987874 6.0\n1 1.9 2.7 1.916923 5.1\n2 2.1 3.0 2.091864 5.9\n3 1.8 2.9 1.987874 5.6\n4 2.2 3.0 2.014903 5.8\n.. ... ... ... ...\n145 0.3 3.0 1.757858 1.4\n146 0.2 3.8 1.808289 1.6\n147 0.2 3.2 1.722767 1.4\n148 0.2 3.7 1.840550 1.5\n149 0.2 3.3 1.791759 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/94da8e9a31bea28d8ff8ea53a406d37b/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/94da8e9a31bea28d8ff8ea53a406d37b/metadata.json
new file mode 100644
index 0000000..59577ce
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/94da8e9a31bea28d8ff8ea53a406d37b/metadata.json
@@ -0,0 +1 @@
+{"duration": 8.3280029296875, "input_args": {"Data": " F1 F2 F3 F4\n0 2.5 3.3 6.3 6.0\n1 1.9 2.7 5.8 5.1\n2 2.1 3.0 7.1 5.9\n3 1.8 2.9 6.3 5.6\n4 2.2 3.0 6.5 5.8\n.. ... ... ... ...\n145 0.3 3.0 4.8 1.4\n146 0.2 3.8 5.1 1.6\n147 0.2 3.2 4.6 1.4\n148 0.2 3.7 5.3 1.5\n149 0.2 3.3 5.0 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=4.407539756085735, gamma=0.1935853267468035, probability=True,\n random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/9902cbfccf20447a3c3f958bc3ba28f0/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/9902cbfccf20447a3c3f958bc3ba28f0/metadata.json
new file mode 100644
index 0000000..cb38325
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/9902cbfccf20447a3c3f958bc3ba28f0/metadata.json
@@ -0,0 +1 @@
+{"duration": 5.4526307582855225, "input_args": {"Data": " F1 F2_mms F3 F4\n0 2.5 0.541667 6.3 6.0\n1 1.9 0.291667 5.8 5.1\n2 2.1 0.416667 7.1 5.9\n3 1.8 0.375000 6.3 5.6\n4 2.2 0.416667 6.5 5.8\n.. ... ... ... ...\n145 0.3 0.416667 4.8 1.4\n146 0.2 0.750000 5.1 1.6\n147 0.2 0.500000 4.6 1.4\n148 0.2 0.708333 5.3 1.5\n149 0.2 0.541667 5.0 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/9a08c17b423b35a0c58bb1d4053f6ab9/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/9a08c17b423b35a0c58bb1d4053f6ab9/metadata.json
new file mode 100644
index 0000000..b1324f1
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/9a08c17b423b35a0c58bb1d4053f6ab9/metadata.json
@@ -0,0 +1 @@
+{"duration": 8.652288913726807, "input_args": {"Data": " F1 F2 F3 F4\n0 2.5 3.3 6.3 6.0\n1 1.9 2.7 5.8 5.1\n2 2.1 3.0 7.1 5.9\n3 1.8 2.9 6.3 5.6\n4 2.2 3.0 6.5 5.8\n.. ... ... ... ...\n145 0.3 3.0 4.8 1.4\n146 0.2 3.8 5.1 1.6\n147 0.2 3.2 4.6 1.4\n148 0.2 3.7 5.3 1.5\n149 0.2 3.3 5.0 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/a42f327147499bdd5ab86868e8668849/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/a42f327147499bdd5ab86868e8668849/metadata.json
new file mode 100644
index 0000000..122b063
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/a42f327147499bdd5ab86868e8668849/metadata.json
@@ -0,0 +1 @@
+{"duration": 3.5112879276275635, "input_args": {"Data": " F1 F3 F1+F3 |F1-F3| F1xF3 F1/F3 F3/F1\n0 2.5 6.3 8.8 3.8 15.75 0.396825 2.520000\n1 1.9 5.8 7.7 3.9 11.02 0.327586 3.052632\n2 2.1 7.1 9.2 5.0 14.91 0.295775 3.380952\n3 1.8 6.3 8.1 4.5 11.34 0.285714 3.500000\n4 2.2 6.5 8.7 4.3 14.30 0.338462 2.954545\n.. ... ... ... ... ... ... ...\n145 0.3 4.8 5.1 4.5 1.44 0.062500 16.000000\n146 0.2 5.1 5.3 4.9 1.02 0.039216 25.500000\n147 0.2 4.6 4.8 4.4 0.92 0.043478 23.000000\n148 0.2 5.3 5.5 5.1 1.06 0.037736 26.500000\n149 0.2 5.0 5.2 4.8 1.00 0.040000 25.000000\n\n[150 rows x 7 columns]", "clf": "SVC(C=44.03816499590499, gamma=0.01, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/bb0856b15a01508f89cf610063750776/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/bb0856b15a01508f89cf610063750776/output.pkl
new file mode 100644
index 0000000..3ef6690
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/bb0856b15a01508f89cf610063750776/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/c01cd11e96d9a10fbadcce2961183ecd/output.pkl b/cachedir/joblib/run/estimatorFeatureSelection/c01cd11e96d9a10fbadcce2961183ecd/output.pkl
new file mode 100644
index 0000000..d5f72d4
Binary files /dev/null and b/cachedir/joblib/run/estimatorFeatureSelection/c01cd11e96d9a10fbadcce2961183ecd/output.pkl differ
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/c5a7d28fb08d1dd352f1a14ab72c2f82/metadata.json b/cachedir/joblib/run/estimatorFeatureSelection/c5a7d28fb08d1dd352f1a14ab72c2f82/metadata.json
new file mode 100644
index 0000000..213f29c
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/c5a7d28fb08d1dd352f1a14ab72c2f82/metadata.json
@@ -0,0 +1 @@
+{"duration": 2.5880067348480225, "input_args": {"Data": " F1 F2 F3_l1p F4\n0 2.5 3.3 1.987874 6.0\n1 1.9 2.7 1.916923 5.1\n2 2.1 3.0 2.091864 5.9\n3 1.8 2.9 1.987874 5.6\n4 2.2 3.0 2.014903 5.8\n.. ... ... ... ...\n145 0.3 3.0 1.757858 1.4\n146 0.2 3.8 1.808289 1.6\n147 0.2 3.2 1.722767 1.4\n148 0.2 3.7 1.840550 1.5\n149 0.2 3.3 1.791759 1.4\n\n[150 rows x 4 columns]", "clf": "SVC(C=46.46493418419044, gamma=0.1, probability=True, random_state=42)"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/estimatorFeatureSelection/func_code.py b/cachedir/joblib/run/estimatorFeatureSelection/func_code.py
new file mode 100644
index 0000000..18788dc
--- /dev/null
+++ b/cachedir/joblib/run/estimatorFeatureSelection/func_code.py
@@ -0,0 +1,99 @@
+# first line: 687
+@memory.cache
+def estimatorFeatureSelection(Data, clf):
+
+ resultsFS = []
+ permList = []
+ PerFeatureAccuracy = []
+ PerFeatureAccuracyAll = []
+ ImpurityFS = []
+ RankingFS = []
+
+ rf = RandomForestClassifier(n_estimators = 100,
+ n_jobs = -1,
+ random_state = RANDOM_SEED)
+ rf.fit(Data, yData)
+
+ importances = rf.feature_importances_
+
+ std = np.std([tree.feature_importances_ for tree in rf.estimators_],
+ axis=0)
+
+ maxList = max(importances)
+ minList = min(importances)
+
+ for f in range(Data.shape[1]):
+ ImpurityFS.append((importances[f] - minList) / (maxList - minList))
+
+ estim = LogisticRegression(n_jobs = -1, random_state=RANDOM_SEED)
+
+ selector = RFECV(estimator=estim, n_jobs = -1, step=1, cv=crossValidation)
+ selector = selector.fit(Data, yData)
+ RFEImp = selector.ranking_
+
+ for f in range(Data.shape[1]):
+ if (RFEImp[f] == 1):
+ RankingFS.append(0.95)
+ elif (RFEImp[f] == 2):
+ RankingFS.append(0.85)
+ elif (RFEImp[f] == 3):
+ RankingFS.append(0.75)
+ elif (RFEImp[f] == 4):
+ RankingFS.append(0.65)
+ elif (RFEImp[f] == 5):
+ RankingFS.append(0.55)
+ elif (RFEImp[f] == 6):
+ RankingFS.append(0.45)
+ elif (RFEImp[f] == 7):
+ RankingFS.append(0.35)
+ elif (RFEImp[f] == 8):
+ RankingFS.append(0.25)
+ elif (RFEImp[f] == 9):
+ RankingFS.append(0.15)
+ else:
+ RankingFS.append(0.05)
+
+ perm = PermutationImportance(clf, cv=None, refit = True, n_iter = 25).fit(Data, yData)
+ permList.append(perm.feature_importances_)
+ n_feats = Data.shape[1]
+
+ num_cores = multiprocessing.cpu_count()
+ print("Parallelization Initialized")
+ flat_results = Parallel(n_jobs=num_cores)(delayed(featFun)(clf,Data.values[:, i].reshape(-1, 1),yData) for i in range(n_feats))
+ PerFeatureAccuracy = [item for sublist in flat_results for item in sublist]
+ # for i in range(n_feats):
+ # scoresHere = model_selection.cross_val_score(clf, Data.values[:, i].reshape(-1, 1), yData, cv=None, n_jobs=-1)
+ # PerFeatureAccuracy.append(scoresHere.mean())
+ PerFeatureAccuracyAll.append(PerFeatureAccuracy)
+
+ clf.fit(Data, yData)
+ yPredict = clf.predict(Data)
+ yPredict = np.nan_to_num(yPredict)
+
+ RankingFSDF = pd.DataFrame(RankingFS)
+ RankingFSDF = RankingFSDF.to_json()
+
+ ImpurityFSDF = pd.DataFrame(ImpurityFS)
+ ImpurityFSDF = ImpurityFSDF.to_json()
+
+ perm_imp_eli5PD = pd.DataFrame(permList)
+ perm_imp_eli5PD = perm_imp_eli5PD.to_json()
+
+ PerFeatureAccuracyPandas = pd.DataFrame(PerFeatureAccuracyAll)
+ PerFeatureAccuracyPandas = PerFeatureAccuracyPandas.to_json()
+
+ bestfeatures = SelectKBest(score_func=f_classif, k='all')
+ fit = bestfeatures.fit(Data,yData)
+ dfscores = pd.DataFrame(fit.scores_)
+ dfcolumns = pd.DataFrame(Data.columns)
+ featureScores = pd.concat([dfcolumns,dfscores],axis=1)
+ featureScores.columns = ['Specs','Score'] #naming the dataframe columns
+ featureScores = featureScores.to_json()
+
+ resultsFS.append(featureScores)
+ resultsFS.append(ImpurityFSDF)
+ resultsFS.append(perm_imp_eli5PD)
+ resultsFS.append(PerFeatureAccuracyPandas)
+ resultsFS.append(RankingFSDF)
+
+ return resultsFS
diff --git a/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/metadata.json b/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/metadata.json
new file mode 100644
index 0000000..c587c57
--- /dev/null
+++ b/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/metadata.json
@@ -0,0 +1 @@
+{"duration": 13.781832933425903, "input_args": {"exeCall": "[]", "flagEx": "0", "nodeTransfName": "''"}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/output.pkl b/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/output.pkl
new file mode 100644
index 0000000..a3e6767
Binary files /dev/null and b/cachedir/joblib/run/executeModel/12cb5fa7abfa03ab029a92fa8c40616f/output.pkl differ
diff --git a/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/metadata.json b/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/metadata.json
deleted file mode 100644
index 5c9e06e..0000000
--- a/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/metadata.json
+++ /dev/null
@@ -1 +0,0 @@
-{"duration": 7.80327582359314, "input_args": {}}
\ No newline at end of file
diff --git a/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/output.pkl b/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/output.pkl
deleted file mode 100644
index 76b1d12..0000000
Binary files a/cachedir/joblib/run/executeModel/72a755383fba437e4dead6ff3e3d81e3/output.pkl and /dev/null differ
diff --git a/cachedir/joblib/run/executeModel/func_code.py b/cachedir/joblib/run/executeModel/func_code.py
index 99cbee6..7bc61ad 100644
--- a/cachedir/joblib/run/executeModel/func_code.py
+++ b/cachedir/joblib/run/executeModel/func_code.py
@@ -1,15 +1,175 @@
-# first line: 457
+# first line: 473
@memory.cache
-def executeModel():
+# check this issue later because we are not getting the same results
+def executeModel(exeCall, flagEx, nodeTransfName):
- create_global_function()
+ global keyFirstTime
global estimator
+ global yPredictProb
+ global scores
+ global featureImportanceData
+ global XData
+ global XDataStored
+ global previousState
+ global columnsNewGen
+ global columnsNames
+ global listofTransformations
+ global XDataStoredOriginal
+ global finalResultsData
+ columnsNames = []
+ scores = []
- params = {"C": (0.0001, 10000), "gamma": (0.0001, 10000)}
- svc_bayesopt = BayesianOptimization(estimator, params)
- svc_bayesopt.maximize(init_points=10, n_iter=25, acq='ucb')
- bestParams = svc_bayesopt.max['params']
- estimator = SVC(C=bestParams.get('C'), gamma=bestParams.get('gamma'), probability=True)
+ if (len(exeCall) == 0):
+ if (flagEx == 3):
+ XDataStored = XData.copy()
+ else:
+ XData = XDataStored.copy()
+ XDataStoredOriginal = XDataStored.copy()
+ else:
+ if (flagEx == 4):
+ XDataStored = XData.copy()
+ else:
+ XData = XDataStored.copy()
+ XDataStoredOriginal = XDataStored.copy()
+ columnsNewGen = keepOriginalFeatures.columns.values.tolist()
+ # Bayesian Optimization for 150 iterations
+ if (keyFirstTime):
+ create_global_function()
+ params = {"C": (0.0001, 10000), "gamma": (0.0001, 10000)}
+ svc_bayesopt = BayesianOptimization(estimator, params, random_state=RANDOM_SEED)
+ svc_bayesopt.maximize(init_points=130, n_iter=20, acq='ucb')
+ bestParams = svc_bayesopt.max['params']
+ estimator = SVC(C=bestParams.get('C'), gamma=bestParams.get('gamma'), probability=True, random_state=RANDOM_SEED)
+
+ if (len(exeCall) != 0):
+ if (flagEx == 1):
+ XData = XData.drop(XData.columns[exeCall], axis=1)
+ XDataStoredOriginal = XDataStoredOriginal.drop(XDataStoredOriginal.columns[exeCall], axis=1)
+ elif (flagEx == 2):
+ columnsKeepNew = []
+ columns = XDataGen.columns.values.tolist()
+ for indx, col in enumerate(columns):
+ if indx in exeCall:
+ columnsKeepNew.append(col)
+ columnsNewGen.append(col)
+
+ XDataTemp = XDataGen[columnsKeepNew]
+ XData[columnsKeepNew] = XDataTemp.values
+ XDataStoredOriginal[columnsKeepNew] = XDataTemp.values
+ elif (flagEx == 4):
+ splittedCol = nodeTransfName.split('_')
+ XData.rename(columns={ XData.columns[exeCall[0]]: nodeTransfName }, inplace = True)
+ currentColumn = columnsNewGen[exeCall[0]]
+ subString = currentColumn[currentColumn.find("(")+1:currentColumn.find(")")]
+ replacement = currentColumn.replace(subString, nodeTransfName)
+ storePositions.append(exeCall[0])
+ storeReplacements.append(replacement)
+ pos = 0
+ for repl in storeReplacements:
+ columnsNewGen[storePositions[pos]] = repl
+ pos += 1
+ if (len(splittedCol) == 1):
+ XData[nodeTransfName] = XDataStoredOriginal[nodeTransfName]
+ else:
+ if (splittedCol[1] == 'r'):
+ XData[nodeTransfName] = XData[nodeTransfName].round()
+ elif (splittedCol[1] == 'b'):
+ number_of_bins = np.histogram_bin_edges(XData[nodeTransfName], bins='auto')
+ emptyLabels = []
+ for index, number in enumerate(number_of_bins):
+ if (index == 0):
+ pass
+ else:
+ emptyLabels.append(index)
+ XData[nodeTransfName] = pd.cut(XData[nodeTransfName], bins=number_of_bins, labels=emptyLabels, include_lowest=True, right=True)
+ XData[nodeTransfName] = pd.to_numeric(XData[nodeTransfName], downcast='signed')
+ elif (splittedCol[1] == 'zs'):
+ zScore = (XData[nodeTransfName]-XData[nodeTransfName].mean())/XData[nodeTransfName].std()
+ XData[nodeTransfName] = abs(zScore.min()) + zScore
+ elif (splittedCol[1] == 'mms'):
+ XData[nodeTransfName] = (XData[nodeTransfName]-XData[nodeTransfName].min())/(XData[nodeTransfName].max()-XData[nodeTransfName].min())
+ elif (splittedCol[1] == 'l2'):
+ dfTemp = np.log10(XData[nodeTransfName])
+ if (dfTemp < 0).values.any():
+ XData[nodeTransfName] = abs(dfTemp.min()) + dfTemp
+ else:
+ XData[nodeTransfName] = dfTemp
+ elif (splittedCol[1] == 'l1p'):
+ XData[nodeTransfName] = np.log1p(XData[nodeTransfName])
+ elif (splittedCol[1] == 'l10'):
+ dfTemp = np.log10(XData[nodeTransfName])
+ if (dfTemp < 0).values.any():
+ XData[nodeTransfName] = abs(dfTemp.min()) + dfTemp
+ else:
+ XData[nodeTransfName] = dfTemp
+ elif (splittedCol[1] == 'e2'):
+ XData[nodeTransfName] = np.exp2(XData[nodeTransfName])
+ elif (splittedCol[1] == 'em1'):
+ XData[nodeTransfName] = np.expm1(XData[nodeTransfName])
+ elif (splittedCol[1] == 'p2'):
+ XData[nodeTransfName] = np.power(XData[nodeTransfName], 2)
+ elif (splittedCol[1] == 'p3'):
+ XData[nodeTransfName] = np.power(XData[nodeTransfName], 3)
+ else:
+ XData[nodeTransfName] = np.power(XData[nodeTransfName], 4)
+ XDataStored = XData.copy()
+
+ columnsNamesLoc = XData.columns.values.tolist()
+
+ for col in columnsNamesLoc:
+ splittedCol = col.split('_')
+ if (len(splittedCol) == 1):
+ for tran in listofTransformations:
+ columnsNames.append(splittedCol[0]+'_'+tran)
+ else:
+ for tran in listofTransformations:
+ if (splittedCol[1] == tran):
+ columnsNames.append(splittedCol[0])
+ else:
+ columnsNames.append(splittedCol[0]+'_'+tran)
+ featureImportanceData = estimatorFeatureSelection(XData, estimator)
estimator.fit(XData, yData)
yPredict = estimator.predict(XData)
yPredictProb = cross_val_predict(estimator, XData, yData, cv=crossValidation, method='predict_proba')
+ print(XData)
+ num_cores = multiprocessing.cpu_count()
+ inputsSc = ['accuracy','precision_macro','recall_macro']
+
+ flat_results = Parallel(n_jobs=num_cores)(delayed(solve)(estimator,XData,yData,crossValidation,item,index) for index, item in enumerate(inputsSc))
+ scoresAct = [item for sublist in flat_results for item in sublist]
+
+ howMany = 0
+
+ if (keyFirstTime):
+ previousState = scoresAct
+ keyFirstTime = False
+ howMany = 3
+
+ if (((scoresAct[0]-scoresAct[1]) + (scoresAct[2]-scoresAct[3]) + (scoresAct[4]-scoresAct[5])) >= ((previousState[0]-previousState[1]) + (previousState[2]-previousState[3]) + (previousState[4]-previousState[5]))):
+ finalResultsData = XData.copy()
+ print('improved')
+
+ if (keyFirstTime == False):
+ if ((scoresAct[0]-scoresAct[1]) > (previousState[0]-previousState[1])):
+ previousState[0] = scoresAct[0]
+ previousState[1] = scoresAct[1]
+ howMany = howMany + 1
+ elif ((scoresAct[2]-scoresAct[3]) > (previousState[2]-previousState[3])):
+ previousState[2] = scoresAct[2]
+ previousState[3] = scoresAct[3]
+ howMany = howMany + 1
+ elif ((scoresAct[4]-scoresAct[5]) > (previousState[4]-previousState[5])):
+ previousState[4] = scoresAct[4]
+ previousState[5] = scoresAct[5]
+ howMany = howMany + 1
+ else:
+ pass
+
+ scores = scoresAct + previousState
+
+ if (howMany == 3):
+ scores.append(1)
+ else:
+ scores.append(0)
+
+ return 'Everything Okay'
diff --git a/frontend/src/components/DataSetSlider.vue b/frontend/src/components/DataSetSlider.vue
index e5ad225..3d7ec14 100644
--- a/frontend/src/components/DataSetSlider.vue
+++ b/frontend/src/components/DataSetSlider.vue
@@ -3,7 +3,7 @@
+ New features: {{ FeaturesPickled }}
+
+ =======================================================
+