new updates

master
Angelos Chatzimparmpas 4 years ago
parent bc95256023
commit 3c47f3cbc3
  1. BIN
      __pycache__/run.cpython-38.pyc
  2. 20
      frontend/src/components/AlgorithmsController.vue
  3. 4
      frontend/src/components/Main.vue
  4. 12
      frontend/src/components/Predictions.vue
  5. 9
      frontend/src/components/ValidationController.vue
  6. 49
      run.py

Binary file not shown.

@ -102,37 +102,37 @@ export default {
let tempSplit = mergedStoreEnsembleLoc[i].split(/([0-9]+)/)
if (tempSplit[0] == 'KNN' || tempSplit[0] == 'KNNC' || tempSplit[0] == 'KNNM' || tempSplit[0] == 'KNNCC' || tempSplit[0] == 'KNNCM' || tempSplit[0] == 'KNNMC' || tempSplit[0] == 'KNNMM') {
if (this.selectedEnsem.includes(mergedStoreEnsembleLoc[i])) {
data.push({Algorithm:"KNN",value:this.PerF[i], size:5, sw:true})
data.push({Algorithm:"KNN",value:this.PerF[tempSplit[1]], size:5, sw:true})
} else {
data.push({Algorithm:"KNN",value:this.PerF[i], size:5, sw:false})
data.push({Algorithm:"KNN",value:this.PerF[tempSplit[1]], size:5, sw:false})
}
}
else if (tempSplit[0] == 'LR' || tempSplit[0] == 'LRC' || tempSplit[0] == 'LRM' || tempSplit[0] == 'LRCC' || tempSplit[0] == 'LRCM' || tempSplit[0] == 'LRMC' || tempSplit[0] == 'LRMM') {
if (this.selectedEnsem.includes(mergedStoreEnsembleLoc[i])) {
data.push({Algorithm:"LR",value:this.PerF[i], size:5, sw:true})
data.push({Algorithm:"LR",value:this.PerF[tempSplit[1]], size:5, sw:true})
} else {
data.push({Algorithm:"LR",value:this.PerF[i], size:5, sw:false})
data.push({Algorithm:"LR",value:this.PerF[tempSplit[1]], size:5, sw:false})
}
}
else if (tempSplit[0] == 'MLP' || tempSplit[0] == 'MLPC' || tempSplit[0] == 'MLPM' || tempSplit[0] == 'MLPCC' || tempSplit[0] == 'MLPCM' || tempSplit[0] == 'MLPMC' || tempSplit[0] == 'MLPMM') {
if (this.selectedEnsem.includes(mergedStoreEnsembleLoc[i])) {
data.push({Algorithm:"MLP",value:this.PerF[i], size:5, sw:true})
data.push({Algorithm:"MLP",value:this.PerF[tempSplit[1]], size:5, sw:true})
} else {
data.push({Algorithm:"MLP",value:this.PerF[i], size:5, sw:false})
data.push({Algorithm:"MLP",value:this.PerF[tempSplit[1]], size:5, sw:false})
}
}
else if (tempSplit[0] == 'RF' || tempSplit[0] == 'RFC' || tempSplit[0] == 'RFM' || tempSplit[0] == 'RFCC' || tempSplit[0] == 'RFCM' || tempSplit[0] == 'RFMC' || tempSplit[0] == 'RFMM') {
if (this.selectedEnsem.includes(mergedStoreEnsembleLoc[i])) {
data.push({Algorithm:"RF",value:this.PerF[i], size:5, sw:true})
data.push({Algorithm:"RF",value:this.PerF[tempSplit[1]], size:5, sw:true})
} else {
data.push({Algorithm:"RF",value:this.PerF[i], size:5, sw:false})
data.push({Algorithm:"RF",value:this.PerF[tempSplit[1]], size:5, sw:false})
}
}
else {
if (this.selectedEnsem.includes(mergedStoreEnsembleLoc[i])) {
data.push({Algorithm:"GradB",value:this.PerF[i], size:5, sw:true})
data.push({Algorithm:"GradB",value:this.PerF[tempSplit[1]], size:5, sw:true})
} else {
data.push({Algorithm:"GradB",value:this.PerF[i], size:5, sw:false})
data.push({Algorithm:"GradB",value:this.PerF[tempSplit[1]], size:5, sw:false})
}
}
}

