From a51d44d123c9cf5a20751117cc8a1fbfb39c627f Mon Sep 17 00:00:00 2001 From: Angelos Chatzimparmpas Date: Mon, 7 Dec 2020 16:56:53 +0100 Subject: [PATCH] new views --- __pycache__/run.cpython-37.pyc | Bin 18497 -> 18497 bytes __pycache__/run.cpython-38.pyc | Bin 0 -> 20262 bytes frontend/package-lock.json | 9 + frontend/package.json | 1 + .../src/components/DataSetExecController.vue | 86 -- frontend/src/components/DataSetSlider.vue | 156 +++ frontend/src/components/DataSpace.vue | 226 ++++ frontend/src/components/FeatureSpace1.vue | 684 ----------- frontend/src/components/FeatureSpace3.vue | 686 ----------- frontend/src/components/FeatureSpace4.vue | 685 ----------- ...atureSpace2.vue => FeatureSpaceDetail.vue} | 83 +- .../src/components/FeatureSpaceOverview.vue | 1048 +++++++++++++++++ frontend/src/components/Heatmap.vue | 595 ++++++++++ frontend/src/components/Main.vue | 231 +--- frontend/src/components/Results.vue | 141 +++ frontend/src/components/Slider.vue | 99 -- run.py | 128 +- 17 files changed, 2390 insertions(+), 2468 deletions(-) create mode 100644 __pycache__/run.cpython-38.pyc delete mode 100644 frontend/src/components/DataSetExecController.vue create mode 100644 frontend/src/components/DataSetSlider.vue create mode 100644 frontend/src/components/DataSpace.vue delete mode 100644 frontend/src/components/FeatureSpace1.vue delete mode 100644 frontend/src/components/FeatureSpace3.vue delete mode 100644 frontend/src/components/FeatureSpace4.vue rename frontend/src/components/{FeatureSpace2.vue => FeatureSpaceDetail.vue} (91%) create mode 100644 frontend/src/components/FeatureSpaceOverview.vue create mode 100644 frontend/src/components/Heatmap.vue create mode 100644 frontend/src/components/Results.vue delete mode 100644 frontend/src/components/Slider.vue diff --git a/__pycache__/run.cpython-37.pyc b/__pycache__/run.cpython-37.pyc index d40c844963b8ee19a88e95b669d8b1c3d368b0a9..59db408bd8b67e07adbdc1db18fdbba7e17ee4f1 100644 GIT binary patch delta 1684 zcmaKtU2Icj7{~ke<4|e3F|)GL6|sz{b!A&t6^&zGbY-|eP?yN+7pGkb4X{(6o~oM) z3>GugC2by)5kR*YGZXP+^9ZQXY5l+%;bMtbO}y~h5HGkiB)UCtSU5_j-%`#eW@Ibgk5ioBVt2gq244sfL}#?1pY3H2$ORvY0T=-g(Q4 zz_h1X(c}tB^Rj0jJl>7{{ukgOiJ+jPu%p0kAj7Y2JOkab=P~7+kRIHOdA423`c716~3S0&(CK4tVRu%lwe{Y2`IIG@kah`cA++ z35)}$Bx3bFMCvGydp*i=I8PgYdviiL1N#lm`#PLCY0B(!T-fd98@?uy=eovE|5aRV z-0|qDSjq;2b}C)OTxrtcYCLr`rH|5^G8}WKDLI@<=+B#xpq1X@hy7bzd2Hqaavb*$ z3g#>R9b%II@(0AEQMdUwn__1EF8_IVhnV8~0*A#6=K~%w&L0G}iL-nyFe?^}V_Tz6 zpV<*JKeH9({kVRAwp#d^=7DPALiO-HAzfMBn`cAyBEy$LLt8(WNy#)zX9|j<^+5ZY zA!*ybx3Vm}MmF<*vIo}4YFfgwK)o#wK2n;ZqLR=?5~@z`qr!C(MP-<@^oUwio=j3I znW6XKbYu>z=_JkYLQA;)9JJ?w3&1ZM|ZVi|I%@!T6o{ifi0z?t`?xI(Q;F-jn(F8PgTt( zo5hl`O0i-g`FL8Qa>_r$fg2^HZOA`N_!wlbcU}8>|JO6)@ZWC9JQ2uYoDx8(;}Y05!n3 zz;{4teyD&;%nf}H`~YBL=tp1%sI`P7e}Z{cqUcPki6gr-BASH{`O-2F0e zFe}Uy-9CH9p`Hfex5yTmotE#I+o#NUyZ5+IY*I1S#48amw?&>1b9_3|FC2U=5_4Oz z*e*AeZMAc_FC-K`*f+Kb*{@&>%#VT1Zd-44iW)&ne6w%=>PzQ!-V?pcjcUXkBiUo= wQJOOJ=sFQC+7lXOiVo7UdXoB)O$wL*l0Y7q1k7&C!@?oS0Vu$de5;=P2V!T9%m4rY delta 1699 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 Cve zT3Hckq-t5~K^4DTQ9o`ys`1AXTAIIeSjLAA{8fe4*SdqhmRWWWNz-tXquS7i6IxH} z7JN?8E{JzUwSiWex6c?*Kzp0oKKi)FV%^qp=8rcv>?-{V4*#~*hKZlk;GK8WByg+U zXjHA^Ox>;2)H45w&GIsKZ`ap(uk~JKReTnO@UAY-K;z&yK1{hr^eO?~143K`Z$}evK;P|p{eepRK_&B~v phE48 -
- - - - -
- - - diff --git a/frontend/src/components/DataSetSlider.vue b/frontend/src/components/DataSetSlider.vue new file mode 100644 index 0000000..95bdb37 --- /dev/null +++ b/frontend/src/components/DataSetSlider.vue @@ -0,0 +1,156 @@ + + + diff --git a/frontend/src/components/DataSpace.vue b/frontend/src/components/DataSpace.vue new file mode 100644 index 0000000..82b1ba9 --- /dev/null +++ b/frontend/src/components/DataSpace.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/FeatureSpace1.vue b/frontend/src/components/FeatureSpace1.vue deleted file mode 100644 index fa38b2c..0000000 --- a/frontend/src/components/FeatureSpace1.vue +++ /dev/null @@ -1,684 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/FeatureSpace3.vue b/frontend/src/components/FeatureSpace3.vue deleted file mode 100644 index 80d10db..0000000 --- a/frontend/src/components/FeatureSpace3.vue +++ /dev/null @@ -1,686 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/FeatureSpace4.vue b/frontend/src/components/FeatureSpace4.vue deleted file mode 100644 index 21a836c..0000000 --- a/frontend/src/components/FeatureSpace4.vue +++ /dev/null @@ -1,685 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/FeatureSpace2.vue b/frontend/src/components/FeatureSpaceDetail.vue similarity index 91% rename from frontend/src/components/FeatureSpace2.vue rename to frontend/src/components/FeatureSpaceDetail.vue index 2c400a9..8a4274d 100644 --- a/frontend/src/components/FeatureSpace2.vue +++ b/frontend/src/components/FeatureSpaceDetail.vue @@ -1,6 +1,6 @@ @@ -13,11 +13,12 @@ import * as d3Base from 'd3' const d3 = Object.assign(d3Base) export default { - name: 'FeatureSpace1', + name: 'FeatureSpaceDetail', data () { return { - dataFS2: [], - dataFS2Trans: [], + dataFS: [], + dataFSTrans: [], + quadrantNumber: 5, jsonData: [], corrMatrixComb: [], corrMatrixCombTotal: [], @@ -29,8 +30,9 @@ export default { methods: { initializeNetwork () { - var listofNodes = this.dataFS2[0] - var dataLoc = JSON.parse(this.dataFS2[3]) + var quadrantNumberLocal = this.quadrantNumber + var listofNodes = this.dataFS[0] + var dataLoc = JSON.parse(this.dataFS[quadrantNumberLocal+2]) var pushEachFinal = [] var pushEach var oldVal @@ -43,13 +45,13 @@ export default { var VIFRemainingLoc = [] var MIRemainingLoc = [] - this.dataFS2Trans.forEach(function(element, index) { + this.dataFSTrans.forEach(function(element, index) { var round = element.round - corrMatrixCombLoc.push(Object.values(JSON.parse(round[5]))) - corrMatrixCombTotalLoc.push(Object.values(JSON.parse(round[9]))[0] * 100) - VIFRemainingLoc.push(Object.values(JSON.parse(round[13]))[0]) - MIRemainingLoc.push(JSON.parse(round[17])) - round = JSON.parse(round[1]) + corrMatrixCombLoc.push(Object.values(JSON.parse(round[quadrantNumberLocal*2-1]))) + corrMatrixCombTotalLoc.push(Object.values(JSON.parse(round[quadrantNumberLocal*3-1]))[0] * 100) + VIFRemainingLoc.push(Object.values(JSON.parse(round[quadrantNumberLocal*4-1]))[0]) + MIRemainingLoc.push(JSON.parse(round[quadrantNumberLocal*5-1])) + round = JSON.parse(round[quadrantNumberLocal-1]) oldVal = 0 newVal = 0 outcome = 0 @@ -69,11 +71,11 @@ export default { pushEach.push({keyIns: "round", valueIns: outcome}) var roundLogE = element.roundLogE - corrMatrixCombLoc.push(Object.values(JSON.parse(roundLogE[5]))) - corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLogE[9]))[0] * 100) - VIFRemainingLoc.push(Object.values(JSON.parse(roundLogE[13]))[0]) - MIRemainingLoc.push(JSON.parse(roundLogE[17])) - roundLogE = JSON.parse(roundLogE[1]) + corrMatrixCombLoc.push(Object.values(JSON.parse(roundLogE[quadrantNumberLocal*2-1]))) + corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLogE[quadrantNumberLocal*3-1]))[0] * 100) + VIFRemainingLoc.push(Object.values(JSON.parse(roundLogE[quadrantNumberLocal*4-1]))[0]) + MIRemainingLoc.push(JSON.parse(roundLogE[quadrantNumberLocal*5-1])) + roundLogE = JSON.parse(roundLogE[quadrantNumberLocal-1]) oldVal = 0 newVal = 0 outcome = 0 @@ -92,11 +94,11 @@ export default { pushEach.push({keyIns: "roundLogE", valueIns: outcome}) var roundLog2 = element.roundLog2 - corrMatrixCombLoc.push(Object.values(JSON.parse(roundLog2[5]))) - corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLog2[9]))[0] * 100) - VIFRemainingLoc.push(Object.values(JSON.parse(roundLog2[13]))[0]) - MIRemainingLoc.push(JSON.parse(roundLog2[17])) - roundLog2 = JSON.parse(roundLog2[1]) + corrMatrixCombLoc.push(Object.values(JSON.parse(roundLog2[quadrantNumberLocal*2-1]))) + corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLog2[quadrantNumberLocal*3-1]))[0] * 100) + VIFRemainingLoc.push(Object.values(JSON.parse(roundLog2[quadrantNumberLocal*4-1]))[0]) + MIRemainingLoc.push(JSON.parse(roundLog2[quadrantNumberLocal*5-1])) + roundLog2 = JSON.parse(roundLog2[quadrantNumberLocal-1]) oldVal = 0 newVal = 0 outcome = 0 @@ -115,11 +117,11 @@ export default { pushEach.push({keyIns: "roundLog2", valueIns: outcome}) var roundLog10 = element.roundLog10 - corrMatrixCombLoc.push(Object.values(JSON.parse(roundLog10[5]))) - corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLog10[9]))[0] * 100) - VIFRemainingLoc.push(Object.values(JSON.parse(roundLog10[13]))[0]) - MIRemainingLoc.push(JSON.parse(roundLog10[17])) - roundLog10 = JSON.parse(roundLog10[1]) + corrMatrixCombLoc.push(Object.values(JSON.parse(roundLog10[quadrantNumberLocal*2-1]))) + corrMatrixCombTotalLoc.push(Object.values(JSON.parse(roundLog10[quadrantNumberLocal*3-1]))[0] * 100) + VIFRemainingLoc.push(Object.values(JSON.parse(roundLog10[quadrantNumberLocal*4-1]))[0]) + MIRemainingLoc.push(JSON.parse(roundLog10[quadrantNumberLocal*5-1])) + roundLog10 = JSON.parse(roundLog10[quadrantNumberLocal-1]) oldVal = 0 newVal = 0 outcome = 0 @@ -195,13 +197,12 @@ export default { graphVizualization () { var computeNodesVar = this.computeNodes - - var listofNodes = this.dataFS2[0] - var uniqueTarget = JSON.parse(this.dataFS2[15]) - var corrTarget = JSON.parse(this.dataFS2[7]) - var corrGlob = JSON.parse(this.dataFS2[11]) - var VIFVar = JSON.parse(this.dataFS2[19]) - var MIVar = JSON.parse(this.dataFS2[23]) + var listofNodes = this.dataFS[0] + var corrTarget = JSON.parse(this.dataFS[this.quadrantNumber*2+2]) + var corrGlob = JSON.parse(this.dataFS[this.quadrantNumber*3+2]) + var uniqueTarget = JSON.parse(this.dataFS[this.quadrantNumber*4+2]) + var VIFVar = JSON.parse(this.dataFS[this.quadrantNumber*5+2]) + var MIVar = JSON.parse(this.dataFS[this.quadrantNumber*6+2]) MIVar = MIVar.concat(this.MIRemaining) var colorCateg = d3.scaleOrdinal(d3.schemeAccent) @@ -288,7 +289,7 @@ export default { .domain(d3.ticks([MIMin, MIMax, 10])) .range(['#67001f','#b2182b','#d6604d','#f4a582','#fddbc7','#d1e5f0','#92c5de','#4393c3','#2166ac','#053061']); - var svg = d3.select("#FeatureGraph2"); + var svg = d3.select("#FeatureGraph"); svg.selectAll("*").remove(); var width = 1000; @@ -301,7 +302,7 @@ export default { var dispatch = d3.dispatch('layoutend'); - svg = d3.select("#FeatureGraph2").append("svg") + svg = d3.select("#FeatureGraph").append("svg") .attr("width", width) .attr("height", height); @@ -653,15 +654,17 @@ export default { }, reset () { - var svg = d3.select("#FeatureGraph2"); + var svg = d3.select("#FeatureGraph"); svg.selectAll("*").remove(); }, }, mounted () { - EventBus.$on('quadTrans2', data => { this.dataFS2Trans = data }) - EventBus.$on('quad2', data => { this.dataFS2 = data }) - EventBus.$on('quad2', this.initializeNetwork) + EventBus.$on('quadTrans', data => { this.dataFSTrans = data }) + EventBus.$on('quad', data => { this.dataFS = data }) + EventBus.$on('quad', this.initializeNetwork) EventBus.$on('countNodes1', data => { this.computeNodes = data }) + + EventBus.$on('reset', this.reset) } } diff --git a/frontend/src/components/FeatureSpaceOverview.vue b/frontend/src/components/FeatureSpaceOverview.vue new file mode 100644 index 0000000..298a600 --- /dev/null +++ b/frontend/src/components/FeatureSpaceOverview.vue @@ -0,0 +1,1048 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Heatmap.vue b/frontend/src/components/Heatmap.vue new file mode 100644 index 0000000..9010d88 --- /dev/null +++ b/frontend/src/components/Heatmap.vue @@ -0,0 +1,595 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Main.vue b/frontend/src/components/Main.vue index 80e77a6..7b05b14 100755 --- a/frontend/src/components/Main.vue +++ b/frontend/src/components/Main.vue @@ -4,165 +4,66 @@ - + - Data Sets Manager - - - - - - - - - - - Provenance + Data Space (Sorted by Predicted Probability) - + + + - - - Results + + + + + Feature Space Overview + + + + + + + + + + + Feature Space Detail + - + + - - - - - - - I. Feature Space - Highly Correct Prediction Probability - - - - - - - - - - - II. Feature Space - Slightly Correct Prediction Probability - - - - - - - - - - - - - III. Feature Space - Slightly Wrong Prediction Probability - - - - - - - - - - - IV. Feature Space - Highly Wrong Prediction Probability - - - - - - - - - + + + + + Final Predictive Results + + + + + + + + + @@ -170,12 +71,12 @@ + + \ No newline at end of file diff --git a/frontend/src/components/Slider.vue b/frontend/src/components/Slider.vue deleted file mode 100644 index 53411ad..0000000 --- a/frontend/src/components/Slider.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/run.py b/run.py index 0a4dc4d..22d5790 100644 --- a/run.py +++ b/run.py @@ -456,7 +456,7 @@ def create_global_function(): # result is mean of test_score return np.mean(result['test_score']) -# check this issue later because we are getting the same results +# check this issue later because we are not getting the same results def executeModel(): create_global_function() @@ -474,12 +474,10 @@ def executeModel(): return 'Everything Okay' -def Transformation(quadrant1, quadrant2, quadrant3, quadrant4): +def Transformation(quadrant1, quadrant2, quadrant3, quadrant4, quadrant5): XDataNumeric = XData.select_dtypes(include='number') - numberOfColumns = len(XDataNumeric.columns) - columns = list(XDataNumeric) - decimals = 0 + columns = list(XDataNumeric) global packCorrTransformed packCorrTransformed = [] @@ -491,49 +489,48 @@ def Transformation(quadrant1, quadrant2, quadrant3, quadrant4): d={} XDataNumericCopy = XDataNumeric.copy() XDataNumericCopy[i] = XDataNumericCopy[i].round() - for number in range(1,5): + for number in range(1,6): quadrantVariable = str('quadrant%s' % number) illusion = locals()[quadrantVariable] d["DataRows{0}".format(number)] = XDataNumericCopy.iloc[illusion, :] - dicTransf["round"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], quadrant1, quadrant2, quadrant3, quadrant4, i, count) + dicTransf["round"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], d['DataRows5'], quadrant1, quadrant2, quadrant3, quadrant4, quadrant5, i, count) d={} XDataNumericCopy = XDataNumeric.copy() XDataNumericCopy[i] = np.log(XDataNumericCopy[i]) XDataNumericCopy[i] = XDataNumericCopy[i].round() - for number in range(1,5): + for number in range(1,6): quadrantVariable = str('quadrant%s' % number) illusion = locals()[quadrantVariable] d["DataRows{0}".format(number)] = XDataNumericCopy.iloc[illusion, :] - dicTransf["roundLogE"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], quadrant1, quadrant2, quadrant3, quadrant4, i, count) + dicTransf["roundLogE"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], d['DataRows5'], quadrant1, quadrant2, quadrant3, quadrant4, quadrant5, i, count) d={} XDataNumericCopy = XDataNumeric.copy() XDataNumericCopy[i] = np.log2(XDataNumericCopy[i]) XDataNumericCopy[i] = XDataNumericCopy[i].round() - for number in range(1,5): + for number in range(1,6): quadrantVariable = str('quadrant%s' % number) illusion = locals()[quadrantVariable] d["DataRows{0}".format(number)] = XDataNumericCopy.iloc[illusion, :] - dicTransf["roundLog2"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], quadrant1, quadrant2, quadrant3, quadrant4, i, count) + dicTransf["roundLog2"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], d['DataRows5'], quadrant1, quadrant2, quadrant3, quadrant4, quadrant5, i, count) d={} XDataNumericCopy = XDataNumeric.copy() XDataNumericCopy[i] = np.log10(XDataNumericCopy[i]) XDataNumericCopy[i] = XDataNumericCopy[i].round() - for number in range(1,5): + for number in range(1,6): quadrantVariable = str('quadrant%s' % number) illusion = locals()[quadrantVariable] d["DataRows{0}".format(number)] = XDataNumericCopy.iloc[illusion, :] - dicTransf["roundLog10"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], quadrant1, quadrant2, quadrant3, quadrant4, i, count) + dicTransf["roundLog10"] = NewComputationTransf(d['DataRows1'], d['DataRows2'], d['DataRows3'], d['DataRows4'], d['DataRows5'], quadrant1, quadrant2, quadrant3, quadrant4, quadrant5, i, count) packCorrTransformed.append(dicTransf) return 'Everything Okay' -def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, quadrant2, quadrant3, quadrant4, feature, count): +def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, DataRows5, quadrant1, quadrant2, quadrant3, quadrant4, quadrant5, feature, count): - # Main Features corrMatrix1 = DataRows1.corr() corrMatrix1 = corrMatrix1.abs() corrMatrix2 = DataRows2.corr() @@ -542,31 +539,38 @@ def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, corrMatrix3 = corrMatrix3.abs() corrMatrix4 = DataRows4.corr() corrMatrix4 = corrMatrix4.abs() + corrMatrix5 = DataRows5.corr() + corrMatrix5 = corrMatrix5.abs() corrMatrix1 = corrMatrix1.loc[[feature]] corrMatrix2 = corrMatrix2.loc[[feature]] corrMatrix3 = corrMatrix3.loc[[feature]] corrMatrix4 = corrMatrix4.loc[[feature]] + corrMatrix5 = corrMatrix5.loc[[feature]] DataRows1 = DataRows1.reset_index(drop=True) DataRows2 = DataRows2.reset_index(drop=True) DataRows3 = DataRows3.reset_index(drop=True) DataRows4 = DataRows4.reset_index(drop=True) + DataRows5 = DataRows5.reset_index(drop=True) targetRows1 = [yData[i] for i in quadrant1] targetRows2 = [yData[i] for i in quadrant2] targetRows3 = [yData[i] for i in quadrant3] targetRows4 = [yData[i] for i in quadrant4] + targetRows5 = [yData[i] for i in quadrant5] targetRows1Arr = np.array(targetRows1) targetRows2Arr = np.array(targetRows2) targetRows3Arr = np.array(targetRows3) targetRows4Arr = np.array(targetRows4) + targetRows5Arr = np.array(targetRows5) uniqueTarget1 = unique(targetRows1) uniqueTarget2 = unique(targetRows2) uniqueTarget3 = unique(targetRows3) uniqueTarget4 = unique(targetRows4) + uniqueTarget5 = unique(targetRows5) if (len(targetRows1Arr) > 0): onehotEncoder1 = OneHotEncoder(sparse=False) @@ -668,21 +672,48 @@ def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, VIF4 = pd.Series() MI4List = [] - corrMatrixComb1 = corrMatrixComb1.loc[[feature]] + if (len(targetRows5Arr) > 0): + onehotEncoder5 = OneHotEncoder(sparse=False) + targetRows5Arr = targetRows5Arr.reshape(len(targetRows5Arr), 1) + onehotEncoder5 = onehotEncoder5.fit_transform(targetRows5Arr) + hotEncoderDF5 = pd.DataFrame(onehotEncoder5) + concatDF5 = pd.concat([DataRows5, hotEncoderDF5], axis=1) + corrMatrixComb5 = concatDF5.corr() + corrMatrixComb5 = corrMatrixComb5.abs() + corrMatrixComb5 = corrMatrixComb5.iloc[:,-len(uniqueTarget5):] + X5 = add_constant(DataRows5.dropna()) + VIF5 = pd.Series([variance_inflation_factor(X5.values, i) + for i in range(X5.shape[1])], + index=X5.columns) + VIF5 = VIF5.loc[[feature]] + if (len(targetRows5Arr) > 2): + MI5 = mutual_info_classif(DataRows5, targetRows5Arr) + MI5List = MI5.tolist() + MI5List = MI5List[count] + else: + MI5List = [] + else: + corrMatrixComb5 = pd.DataFrame() + VIF5 = pd.Series() + MI5List = [] + corrMatrixComb1 = corrMatrixComb1.loc[[feature]] corrMatrixComb2 = corrMatrixComb2.loc[[feature]] corrMatrixComb3 = corrMatrixComb3.loc[[feature]] corrMatrixComb4 = corrMatrixComb4.loc[[feature]] + corrMatrixComb5 = corrMatrixComb5.loc[[feature]] targetRows1ArrDF = pd.DataFrame(targetRows1Arr) targetRows2ArrDF = pd.DataFrame(targetRows2Arr) targetRows3ArrDF = pd.DataFrame(targetRows3Arr) targetRows4ArrDF = pd.DataFrame(targetRows4Arr) + targetRows5ArrDF = pd.DataFrame(targetRows5Arr) concatAllDF1 = pd.concat([DataRows1, targetRows1ArrDF], axis=1) concatAllDF2 = pd.concat([DataRows2, targetRows2ArrDF], axis=1) concatAllDF3 = pd.concat([DataRows3, targetRows3ArrDF], axis=1) concatAllDF4 = pd.concat([DataRows4, targetRows4ArrDF], axis=1) + concatAllDF5 = pd.concat([DataRows5, targetRows5ArrDF], axis=1) corrMatrixCombTotal1 = concatAllDF1.corr() corrMatrixCombTotal1 = corrMatrixCombTotal1.abs() @@ -692,6 +723,8 @@ def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, corrMatrixCombTotal3 = corrMatrixCombTotal3.abs() corrMatrixCombTotal4 = concatAllDF4.corr() corrMatrixCombTotal4 = corrMatrixCombTotal4.abs() + corrMatrixCombTotal5 = concatAllDF5.corr() + corrMatrixCombTotal5 = corrMatrixCombTotal5.abs() corrMatrixCombTotal1 = corrMatrixCombTotal1.loc[[feature]] corrMatrixCombTotal1 = corrMatrixCombTotal1.iloc[:,-1] @@ -701,11 +734,14 @@ def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, corrMatrixCombTotal3 = corrMatrixCombTotal3.iloc[:,-1] corrMatrixCombTotal4 = corrMatrixCombTotal4.loc[[feature]] corrMatrixCombTotal4 = corrMatrixCombTotal4.iloc[:,-1] + corrMatrixCombTotal5 = corrMatrixCombTotal5.loc[[feature]] + corrMatrixCombTotal5 = corrMatrixCombTotal5.iloc[:,-1] corrMatrixCombTotal1 = pd.concat([corrMatrixCombTotal1.tail(1)]) corrMatrixCombTotal2 = pd.concat([corrMatrixCombTotal2.tail(1)]) corrMatrixCombTotal3 = pd.concat([corrMatrixCombTotal3.tail(1)]) corrMatrixCombTotal4 = pd.concat([corrMatrixCombTotal4.tail(1)]) + corrMatrixCombTotal5 = pd.concat([corrMatrixCombTotal5.tail(1)]) packCorrLoc = [] @@ -713,26 +749,31 @@ def NewComputationTransf(DataRows1, DataRows2, DataRows3, DataRows4, quadrant1, packCorrLoc.append(corrMatrix2.to_json()) packCorrLoc.append(corrMatrix3.to_json()) packCorrLoc.append(corrMatrix4.to_json()) + packCorrLoc.append(corrMatrix5.to_json()) packCorrLoc.append(corrMatrixComb1.to_json()) packCorrLoc.append(corrMatrixComb2.to_json()) packCorrLoc.append(corrMatrixComb3.to_json()) packCorrLoc.append(corrMatrixComb4.to_json()) + packCorrLoc.append(corrMatrixComb5.to_json()) packCorrLoc.append(corrMatrixCombTotal1.to_json()) packCorrLoc.append(corrMatrixCombTotal2.to_json()) packCorrLoc.append(corrMatrixCombTotal3.to_json()) packCorrLoc.append(corrMatrixCombTotal4.to_json()) + packCorrLoc.append(corrMatrixCombTotal5.to_json()) packCorrLoc.append(VIF1.to_json()) packCorrLoc.append(VIF2.to_json()) packCorrLoc.append(VIF3.to_json()) packCorrLoc.append(VIF4.to_json()) + packCorrLoc.append(VIF5.to_json()) packCorrLoc.append(json.dumps(MI1List)) packCorrLoc.append(json.dumps(MI2List)) packCorrLoc.append(json.dumps(MI3List)) packCorrLoc.append(json.dumps(MI4List)) + packCorrLoc.append(json.dumps(MI5List)) return packCorrLoc @@ -754,6 +795,9 @@ def Seperation(): quadrant2 = [] quadrant3 = [] quadrant4 = [] + quadrant5 = [] + + probabilityPredictions = [] for index, value in enumerate(getCorrectPrediction): if (value > 50 and value > thresholdsPos): @@ -764,15 +808,18 @@ def Seperation(): quadrant3.append(index) else: quadrant4.append(index) + quadrant5.append(index) + probabilityPredictions.append(value) - Transformation(quadrant1, quadrant2, quadrant3, quadrant4) + Transformation(quadrant1, quadrant2, quadrant3, quadrant4, quadrant5) + # Main Features DataRows1 = XData.iloc[quadrant1, :] DataRows2 = XData.iloc[quadrant2, :] DataRows3 = XData.iloc[quadrant3, :] DataRows4 = XData.iloc[quadrant4, :] + DataRows5 = XData.iloc[quadrant5, :] - # Main Features corrMatrix1 = DataRows1.corr() corrMatrix1 = corrMatrix1.abs() corrMatrix2 = DataRows2.corr() @@ -781,27 +828,33 @@ def Seperation(): corrMatrix3 = corrMatrix3.abs() corrMatrix4 = DataRows4.corr() corrMatrix4 = corrMatrix4.abs() + corrMatrix5 = DataRows5.corr() + corrMatrix5 = corrMatrix5.abs() DataRows1 = DataRows1.reset_index(drop=True) DataRows2 = DataRows2.reset_index(drop=True) DataRows3 = DataRows3.reset_index(drop=True) DataRows4 = DataRows4.reset_index(drop=True) + DataRows5 = DataRows5.reset_index(drop=True) targetRows1 = [yData[i] for i in quadrant1] targetRows2 = [yData[i] for i in quadrant2] targetRows3 = [yData[i] for i in quadrant3] targetRows4 = [yData[i] for i in quadrant4] + targetRows5 = [yData[i] for i in quadrant5] targetRows1Arr = np.array(targetRows1) targetRows2Arr = np.array(targetRows2) targetRows3Arr = np.array(targetRows3) targetRows4Arr = np.array(targetRows4) + targetRows5Arr = np.array(targetRows5) uniqueTarget1 = unique(targetRows1) uniqueTarget2 = unique(targetRows2) uniqueTarget3 = unique(targetRows3) uniqueTarget4 = unique(targetRows4) - + uniqueTarget5 = unique(targetRows5) + if (len(targetRows1Arr) > 0): onehotEncoder1 = OneHotEncoder(sparse=False) targetRows1Arr = targetRows1Arr.reshape(len(targetRows1Arr), 1) @@ -894,15 +947,40 @@ def Seperation(): VIF4 = pd.Series() MI4List = [] + if (len(targetRows5Arr) > 0): + onehotEncoder5 = OneHotEncoder(sparse=False) + targetRows5Arr = targetRows5Arr.reshape(len(targetRows5Arr), 1) + onehotEncoder5 = onehotEncoder5.fit_transform(targetRows5Arr) + hotEncoderDF5 = pd.DataFrame(onehotEncoder5) + concatDF5 = pd.concat([DataRows5, hotEncoderDF5], axis=1) + corrMatrixComb5 = concatDF5.corr() + corrMatrixComb5 = corrMatrixComb5.abs() + corrMatrixComb5 = corrMatrixComb5.iloc[:,-len(uniqueTarget5):] + X5 = add_constant(DataRows5.dropna()) + VIF5 = pd.Series([variance_inflation_factor(X5.values, i) + for i in range(X5.shape[1])], + index=X5.columns) + if (len(targetRows5Arr) > 2): + MI5 = mutual_info_classif(DataRows5, targetRows5Arr) + MI5List = MI5.tolist() + else: + MI5List = [] + else: + corrMatrixComb5 = pd.DataFrame() + VIF5 = pd.Series() + MI5List = [] + targetRows1ArrDF = pd.DataFrame(targetRows1Arr) targetRows2ArrDF = pd.DataFrame(targetRows2Arr) targetRows3ArrDF = pd.DataFrame(targetRows3Arr) targetRows4ArrDF = pd.DataFrame(targetRows4Arr) + targetRows5ArrDF = pd.DataFrame(targetRows5Arr) concatAllDF1 = pd.concat([DataRows1, targetRows1ArrDF], axis=1) concatAllDF2 = pd.concat([DataRows2, targetRows2ArrDF], axis=1) concatAllDF3 = pd.concat([DataRows3, targetRows3ArrDF], axis=1) concatAllDF4 = pd.concat([DataRows4, targetRows4ArrDF], axis=1) + concatAllDF5 = pd.concat([DataRows5, targetRows5ArrDF], axis=1) corrMatrixCombTotal1 = concatAllDF1.corr() corrMatrixCombTotal1 = corrMatrixCombTotal1.abs() @@ -912,47 +990,57 @@ def Seperation(): corrMatrixCombTotal3 = corrMatrixCombTotal3.abs() corrMatrixCombTotal4 = concatAllDF4.corr() corrMatrixCombTotal4 = corrMatrixCombTotal4.abs() + corrMatrixCombTotal5 = concatAllDF5.corr() + corrMatrixCombTotal5 = corrMatrixCombTotal5.abs() corrMatrixCombTotal1 = pd.concat([corrMatrixCombTotal1.tail(1)]) corrMatrixCombTotal2 = pd.concat([corrMatrixCombTotal2.tail(1)]) corrMatrixCombTotal3 = pd.concat([corrMatrixCombTotal3.tail(1)]) corrMatrixCombTotal4 = pd.concat([corrMatrixCombTotal4.tail(1)]) + corrMatrixCombTotal5 = pd.concat([corrMatrixCombTotal5.tail(1)]) global packCorr packCorr = [] packCorr.append(list(XData.columns.values.tolist())) packCorr.append(json.dumps(target_names)) + packCorr.append(json.dumps(probabilityPredictions)) packCorr.append(corrMatrix1.to_json()) packCorr.append(corrMatrix2.to_json()) packCorr.append(corrMatrix3.to_json()) packCorr.append(corrMatrix4.to_json()) - + packCorr.append(corrMatrix5.to_json()) + packCorr.append(corrMatrixComb1.to_json()) packCorr.append(corrMatrixComb2.to_json()) packCorr.append(corrMatrixComb3.to_json()) packCorr.append(corrMatrixComb4.to_json()) + packCorr.append(corrMatrixComb5.to_json()) packCorr.append(corrMatrixCombTotal1.to_json()) packCorr.append(corrMatrixCombTotal2.to_json()) packCorr.append(corrMatrixCombTotal3.to_json()) packCorr.append(corrMatrixCombTotal4.to_json()) + packCorr.append(corrMatrixCombTotal5.to_json()) packCorr.append(json.dumps(uniqueTarget1)) packCorr.append(json.dumps(uniqueTarget2)) packCorr.append(json.dumps(uniqueTarget3)) packCorr.append(json.dumps(uniqueTarget4)) + packCorr.append(json.dumps(uniqueTarget5)) packCorr.append(VIF1.to_json()) packCorr.append(VIF2.to_json()) packCorr.append(VIF3.to_json()) packCorr.append(VIF4.to_json()) + packCorr.append(VIF5.to_json()) packCorr.append(json.dumps(MI1List)) packCorr.append(json.dumps(MI2List)) packCorr.append(json.dumps(MI3List)) packCorr.append(json.dumps(MI4List)) + packCorr.append(json.dumps(MI5List)) return 'Everything Okay'