diff --git a/__pycache__/run.cpython-37.pyc b/__pycache__/run.cpython-37.pyc index a50003b..78bc36c 100644 Binary files a/__pycache__/run.cpython-37.pyc and b/__pycache__/run.cpython-37.pyc differ diff --git a/frontend/src/components/Main.vue b/frontend/src/components/Main.vue index d865a36..7183c0c 100755 --- a/frontend/src/components/Main.vue +++ b/frontend/src/components/Main.vue @@ -18,7 +18,7 @@ - Provenance + History and Algorithms/Models Selector @@ -27,7 +27,7 @@ - Majority-Voting Ensemble's Results + Final Results of Majority-Voting Ensemble @@ -119,7 +119,7 @@ - Hyper-Parameters' Space + Solution Space of Hyper-Parameters [Sel: {{OverSelLength}} / All: {{OverAllLength}}]Projection1 @@ -145,7 +145,7 @@ - Manipulation of AlgorithmsActive1&2 + Overall Performance for Each Algorithm/ModelActive1&2 @@ -921,6 +921,7 @@ export default Vue.extend({ console.log('Sent the unselected points for crossover and mutation.') this.getDatafromtheBackEnd() this.getCMComputedData() + this.changeActiveTo2() }) .catch(error => { console.log(error) @@ -979,7 +980,7 @@ export default Vue.extend({ EventBus.$on('RemainingPoints', this.changeActiveTo1) EventBus.$on('RemainingPoints', data => { this.unselectedRemainingPoints = data }) - EventBus.$on('InitializeCrossoverMutation', this.changeActiveTo2) + EventBus.$on('InitializeCrossoverMutation', this.sendPointsCrossMutat) EventBus.$on('RemainingPointsCM', this.changeActiveTo2) diff --git a/run.py b/run.py index 4cac914..3be82f6 100644 --- a/run.py +++ b/run.py @@ -301,27 +301,15 @@ def retrieveFileName(): # models global KNNModels - global SVCModels - global GausNBModels global MLPModels global LRModels - global LDAModels - global QDAModels global RFModels - global ExtraTModels - global AdaBModels global GradBModels KNNModels = [] - SVCModels = [] - GausNBModels = [] MLPModels = [] LRModels = [] - LDAModels = [] - QDAModels = [] RFModels = [] - ExtraTModels = [] - AdaBModels = [] GradBModels = [] global results @@ -1051,12 +1039,15 @@ def CrossoverMutateFun(): EnsembleActive = json.loads(EnsembleActive) EnsembleActive = EnsembleActive['StoreEnsemble'] + random.seed(RANDOM_SEED) global XData global yData - global LRModelsCount global addKNN global addLR + global addMLP + global addRF + global addGradB global countAllModels # loop through the algorithms @@ -1066,14 +1057,23 @@ def CrossoverMutateFun(): KNNIDs = list(filter(lambda k: 'KNN' in k, RemainingIds)) LRIDs = list(filter(lambda k: 'LR' in k, RemainingIds)) + MLPIDs = list(filter(lambda k: 'MLP' in k, RemainingIds)) + RFIDs = list(filter(lambda k: 'RF' in k, RemainingIds)) + GradBIDs = list(filter(lambda k: 'GradB' in k, RemainingIds)) countKNN = 0 countLR = 0 + countMLP = 0 + countRF = 0 + countGradB = 0 setMaxLoopValue = 5 paramAllAlgs = PreprocessingParam() KNNIntIndex = [] LRIntIndex = [] + MLPIntIndex = [] + RFIntIndex = [] + GradBIntIndex = [] localCrossMutr = [] allParametersPerfCrossMutrKNNC = [] @@ -1099,7 +1099,7 @@ def CrossoverMutateFun(): countKNN += 1 crossoverDF = pd.DataFrame() - countAllModels = countAllModels + 5 + countAllModels = countAllModels + setMaxLoopValue for loop in range(setMaxLoopValue - 1): localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] @@ -1146,7 +1146,7 @@ def CrossoverMutateFun(): countKNN += 1 crossoverDF = pd.DataFrame() - countAllModels = countAllModels + 5 + countAllModels = countAllModels + setMaxLoopValue for loop in range(setMaxLoopValue - 1): localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] @@ -1187,7 +1187,7 @@ def CrossoverMutateFun(): countLR += 1 crossoverDF = pd.DataFrame() - countAllModels = countAllModels + 5 + countAllModels = countAllModels + setMaxLoopValue for loop in range(setMaxLoopValue - 1): localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] @@ -1234,7 +1234,7 @@ def CrossoverMutateFun(): countLR += 1 crossoverDF = pd.DataFrame() - countAllModels = countAllModels + 5 + countAllModels = countAllModels + setMaxLoopValue for loop in range(setMaxLoopValue - 1): localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] @@ -1248,12 +1248,277 @@ def CrossoverMutateFun(): allParametersPerfCrossMutrLRM.append(localCrossMutr[3]) HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrLRM + + localCrossMutr.clear() + allParametersPerfCrossMutrMLPC = [] + + while countMLP < setMaxLoopValue: + for dr in MLPIDs: + MLPIntIndex.append(int(re.findall('\d+', dr)[0])) + MLPPickPair = random.sample(MLPIntIndex,2) + + pairDF = paramAllAlgs.iloc[MLPPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + randomZeroOne = random.randint(0, 1) + valuePerColumn = pairDF[column].iloc[randomZeroOne] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['hidden_layer_sizes'] == crossoverDF['hidden_layer_sizes'].iloc[0]) & (paramAllAlgs['alpha'] == crossoverDF['alpha'].iloc[0]) & (paramAllAlgs['tol'] == crossoverDF['tol'].iloc[0]) & (paramAllAlgs['max_iter'] == crossoverDF['max_iter'].iloc[0]) & (paramAllAlgs['activation'] == crossoverDF['activation'].iloc[0]) & (paramAllAlgs['solver'] == crossoverDF['solver'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = MLPClassifier(random_state=RANDOM_SEED) + params = {'hidden_layer_sizes': [crossoverDF['hidden_layer_sizes'].iloc[0]], 'alpha': [crossoverDF['alpha'].iloc[0]], 'tol': [crossoverDF['tol'].iloc[0]], 'max_iter': [crossoverDF['max_iter'].iloc[0]], 'activation': [crossoverDF['activation'].iloc[0]], 'solver': [crossoverDF['solver'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countMLP + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'MLP', AlgorithmsIDsEnd) + countMLP += 1 + crossoverDF = pd.DataFrame() + + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrMLPC.append(localCrossMutr[0]) + allParametersPerfCrossMutrMLPC.append(localCrossMutr[1]) + allParametersPerfCrossMutrMLPC.append(localCrossMutr[2]) + allParametersPerfCrossMutrMLPC.append(localCrossMutr[3]) + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrMLPC + + countMLP = 0 + MLPIntIndex = [] localCrossMutr.clear() + allParametersPerfCrossMutrMLPM = [] + + while countMLP < setMaxLoopValue: + for dr in MLPIDs: + MLPIntIndex.append(int(re.findall('\d+', dr)[0])) + MLPPickPair = random.sample(MLPIntIndex,1) + + pairDF = paramAllAlgs.iloc[MLPPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + if (column == 'hidden_layer_sizes'): + randomNumber = (random.randint(10,60), random.randint(4,10)) + listData.append(randomNumber) + crossoverDF[column] = listData + else: + valuePerColumn = pairDF[column].iloc[0] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['hidden_layer_sizes'] == crossoverDF['hidden_layer_sizes'].iloc[0]) & (paramAllAlgs['alpha'] == crossoverDF['alpha'].iloc[0]) & (paramAllAlgs['tol'] == crossoverDF['tol'].iloc[0]) & (paramAllAlgs['max_iter'] == crossoverDF['max_iter'].iloc[0]) & (paramAllAlgs['activation'] == crossoverDF['activation'].iloc[0]) & (paramAllAlgs['solver'] == crossoverDF['solver'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = MLPClassifier(random_state=RANDOM_SEED) + params = {'hidden_layer_sizes': [crossoverDF['hidden_layer_sizes'].iloc[0]], 'alpha': [crossoverDF['alpha'].iloc[0]], 'tol': [crossoverDF['tol'].iloc[0]], 'max_iter': [crossoverDF['max_iter'].iloc[0]], 'activation': [crossoverDF['activation'].iloc[0]], 'solver': [crossoverDF['solver'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countMLP + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'MLP', AlgorithmsIDsEnd) + countMLP += 1 + crossoverDF = pd.DataFrame() - allParametersPerfCrossMutr = allParametersPerfCrossMutrKNNC + allParametersPerfCrossMutrKNNM + allParametersPerfCrossMutrLRC + allParametersPerfCrossMutrLRM + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrMLPM.append(localCrossMutr[0]) + allParametersPerfCrossMutrMLPM.append(localCrossMutr[1]) + allParametersPerfCrossMutrMLPM.append(localCrossMutr[2]) + allParametersPerfCrossMutrMLPM.append(localCrossMutr[3]) + + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrMLPM + + localCrossMutr.clear() + allParametersPerfCrossMutrRFC = [] + + while countRF < setMaxLoopValue: + for dr in RFIDs: + RFIntIndex.append(int(re.findall('\d+', dr)[0])) + RFPickPair = random.sample(RFIntIndex,2) + + pairDF = paramAllAlgs.iloc[RFPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + randomZeroOne = random.randint(0, 1) + valuePerColumn = pairDF[column].iloc[randomZeroOne] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['n_estimators'] == crossoverDF['n_estimators'].iloc[0]) & (paramAllAlgs['criterion'] == crossoverDF['criterion'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = RandomForestClassifier(random_state=RANDOM_SEED) + params = {'n_estimators': [crossoverDF['n_estimators'].iloc[0]], 'criterion': [crossoverDF['criterion'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countRF + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'RF', AlgorithmsIDsEnd) + countRF += 1 + crossoverDF = pd.DataFrame() + + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrRFC.append(localCrossMutr[0]) + allParametersPerfCrossMutrRFC.append(localCrossMutr[1]) + allParametersPerfCrossMutrRFC.append(localCrossMutr[2]) + allParametersPerfCrossMutrRFC.append(localCrossMutr[3]) + + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrRFC + + countRF = 0 + RFIntIndex = [] + localCrossMutr.clear() + allParametersPerfCrossMutrRFM = [] + + while countRF < setMaxLoopValue: + for dr in RFIDs: + RFIntIndex.append(int(re.findall('\d+', dr)[0])) + RFPickPair = random.sample(RFIntIndex,1) + + pairDF = paramAllAlgs.iloc[RFPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + if (column == 'n_estimators'): + randomNumber = random.randint(100, 200) + listData.append(randomNumber) + crossoverDF[column] = listData + else: + valuePerColumn = pairDF[column].iloc[0] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['n_estimators'] == crossoverDF['n_estimators'].iloc[0]) & (paramAllAlgs['criterion'] == crossoverDF['criterion'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = RandomForestClassifier(random_state=RANDOM_SEED) + params = {'n_estimators': [crossoverDF['n_estimators'].iloc[0]], 'criterion': [crossoverDF['criterion'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countRF + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'RF', AlgorithmsIDsEnd) + countRF += 1 + crossoverDF = pd.DataFrame() + + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrRFM.append(localCrossMutr[0]) + allParametersPerfCrossMutrRFM.append(localCrossMutr[1]) + allParametersPerfCrossMutrRFM.append(localCrossMutr[2]) + allParametersPerfCrossMutrRFM.append(localCrossMutr[3]) + + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrRFM + + localCrossMutr.clear() + allParametersPerfCrossMutrGradBC = [] + + while countGradB < setMaxLoopValue: + for dr in GradBIDs: + GradBIntIndex.append(int(re.findall('\d+', dr)[0])) + GradBPickPair = random.sample(GradBIntIndex,2) + + pairDF = paramAllAlgs.iloc[GradBPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + randomZeroOne = random.randint(0, 1) + valuePerColumn = pairDF[column].iloc[randomZeroOne] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['n_estimators'] == crossoverDF['n_estimators'].iloc[0]) & (paramAllAlgs['learning_rate'] == crossoverDF['learning_rate'].iloc[0]) & (paramAllAlgs['criterion'] == crossoverDF['criterion'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = GradientBoostingClassifier(random_state=RANDOM_SEED) + params = {'n_estimators': [crossoverDF['n_estimators'].iloc[0]], 'learning_rate': [crossoverDF['learning_rate'].iloc[0]], 'criterion': [crossoverDF['criterion'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countGradB + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'GradB', AlgorithmsIDsEnd) + countGradB += 1 + crossoverDF = pd.DataFrame() + + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrGradBC.append(localCrossMutr[0]) + allParametersPerfCrossMutrGradBC.append(localCrossMutr[1]) + allParametersPerfCrossMutrGradBC.append(localCrossMutr[2]) + allParametersPerfCrossMutrGradBC.append(localCrossMutr[3]) + + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrGradBC + + countGradB = 0 + GradBIntIndex = [] + localCrossMutr.clear() + allParametersPerfCrossMutrGradBM = [] + + while countGradB < setMaxLoopValue: + for dr in GradBIDs: + GradBIntIndex.append(int(re.findall('\d+', dr)[0])) + GradPickPair = random.sample(GradBIntIndex,1) + + pairDF = paramAllAlgs.iloc[GradBPickPair] + crossoverDF = pd.DataFrame() + for column in pairDF: + listData = [] + if (column == 'n_estimators'): + randomNumber = random.randint(100, 200) + listData.append(randomNumber) + crossoverDF[column] = listData + else: + valuePerColumn = pairDF[column].iloc[0] + listData.append(valuePerColumn) + crossoverDF[column] = listData + if (((paramAllAlgs['n_estimators'] == crossoverDF['n_estimators'].iloc[0]) & (paramAllAlgs['learning_rate'] == crossoverDF['learning_rate'].iloc[0]) & (paramAllAlgs['criterion'] == crossoverDF['criterion'].iloc[0])).any()): + crossoverDF = pd.DataFrame() + else: + clf = GradientBoostingClassifier(random_state=RANDOM_SEED) + params = {'n_estimators': [crossoverDF['n_estimators'].iloc[0]], 'learning_rate': [crossoverDF['learning_rate'].iloc[0]], 'criterion': [crossoverDF['criterion'].iloc[0]]} + AlgorithmsIDsEnd = countAllModels + countGradB + localCrossMutr = crossoverMutation(XData, yData, clf, params, 'RF', AlgorithmsIDsEnd) + countGradB += 1 + crossoverDF = pd.DataFrame() + + countAllModels = countAllModels + setMaxLoopValue + + for loop in range(setMaxLoopValue - 1): + localCrossMutr[0] = localCrossMutr[0] + localCrossMutr[(loop+1)*4] + localCrossMutr[1] = pd.concat([localCrossMutr[1], localCrossMutr[(loop+1)*4+1]], ignore_index=True) + localCrossMutr[2] = pd.concat([localCrossMutr[2], localCrossMutr[(loop+1)*4+2]], ignore_index=True) + localCrossMutr[3] = pd.concat([localCrossMutr[3], localCrossMutr[(loop+1)*4+3]], ignore_index=True) + + allParametersPerfCrossMutrGradBM.append(localCrossMutr[0]) + allParametersPerfCrossMutrGradBM.append(localCrossMutr[1]) + allParametersPerfCrossMutrGradBM.append(localCrossMutr[2]) + allParametersPerfCrossMutrGradBM.append(localCrossMutr[3]) + + HistoryPreservation = HistoryPreservation + allParametersPerfCrossMutrGradBM + + localCrossMutr.clear() + + allParametersPerfCrossMutr = allParametersPerfCrossMutrKNNC + allParametersPerfCrossMutrKNNM + allParametersPerfCrossMutrLRC + allParametersPerfCrossMutrLRM + allParametersPerfCrossMutrMLPC + allParametersPerfCrossMutrMLPM + allParametersPerfCrossMutrRFC + allParametersPerfCrossMutrRFM + allParametersPerfCrossMutrGradBC + allParametersPerfCrossMutrGradBM allParametersPerformancePerModel[4] = allParametersPerformancePerModel[4] + allParametersPerfCrossMutrKNNC[0] + allParametersPerfCrossMutrKNNM[0] + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrKNNC[1]], ignore_index=True) allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrKNNM[1]], ignore_index=True) allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrKNNC[2]], ignore_index=True) @@ -1273,27 +1538,45 @@ def CrossoverMutateFun(): allParametersPerformancePerModel[7] = pd.concat([allParametersPerformancePerModel[7], allParametersPerfCrossMutrLRC[3]], ignore_index=True) allParametersPerformancePerModel[7] = pd.concat([allParametersPerformancePerModel[7], allParametersPerfCrossMutrLRM[3]], ignore_index=True) - addKNN = addLR + allParametersPerformancePerModel[4] = allParametersPerformancePerModel[4] + allParametersPerfCrossMutrMLPC[0] + allParametersPerfCrossMutrMLPM[0] + + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrMLPC[1]], ignore_index=True) + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrMLPM[1]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrMLPC[2]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrMLPM[2]], ignore_index=True) + + allParametersPerformancePerModel[11] = pd.concat([allParametersPerformancePerModel[11], allParametersPerfCrossMutrMLPC[3]], ignore_index=True) + allParametersPerformancePerModel[11] = pd.concat([allParametersPerformancePerModel[11], allParametersPerfCrossMutrMLPM[3]], ignore_index=True) + + allParametersPerformancePerModel[4] = allParametersPerformancePerModel[4] + allParametersPerfCrossMutrRFC[0] + allParametersPerfCrossMutrRFM[0] + + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrRFC[1]], ignore_index=True) + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrRFM[1]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrRFC[2]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrRFM[2]], ignore_index=True) + + allParametersPerformancePerModel[15] = pd.concat([allParametersPerformancePerModel[15], allParametersPerfCrossMutrRFC[3]], ignore_index=True) + allParametersPerformancePerModel[15] = pd.concat([allParametersPerformancePerModel[15], allParametersPerfCrossMutrRFM[3]], ignore_index=True) + + allParametersPerformancePerModel[4] = allParametersPerformancePerModel[4] + allParametersPerfCrossMutrGradBC[0] + allParametersPerfCrossMutrGradBM[0] + + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrGradBC[1]], ignore_index=True) + allParametersPerformancePerModel[5] = pd.concat([allParametersPerformancePerModel[5], allParametersPerfCrossMutrGradBM[1]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrGradBC[2]], ignore_index=True) + allParametersPerformancePerModel[6] = pd.concat([allParametersPerformancePerModel[6], allParametersPerfCrossMutrGradBM[2]], ignore_index=True) + + allParametersPerformancePerModel[19] = pd.concat([allParametersPerformancePerModel[19], allParametersPerfCrossMutrGradBC[3]], ignore_index=True) + allParametersPerformancePerModel[19] = pd.concat([allParametersPerformancePerModel[19], allParametersPerfCrossMutrGradBM[3]], ignore_index=True) - addLR = addLR + 10 + addKNN = addLR - # KNNIntIndex = [] - # for dr in KNNIDs: - # KNNIntIndex.append(int(re.findall('\d+', dr)[0])) + addLR = addLR + setMaxLoopValue*2 - # allParametersPerformancePerModel[0] = [j for i, j in enumerate(allParametersPerformancePerModel[0]) if i not in KNNIntIndex] - # allParametersPerformancePerModel[1].drop(allParametersPerformancePerModel[1].index[KNNIntIndex], inplace=True) - # allParametersPerformancePerModel[2].drop(allParametersPerformancePerModel[2].index[KNNIntIndex], inplace=True) - # allParametersPerformancePerModel[3].drop(allParametersPerformancePerModel[3].index[KNNIntIndex], inplace=True) + addMLP = addLR + setMaxLoopValue*2 - # LRIntIndex = [] - # for dr in LRIDs: - # LRIntIndex.append(int(re.findall('\d+', dr)[0]) - 100) + addRF = addMLP + setMaxLoopValue*2 - # allParametersPerformancePerModel[4] = [j for i, j in enumerate(allParametersPerformancePerModel[4]) if i not in LRIntIndex] - # allParametersPerformancePerModel[5].drop(allParametersPerformancePerModel[5].index[LRIntIndex], inplace=True) - # allParametersPerformancePerModel[6].drop(allParametersPerformancePerModel[6].index[LRIntIndex], inplace=True) - # allParametersPerformancePerModel[7].drop(allParametersPerformancePerModel[7].index[LRIntIndex], inplace=True) + addGradB = addRF + setMaxLoopValue*2 return 'Everything Okay' @@ -1391,8 +1674,15 @@ def PreprocessingIDsCM(): dicKNNM = allParametersPerfCrossMutr[4] dicLRC = allParametersPerfCrossMutr[8] dicLRM = allParametersPerfCrossMutr[12] + dicMLPC = allParametersPerfCrossMutr[16] + dicMLPM = allParametersPerfCrossMutr[20] + dicRFC = allParametersPerfCrossMutr[24] + dicRFM = allParametersPerfCrossMutr[28] + dicGradBC = allParametersPerfCrossMutr[32] + dicGradBM = allParametersPerfCrossMutr[36] + - df_concatIDs = dicKNNC + dicKNNM + dicLRC + dicLRM + df_concatIDs = dicKNNC + dicKNNM + dicLRC + dicLRM + dicMLPC + dicMLPM + dicRFC + dicRFM + dicGradBC + dicGradBM return df_concatIDs def PreprocessingMetricsCM(): @@ -1400,13 +1690,25 @@ def PreprocessingMetricsCM(): dicKNNM = allParametersPerfCrossMutr[6] dicLRC = allParametersPerfCrossMutr[10] dicLRM = allParametersPerfCrossMutr[14] + dicMLPC = allParametersPerfCrossMutr[18] + dicMLPM = allParametersPerfCrossMutr[22] + dicRFC = allParametersPerfCrossMutr[26] + dicRFM = allParametersPerfCrossMutr[30] + dicGradBC = allParametersPerfCrossMutr[34] + dicGradBM = allParametersPerfCrossMutr[38] dfKNNC = pd.DataFrame.from_dict(dicKNNC) dfKNNM = pd.DataFrame.from_dict(dicKNNM) dfLRC = pd.DataFrame.from_dict(dicLRC) dfLRM = pd.DataFrame.from_dict(dicLRM) - - df_concatMetrics = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM]) + dfMLPC = pd.DataFrame.from_dict(dicMLPC) + dfMLPM = pd.DataFrame.from_dict(dicMLPM) + dfRFC = pd.DataFrame.from_dict(dicRFC) + dfRFM = pd.DataFrame.from_dict(dicRFM) + dfGradBC = pd.DataFrame.from_dict(dicGradBC) + dfGradBM = pd.DataFrame.from_dict(dicGradBM) + + df_concatMetrics = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM, dfMLPC, dfMLPM, dfRFC, dfRFM, dfGradBC, dfGradBM]) df_concatMetrics = df_concatMetrics.reset_index(drop=True) return df_concatMetrics @@ -1415,17 +1717,35 @@ def PreprocessingPredCM(): dicKNNM = allParametersPerfCrossMutr[7] dicLRC = allParametersPerfCrossMutr[11] dicLRM = allParametersPerfCrossMutr[15] + dicMLPC = allParametersPerfCrossMutr[19] + dicMLPM = allParametersPerfCrossMutr[23] + dicRFC = allParametersPerfCrossMutr[27] + dicRFM = allParametersPerfCrossMutr[31] + dicGradBC = allParametersPerfCrossMutr[35] + dicGradBM = allParametersPerfCrossMutr[39] dfKNNC = pd.DataFrame.from_dict(dicKNNC) dfKNNM = pd.DataFrame.from_dict(dicKNNM) dfLRC = pd.DataFrame.from_dict(dicLRC) dfLRM = pd.DataFrame.from_dict(dicLRM) + dfMLPC = pd.DataFrame.from_dict(dicMLPC) + dfMLPM = pd.DataFrame.from_dict(dicMLPM) + dfRFC = pd.DataFrame.from_dict(dicRFC) + dfRFM = pd.DataFrame.from_dict(dicRFM) + dfGradBC = pd.DataFrame.from_dict(dicGradBC) + dfGradBM = pd.DataFrame.from_dict(dicGradBM) dfKNN = pd.concat([dfKNNC, dfKNNM]) dfLR = pd.concat([dfLRC, dfLRM]) - df_concatProbs = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM]) + dfMLP = pd.concat([dfMLPC, dfMLPM]) + + dfRF = pd.concat([dfRFC, dfRFM]) + + dfGradB = pd.concat([dfGradBC, dfGradBM]) + + df_concatProbs = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM, dfMLPC, dfMLPM, dfRFC, dfRFM, dfGradBC, dfGradBM]) predictionsKNN = [] for column, content in dfKNN.items(): @@ -1436,41 +1756,87 @@ def PreprocessingPredCM(): for column, content in dfLR.items(): el = [sum(x)/len(x) for x in zip(*content)] predictionsLR.append(el) + + predictionsMLP = [] + for column, content in dfMLP.items(): + el = [sum(x)/len(x) for x in zip(*content)] + predictionsMLP.append(el) + + predictionsRF = [] + for column, content in dfRF.items(): + el = [sum(x)/len(x) for x in zip(*content)] + predictionsRF.append(el) + + predictionsGradB = [] + for column, content in dfGradB.items(): + el = [sum(x)/len(x) for x in zip(*content)] + predictionsGradB.append(el) predictions = [] for column, content in df_concatProbs.items(): el = [sum(x)/len(x) for x in zip(*content)] predictions.append(el) - return [predictionsKNN, predictionsLR, predictions] + return [predictionsKNN, predictionsLR, predictionsMLP, predictionsRF, predictionsGradB, predictions] def PreprocessingParamCM(): dicKNNC = allParametersPerfCrossMutr[1] dicKNNM = allParametersPerfCrossMutr[5] dicLRC = allParametersPerfCrossMutr[9] dicLRM = allParametersPerfCrossMutr[13] + dicMLPC = allParametersPerfCrossMutr[17] + dicMLPM = allParametersPerfCrossMutr[21] + dicRFC = allParametersPerfCrossMutr[25] + dicRFM = allParametersPerfCrossMutr[29] + dicGradBC = allParametersPerfCrossMutr[33] + dicGradBM = allParametersPerfCrossMutr[37] dicKNNC = dicKNNC['params'] dicKNNM = dicKNNM['params'] dicLRC = dicLRC['params'] dicLRM = dicLRM['params'] + dicMLPC = dicMLPC['params'] + dicMLPM = dicMLPM['params'] + dicRFC = dicRFC['params'] + dicRFM = dicRFM['params'] + dicGradBC = dicGradBC['params'] + dicGradBM = dicGradBM['params'] + dicKNNC = {int(k):v for k,v in dicKNNC.items()} dicKNNM = {int(k):v for k,v in dicKNNM.items()} dicLRC = {int(k):v for k,v in dicLRC.items()} dicLRM = {int(k):v for k,v in dicLRM.items()} + dicMLPC = {int(k):v for k,v in dicMLPC.items()} + dicMLPM = {int(k):v for k,v in dicMLPM.items()} + dicRFC = {int(k):v for k,v in dicRFC.items()} + dicRFM = {int(k):v for k,v in dicRFM.items()} + dicGradBC = {int(k):v for k,v in dicGradBC.items()} + dicGradBM = {int(k):v for k,v in dicGradBM.items()} dfKNNC = pd.DataFrame.from_dict(dicKNNC) dfKNNM = pd.DataFrame.from_dict(dicKNNM) dfLRC = pd.DataFrame.from_dict(dicLRC) dfLRM = pd.DataFrame.from_dict(dicLRM) + dfMLPC = pd.DataFrame.from_dict(dicMLPC) + dfMLPM = pd.DataFrame.from_dict(dicMLPM) + dfRFC = pd.DataFrame.from_dict(dicRFC) + dfRFM = pd.DataFrame.from_dict(dicRFM) + dfGradBC = pd.DataFrame.from_dict(dicGradBC) + dfGradBM = pd.DataFrame.from_dict(dicGradBM) dfKNNC = dfKNNC.T dfKNNM = dfKNNM.T dfLRC = dfLRC.T dfLRM = dfLRM.T - - df_params = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM]) + dfMLPC = dfMLPC.T + dfMLPM = dfMLPM.T + dfRFC = dfRFC.T + dfRFM = dfRFM.T + dfGradBC = dfGradBC.T + dfGradBM = dfGradBM.T + + df_params = pd.concat([dfKNNC, dfKNNM, dfLRC, dfLRM, dfMLPC, dfMLPM, dfRFC, dfRFM, dfGradBC, dfGradBM]) df_params = df_params.reset_index(drop=True) return df_params @@ -1479,28 +1845,58 @@ def PreprocessingParamSepCM(): dicKNNM = allParametersPerfCrossMutr[5] dicLRC = allParametersPerfCrossMutr[9] dicLRM = allParametersPerfCrossMutr[13] + dicMLPC = allParametersPerfCrossMutr[17] + dicMLPM = allParametersPerfCrossMutr[21] + dicRFC = allParametersPerfCrossMutr[25] + dicRFM = allParametersPerfCrossMutr[29] + dicGradBC = allParametersPerfCrossMutr[33] + dicGradBM = allParametersPerfCrossMutr[37] dicKNNC = dicKNNC['params'] dicKNNM = dicKNNM['params'] dicLRC = dicLRC['params'] dicLRM = dicLRM['params'] - + dicMLPC = dicMLPC['params'] + dicMLPM = dicMLPM['params'] + dicRFC = dicRFC['params'] + dicRFM = dicRFM['params'] + dicGradBC = dicGradBC['params'] + dicGradBM = dicGradBM['params'] + dicKNNC = {int(k):v for k,v in dicKNNC.items()} dicKNNM = {int(k):v for k,v in dicKNNM.items()} dicLRC = {int(k):v for k,v in dicLRC.items()} dicLRM = {int(k):v for k,v in dicLRM.items()} + dicMLPC = {int(k):v for k,v in dicMLPC.items()} + dicMLPM = {int(k):v for k,v in dicMLPM.items()} + dicRFC = {int(k):v for k,v in dicRFC.items()} + dicRFM = {int(k):v for k,v in dicRFM.items()} + dicGradBC = {int(k):v for k,v in dicGradBC.items()} + dicGradBM = {int(k):v for k,v in dicGradBM.items()} dfKNNC = pd.DataFrame.from_dict(dicKNNC) dfKNNM = pd.DataFrame.from_dict(dicKNNM) dfLRC = pd.DataFrame.from_dict(dicLRC) dfLRM = pd.DataFrame.from_dict(dicLRM) + dfMLPC = pd.DataFrame.from_dict(dicMLPC) + dfMLPM = pd.DataFrame.from_dict(dicMLPM) + dfRFC = pd.DataFrame.from_dict(dicRFC) + dfRFM = pd.DataFrame.from_dict(dicRFM) + dfGradBC = pd.DataFrame.from_dict(dicGradBC) + dfGradBM = pd.DataFrame.from_dict(dicGradBM) dfKNNC = dfKNNC.T dfKNNM = dfKNNM.T dfLRC = dfLRC.T dfLRM = dfLRM.T - - return [dfKNNC, dfKNNM, dfLRC, dfLRM] + dfMLPC = dfMLPC.T + dfMLPM = dfMLPM.T + dfRFC = dfRFC.T + dfRFM = dfRFM.T + dfGradBC = dfGradBC.T + dfGradBM = dfGradBM.T + + return [dfKNNC, dfKNNM, dfLRC, dfLRM, dfMLPC, dfMLPM, dfRFC, dfRFM, dfGradBC, dfGradBM] # remove that maybe! def preProcsumPerMetricCM(factors):