fixed first views

master
parent 585622e631
commit 4383fdfc00
  1. BIN
      __pycache__/run.cpython-37.pyc
  2. 16
      frontend/src/components/Ensemble.vue
  3. 61
      frontend/src/components/Main.vue
  4. 4
      frontend/src/components/Predictions.vue
  5. 142
      run.py

Binary file not shown.

@ -287,25 +287,25 @@ export default {
var allModels = JSON.parse(this.ScatterPlotResults[0])
OverviewPlotly.on('plotly_selected', function (evt) {
if (typeof evt !== 'undefined') {
var pushModelsRemainingTemp = []
const ClassifierIDsList = []
var pushModelsRemainingTempCM = []
const ClassifierIDsListCM = []
for (let i = 0; evt.points.length; i++) {
if (evt.points[i] === undefined) {
break
} else {
const OnlyId = evt.points[i].text.split(' ')[2]
const OnlyIdCleared = OnlyId.split('<br>')
ClassifierIDsList.push(OnlyIdCleared[0])
ClassifierIDsListCM.push(OnlyIdCleared[0])
}
}
for (let i = 0; i < allModels.length; i++) {
if (ClassifierIDsList.indexOf((allModels[i])) < 0) {
pushModelsRemainingTemp.push(allModels[i])
if (ClassifierIDsListCM.indexOf((allModels[i])) < 0) {
pushModelsRemainingTempCM.push(allModels[i])
}
}
EventBus.$emit('RemainingPointsCM', pushModelsRemainingTemp)
EventBus.$emit('SendSelectedPointsUpdateIndicatorCM', ClassifierIDsList)
EventBus.$emit('SendSelectedPointsToServerEventCM', ClassifierIDsList)
EventBus.$emit('RemainingPointsCM', pushModelsRemainingTempCM)
EventBus.$emit('SendSelectedPointsUpdateIndicatorCM', ClassifierIDsListCM)
EventBus.$emit('SendSelectedPointsToServerEventCM', ClassifierIDsListCM)
}
})
},

@ -144,7 +144,7 @@
<b-row class="md-3">
<b-col cols="6">
<mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center">Hyper-Parameters Predictions
<mdb-card-header color="primary-color" tag="h5" class="text-center">Hyper-Parameters' Predictions
</mdb-card-header>
<mdb-card-body>
<mdb-card-text class="text-center" style="min-height: 270px">
@ -155,7 +155,7 @@
</b-col>
<b-col cols="6">
<mdb-card style="margin-top: 15px;">
<mdb-card-header color="primary-color" tag="h5" class="text-center">Majority-Voting Ensemble Predictions
<mdb-card-header color="primary-color" tag="h5" class="text-center">Majority-Voting Ensemble's Predictions
</mdb-card-header>
<mdb-card-body>
<mdb-card-text class="text-center" style="min-height: 270px">
@ -217,8 +217,10 @@ export default Vue.extend({
data () {
return {
storeEnsemble: [],
PredictSelEnsem: [],
firstTimeExec: true,
unselectedRemainingPoints: [],
unselectedRemainingPointsEnsem: [],
Collection: 0,
OverviewResults: 0,
preDataResults: '',
@ -321,6 +323,8 @@ export default Vue.extend({
EventBus.$emit('emittedEventCallingGridSelection', this.OverviewResults)
this.firstTimeExec = false
} else {
this.PredictSelEnsem = []
EventBus.$emit('SendSelectedPointsToServerEventCM', this.PredictSelEnsem)
EventBus.$emit('emittedEventCallingCrossoverMutation', this.OverviewResults)
EventBus.$emit('emittedEventCallingGridCrossoverMutation', this.OverviewResults)
EventBus.$emit('emittedEventCallingGridSelectionCrossoverMutation', this.OverviewResults)
@ -346,6 +350,8 @@ export default Vue.extend({
.then(response => {
this.OverviewResultsCM = response.data.OverviewResultsCM
console.log('Server successfully sent all the data related to visualizations!')
this.PredictSel = []
EventBus.$emit('SendSelectedPointsToServerEvent', this.PredictSel)
EventBus.$emit('emittedEventCallingScatterPlot', this.OverviewResultsCM)
EventBus.$emit('emittedEventCallingGrid', this.OverviewResultsCM)
EventBus.$emit('emittedEventCallingGridSelection', this.OverviewResultsCM)
@ -423,8 +429,52 @@ export default Vue.extend({
console.log(error)
})
},
SendSelectedIDsEnsemble () {
const path = `http://127.0.0.1:5000/data/SendtoSeverSelIDsEnsem`
const postData = {
predictSelectionIDsCM: this.ClassifierIDsListCM
}
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.post(path, postData, axiosConfig)
.then(response => {
console.log('Sent the selected IDs to compute predictions!')
this.retrievePredictionsSelEnsemble()
})
.catch(error => {
console.log(error)
})
},
retrievePredictionsSelEnsemble () {
const path = `http://localhost:5000/data/RetrievePredictionsEnsem`
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 => {
this.PredictSelEnsem = response.data.PredictSelEnsem
console.log('Server successfully sent the predictions!')
EventBus.$emit('SendSelectedPointsToServerEventCM', this.PredictSelEnsem)
})
.catch(error => {
console.log(error)
})
},
SelectedPointsCM () {
this.OverSelLengthCM = this.ClassifierIDsListCM.length
this.SendSelectedIDsEnsemble()
},
SendSelectedPointsToServer () {
if (this.ClassifierIDsList === ''){
@ -818,9 +868,12 @@ export default Vue.extend({
const path = `http://127.0.0.1:5000/data/CrossoverMutation`
EventBus.$emit('SendStoredEnsemble', this.storeEnsemble)
var mergedStoreEnsembleLoc = [].concat.apply([], this.storeEnsemble)
const postData = {
RemainingPoints: this.unselectedRemainingPoints
RemainingPoints: this.unselectedRemainingPoints,
StoreEnsemble: mergedStoreEnsembleLoc
}
const axiosConfig = {
headers: {
@ -885,6 +938,8 @@ export default Vue.extend({
EventBus.$on('RemainingPoints', data => { this.unselectedRemainingPoints = data })
EventBus.$on('InitializeCrossoverMutation', this.sendPointsCrossMutat)
EventBus.$on('RemainingPointsCM', data => { this.unselectedRemainingPointsEnsem = data })
EventBus.$on('ChangeKey', data => { this.keyNow = data })
EventBus.$on('SendSelectedPointsUpdateIndicator', data => { this.ClassifierIDsList = data; this.storeEnsemble.push(this.ClassifierIDsList)})
EventBus.$on('SendSelectedPointsUpdateIndicator', this.SelectedPoints)

@ -61,8 +61,6 @@ export default {
var KNNPred = predictions[0]
var LRPred = predictions[1]
var PredAver = predictions[2]
console.log(PredAver)
var dataAver = []
var dataAverGetResults = []
var dataKNN = []
@ -125,7 +123,7 @@ export default {
}
var classStore = [].concat.apply([], classArray);
console.log(classStore)
// === Set up canvas === //
var width = 1200,

142
run.py

@ -76,6 +76,9 @@ def reset():
global yData
yData = []
global EnsembleActive
EnsembleActive = []
global addKNN
addKNN = 0
@ -205,6 +208,9 @@ def retrieveFileName():
global detailsParams
detailsParams = []
global EnsembleActive
EnsembleActive = []
global addKNN
addKNN = 0
@ -652,6 +658,53 @@ def PreprocessingPred():
return [predictionsKNN, predictionsLR, predictions]
def PreprocessingPredEnsemble():
global EnsembleActive
numberIDKNN = []
numberIDLR = []
for el in EnsembleActive:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
items = match.groups()
if (items[0] == 'KNN'):
numberIDKNN.append(int(items[1]))
else:
numberIDLR.append(int(items[1]))
dicKNN = allParametersPerformancePerModel[3]
dicLR = allParametersPerformancePerModel[7]
dfKNN = pd.DataFrame.from_dict(dicKNN)
dfLR = pd.DataFrame.from_dict(dicLR)
df_concatProbs = pd.concat([dfKNN, dfLR])
df_concatProbs = df_concatProbs.reset_index(drop=True)
dfKNN = df_concatProbs.loc[numberIDKNN]
dfLR = df_concatProbs.loc[numberIDLR]
df_concatProbs = pd.DataFrame()
df_concatProbs = df_concatProbs.iloc[0:0]
df_concatProbs = pd.concat([dfKNN, dfLR])
predictionsKNN = []
for column, content in dfKNN.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsKNN.append(el)
predictionsLR = []
for column, content in dfLR.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsLR.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]
def PreprocessingParam():
dicKNN = allParametersPerformancePerModel[1]
dicLR = allParametersPerformancePerModel[5]
@ -765,6 +818,7 @@ def InitializeEnsemble():
global ModelSpaceMDS
global ModelSpaceTSNE
global allParametersPerformancePerModel
global EnsembleActive
XModels = XModels.fillna(0)
@ -773,7 +827,10 @@ def InitializeEnsemble():
ModelSpaceTSNE = ModelSpaceTSNE.tolist()
ModelSpaceUMAP = FunUMAP(XModels)
PredictionProbSel = PreprocessingPred()
if (len(EnsembleActive) == 0):
PredictionProbSel = PreprocessingPred()
else:
PredictionProbSel = PreprocessingPredEnsemble()
returnResults(ModelSpaceMDS,ModelSpaceTSNE,ModelSpaceUMAP,PredictionProbSel)
@ -820,6 +877,13 @@ def CrossoverMutateFun():
RemainingIds = RemainingIds['RemainingPoints']
global EnsembleActive
EnsembleActive = request.get_data().decode('utf8').replace("'", '"')
EnsembleActive = json.loads(EnsembleActive)
EnsembleActive = EnsembleActive['StoreEnsemble']
global XData
global yData
global LRModelsCount
@ -1377,28 +1441,25 @@ def PreprocessingPredSel(SelectedIDs):
numberIDKNN = []
numberIDLR = []
print(SelectedIDs)
for el in SelectedIDs:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
items = match.groups()
if (items[0] == 'KNN'):
numberIDKNN.append(int(items[1]) - addKNN)
numberIDKNN.append(int(items[1]) -addKNN)
else:
numberIDLR.append(int(items[1]) - addLR)
print(numberIDKNN)
dicKNN = allParametersPerformancePerModel[3]
dicLR = allParametersPerformancePerModel[7]
dfKNN = pd.DataFrame.from_dict(dicKNN)
print(dfKNN)
dfKNN = dfKNN.loc[numberIDKNN]
dfLR = pd.DataFrame.from_dict(dicLR)
dfLR = dfLR.loc[numberIDLR]
print(dfLR)
dfLR.index += addKNN
df_concatProbs = pd.concat([dfKNN, dfLR])
print(df_concatProbs)
predictionsKNN = []
for column, content in dfKNN.items():
@ -1436,4 +1497,71 @@ def SendPredictSel():
response = {
'PredictSel': ResultsSelPred
}
return jsonify(response)
def PreprocessingPredSelEnsem(SelectedIDsEnsem):
numberIDKNN = []
numberIDLR = []
for el in SelectedIDsEnsem:
match = re.match(r"([a-z]+)([0-9]+)", el, re.I)
if match:
items = match.groups()
if (items[0] == 'KNN'):
numberIDKNN.append(int(items[1]))
else:
numberIDLR.append(int(items[1]))
dicKNN = allParametersPerformancePerModel[3]
dicLR = allParametersPerformancePerModel[7]
dfKNN = pd.DataFrame.from_dict(dicKNN)
dfLR = pd.DataFrame.from_dict(dicLR)
df_concatProbs = pd.concat([dfKNN, dfLR])
df_concatProbs = df_concatProbs.reset_index(drop=True)
dfKNN = df_concatProbs.loc[numberIDKNN]
dfLR = df_concatProbs.loc[numberIDLR]
df_concatProbs = pd.DataFrame()
df_concatProbs = df_concatProbs.iloc[0:0]
df_concatProbs = pd.concat([dfKNN, dfLR])
predictionsKNN = []
for column, content in dfKNN.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsKNN.append(el)
predictionsLR = []
for column, content in dfLR.items():
el = [sum(x)/len(x) for x in zip(*content)]
predictionsLR.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]
@cross_origin(origin='localhost',headers=['Content-Type','Authorization'])
@app.route('/data/SendtoSeverSelIDsEnsem', methods=["GET", "POST"])
def RetrieveSelIDsPredictEnsem():
global ResultsSelPredEnsem
ResultsSelPredEnsem = []
RetrieveIDsSelectionEnsem = request.get_data().decode('utf8').replace("'", '"')
RetrieveIDsSelectionEnsem = json.loads(RetrieveIDsSelectionEnsem)
RetrieveIDsSelectionEnsem = RetrieveIDsSelectionEnsem['predictSelectionIDsCM']
ResultsSelPredEnsem = PreprocessingPredSelEnsem(RetrieveIDsSelectionEnsem)
return 'Everything Okay'
@app.route('/data/RetrievePredictionsEnsem', methods=["GET", "POST"])
def SendPredictSelEnsem():
global ResultsSelPredEnsem
response = {
'PredictSelEnsem': ResultsSelPredEnsem
}
return jsonify(response)
Loading…
Cancel
Save