@ -66,7 +66,7 @@
<b-row class="md-3">
<b-col cols="3">
<mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center">Overall Performance for Each Validation Metric<span class="badge badge-primary badge-pill float-right">Active<span class="badge badge-light" style="margin-left:4px; margin-bottom:1px">{{projectionID_B}}</span></span>
<mdb-card-header color="primary-color" tag="h5" class="text-center">Performance for Each Validation Metric<span class="badge badge-primary badge-pill float-right">Active<span class="badge badge-light" style="margin-left:4px; margin-bottom:1px">{{projectionID_B}}</span></span>
</mdb-card-header>
<mdb-card-body>
<mdb-card-text class="text-center" style="min-height: 270px">
@ -297,7 +297,7 @@ export default Vue.extend({
EventBus.$emit('callValidationData', this.OverviewResults)
EventBus.$emit('callValidation')
EventBus.$emit('emittedEventCallingGrid', this.OverviewResults)
EventBus.$emit('emittedEventCallingGridSelection', this.OverviewResults)
EventBus.$emit('emittedEventCallingGridSelection')
EventBus.$emit('emittedEventCallingInfo', this.OverviewResults)
EventBus.$emit('LegendPredict')
this.storeBothEnsCM[0] = this.OverviewResults

@ -21,7 +21,6 @@ export default {
data () {
return {
GetResultsAll: [],
GetResultsSelection: [],
responsiveWidthHeight: [],
predictSelection: [],
StoreIndices: [],
@ -40,7 +39,6 @@ export default {
var svgLeg = d3.select("#LegendHeat");
svgLeg.selectAll("*").remove();
this.GetResultsAll = []
this.GetResultsSelection = []
this.predictSelection = []
this.StoreIndices = []
this.InfoPred = []
@ -63,7 +61,7 @@ export default {
getIndices.push(clTemp)
}
getIndices.reverse()
var predictions = JSON.parse(this.GetResultsAll[12])
var KNNPred = predictions[0]
var LRPred = predictions[1]
@ -277,7 +275,7 @@ export default {
svg.selectAll("*").remove();
var predictionsAll = JSON.parse(this.GetResultsAll[12])
console.log(this.predictSelection.length)
if (this.predictSelection.length != 0) {
var predictions = this.predictSelection
var KNNPred = predictions[0]
@ -301,8 +299,8 @@ export default {
var GradBPredAll = predictionsAll[4]
var PredAverAll = predictionsAll[5]
var yValues = JSON.parse(this.GetResultsSelection[6])
var targetNames = JSON.parse(this.GetResultsSelection[7])
var yValues = JSON.parse(this.GetResultsAll[6])
var targetNames = JSON.parse(this.GetResultsAll[7])
var getIndices = []
for (let i = 0; i < targetNames.length; i++) {
@ -346,6 +344,7 @@ export default {
dataRF = []
dataGradB = []
getIndices[targetNames[i]].forEach(element => {
dataAver.push({ id: element, value: PredAver[element][targetNames[i]] - PredAverAll[element][targetNames[i]] })
dataKNN.push({ id: element, value: KNNPred[element][targetNames[i]] - KNNPredAll[element][targetNames[i]] })
dataLR.push({ id: element, value: LRPred[element][targetNames[i]] - LRPredAll[element][targetNames[i]] })
@ -633,7 +632,6 @@ export default {
EventBus.$on('emittedEventCallingGrid', data => { this.GetResultsAll = data; })
EventBus.$on('emittedEventCallingGrid', this.Grid)
EventBus.$on('emittedEventCallingGridSelection', data => { this.GetResultsSelection = data; })
EventBus.$on('emittedEventCallingGridSelection', this.GridSelection)
EventBus.$on('SendSelectedPointsToServerEvent', data => { this.predictSelection = data; })

@ -60,12 +60,14 @@ export default {
if (globalActive == 1) {
var IDs = JSON.parse(this.ResultsValid[0])
var valid = JSON.parse(this.ResultsValid[3])
for (let j=0; j<this.factorsValid.length; j++) {
if (this.factorsValid[j] == 1) {
for (let i=0; i<IDs.length; i++){
let tempValid = JSON.parse(valid[j])
console.log(tempValid)
let tempSplit = IDs[i].split(/([0-9]+)/)
console.log(tempSplit)
if (tempSplit[0] == 'KNN' || tempSplit[0] == 'KNNC' || tempSplit[0] == 'KNNM' || tempSplit[0] == 'KNNCC' || tempSplit[0] == 'KNNCM' || tempSplit[0] == 'KNNMC' || tempSplit[0] == 'KNNMM') {
data.push({Algorithm: this.Metrics[j], value: tempValid[i], category: "#ff7f00"})
}
@ -83,6 +85,7 @@ export default {
}
if (this.selectedSimple.length != 0) {
console.log("selected", this.selectedSimple)
if (this.selectedSimple.includes(IDs[i])) {
sumGlobalSel[j] = sumGlobalSel[j] + tempValid[i]
countValuesSel[j] = countValuesSel[j] + 1
@ -93,13 +96,13 @@ export default {
colorsGlobalBins.push('#c0c0c0')
}
}
activeLines.push('mean')
if (this.selectedSimple.length != 0) {
activeLines.push('meanSelection')
}
} else {
var valid = JSON.parse(this.ResultsValid[3])
var mergedStoreEnsembleLoc = [].concat.apply([], this.storedEnsemble)
var mergedStoreEnsembleLocFormatted = []
for (let i = 0; i < mergedStoreEnsembleLoc.length; i++) {
@ -153,7 +156,7 @@ export default {
data:data,
xName:'Algorithm',
yName:'value',
axisLabels: {xAxis: 'Algorithm', yAxis: '# Ov. Performance (%) #'},
axisLabels: {xAxis: 'Algorithm', yAxis: 'Performance (%)'},
selector:"#violin",
constrainExtremes:false});
chart2.renderBoxPlot({showBox:false});

@ -732,7 +732,7 @@ def PreprocessingPred():
dfGradB = pd.DataFrame.from_dict(dicGradB)
df_concatProbs = pd.concat([dfKNN, dfLR, dfMLP, dfRF, dfGradB])
df_concatProbs.reset_index(drop=True, inplace=True)
df_concatProbs.reset_index(drop=True)
predictionsKNN = []
for column, content in dfKNN.items():
@ -751,6 +751,7 @@ def PreprocessingPred():
predictionsRF = []
for column, content in dfRF.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsRF.append(el)
@ -761,6 +762,7 @@ def PreprocessingPred():
predictions = []
for column, content in df_concatProbs.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictions.append(el)
@ -805,11 +807,12 @@ def PreprocessingPredEnsemble():
numberIDMLP = []
numberIDRF = []
numberIDGradB = []
print(EnsembleActive)
for el in EnsembleActive:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
items = match.groups()
print(items)
if ((items[0] == "KNN") | (items[0] == "KNNC") | (items[0] == "KNNM") | (items[0] == "KNNCC") | (items[0] == "KNNCM") | (items[0] == "KNNMC") | (items[0] == "KNNMM")):
numberIDKNN.append(int(items[1]))
elif ((items[0] == "LR") | (items[0] == "LRC") | (items[0] == "LRM") | (items[0] == "LRCC") | (items[0] == "LRCM") | (items[0] == "LRMC") | (items[0] == "LRMM")):
@ -991,7 +994,7 @@ def preProcsumPerMetric(factors):
name, values = row
for loop, elements in enumerate(values):
rowSum = elements*factors[loop] + rowSum
if sum(factors) is 0:
if sum(factors) == 0:
sumPerClassifier = 0
else:
sumPerClassifier.append(rowSum/sum(factors) * 100)
@ -1007,7 +1010,7 @@ def preProcsumPerMetricEnsem(factors):
name, values = row
for loop, elements in enumerate(values):
rowSum = elements*factors[loop] + rowSum
if sum(factors) is 0:
if sum(factors) == 0:
sumPerClassifier = 0
else:
sumPerClassifier.append(rowSum/sum(factors) * 100)
@ -3874,7 +3877,7 @@ def preProcsumPerMetricCM(factors):
name, values = row
for loop, elements in enumerate(values):
rowSum = elements*factors[loop] + rowSum
if sum(factors) is 0:
if sum(factors) == 0:
sumPerClassifier = 0
else:
sumPerClassifier.append(rowSum/sum(factors) * 100)
@ -3890,7 +3893,7 @@ def preProcsumPerMetricCMSecond(factors):
name, values = row
for loop, elements in enumerate(values):
rowSum = elements*factors[loop] + rowSum
if sum(factors) is 0:
if sum(factors) == 0:
sumPerClassifier = 0
else:
sumPerClassifier.append(rowSum/sum(factors) * 100)
@ -4066,6 +4069,7 @@ def PreprocessingPredSel(SelectedIDs):
numberIDMLP = []
numberIDRF = []
numberIDGradB = []
for el in SelectedIDs:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
@ -4090,28 +4094,32 @@ def PreprocessingPredSel(SelectedIDs):
dfKNN = pd.DataFrame.from_dict(dicKNN)
dfKNN = dfKNN.loc[numberIDKNN]
dfKNN.index += addKNN
dfLR = pd.DataFrame.from_dict(dicLR)
dfLR = dfLR.loc[numberIDLR]
dfLR.index += addKNN
dfLR.index += addLR
dfMLP = pd.DataFrame.from_dict(dicMLP)
dfMLP = dfMLP.loc[numberIDMLP]
dfMLP.index += addKNN + addLR
dfMLP.index += addMLP
dfRF = pd.DataFrame.from_dict(dicRF)
dfRF = dfRF.loc[numberIDRF]
dfRF.index += addKNN + addLR + addMLP
dfRF.index += addRF
dfGradB = pd.DataFrame.from_dict(dicGradB)
dfGradB = dfGradB.loc[numberIDGradB]
dfGradB.index += addKNN + addLR + addMLP + addRF
dfGradB.index += addGradB
df_concatProbs = pd.concat([dfKNN, dfLR, dfMLP, dfRF, dfGradB])
df_concatProbs = df_concatProbs.reset_index(drop=True)
predictionsKNN = []
for column, content in dfKNN.items():
@ -4130,6 +4138,7 @@ def PreprocessingPredSel(SelectedIDs):
predictionsRF = []
for column, content in dfRF.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsRF.append(el)
@ -4153,6 +4162,7 @@ def RetrieveSelIDsPredict():
RetrieveIDsSelection = request.get_data().decode('utf8').replace("'", '"')
RetrieveIDsSelection = json.loads(RetrieveIDsSelection)
RetrieveIDsSelection = RetrieveIDsSelection['predictSelectionIDs']
ResultsSelPred = PreprocessingPredSel(RetrieveIDsSelection)
return 'Everything Okay'
@ -4172,11 +4182,12 @@ def PreprocessingPredSelEnsem(SelectedIDsEnsem):
numberIDMLP = []
numberIDRF = []
numberIDGradB = []
print(SelectedIDsEnsem)
for el in SelectedIDsEnsem:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
items = match.groups()
print(items)
if ((items[0] == "KNN") | (items[0] == "KNNC") | (items[0] == "KNNM") | (items[0] == "KNNCC") | (items[0] == "KNNCM") | (items[0] == "KNNMC") | (items[0] == "KNNMM")):
numberIDKNN.append(int(items[1]))
elif ((items[0] == "LR") | (items[0] == "LRC") | (items[0] == "LRM") | (items[0] == "LRCC") | (items[0] == "LRCM") | (items[0] == "LRMC") | (items[0] == "LRMM")):
@ -4208,11 +4219,11 @@ def PreprocessingPredSelEnsem(SelectedIDsEnsem):
dfMLP = df_concatProbs.loc[numberIDMLP]
dfRF = df_concatProbs.loc[numberIDRF]
dfGradB = df_concatProbs.loc[numberIDGradB]
print(dfGradB)
df_concatProbs = pd.DataFrame()
df_concatProbs = df_concatProbs.iloc[0:0]
df_concatProbs = pd.concat([dfKNN, dfLR, dfMLP, dfRF, dfGradB])
print(df_concatProbs)
predictionsKNN = []
for column, content in dfKNN.items():
el = [sum(x)/len(x) for x in zip(*content)]
@ -4237,12 +4248,12 @@ def PreprocessingPredSelEnsem(SelectedIDsEnsem):
for column, content in dfGradB.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsGradB.append(el)
print(predictionsGradB)
predictions = []
for column, content in df_concatProbs.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictions.append(el)
print(predictions)
return [predictionsKNN, predictionsLR, predictionsMLP, predictionsRF, predictionsGradB, predictions]
@cross_origin(origin='localhost',headers=['Content-Type','Authorization'])
@ -4255,7 +4266,7 @@ def RetrieveSelIDsPredictEnsem():
RetrieveIDsSelectionEnsem = RetrieveIDsSelectionEnsem['predictSelectionIDsCM']
ResultsSelPredEnsem = PreprocessingPredSelEnsem(RetrieveIDsSelectionEnsem)
print(ResultsSelPredEnsem)
return 'Everything Okay'
@app.route('/data/RetrievePredictionsEnsem', methods=["GET", "POST"])

Loading…
Cancel
Save