From a3b2940ed50b4171f333920768c7417442ed4fa3 Mon Sep 17 00:00:00 2001 From: Allen Chen <31076390+Allenc1996@users.noreply.github.com> Date: Mon, 9 Oct 2017 19:49:47 -0400 Subject: [PATCH] changes changes --- test/bin/InformationMeasure.class | Bin 0 -> 1209 bytes test/bin/People.class | Bin 0 -> 938 bytes test/bin/database_Main.class | Bin 0 -> 6252 bytes test/info.txt | 1 + test/src/InformationMeasure.java | 40 +++++ test/src/People.java | 44 ++++++ test/src/database_Main.java | 247 ++++++++++++++++++++++++++++++ 7 files changed, 332 insertions(+) create mode 100644 test/bin/InformationMeasure.class create mode 100644 test/bin/People.class create mode 100644 test/bin/database_Main.class create mode 100644 test/info.txt create mode 100644 test/src/InformationMeasure.java create mode 100644 test/src/People.java create mode 100644 test/src/database_Main.java diff --git a/test/bin/InformationMeasure.class b/test/bin/InformationMeasure.class new file mode 100644 index 0000000000000000000000000000000000000000..cdad8c9a86f23a21f49f2c32c6cf48437c0edcfd GIT binary patch literal 1209 zcmZ{j>rN9<6ouDm%apbUiWNaA2rANcRI1=zV@M>#8qgmS5`RwX0E4B2)2Wvy;AKpV ziB{teAHat)u6<_GB9t~gGv~6uz1H5RfBydZ4d6B&q>)f4)LPqqu6XtTDAJX|HN5prnvH2>iNJ_nKZ9XEoau4I9@eqv`J~iJH~QD$^bC$Neg9rEybX zv|rW@C*0Lol9(i8tQB@eJ`DJ%kdYF{&a$ukPS9}IJSpAe$?7Z$6qgv8WPB0{48h`C zLM)pn&GISE*$|F7&Xy$;pF{Q!=&$D3D90?r!0M!UG|x939l{vSa3+8PM*+O%NlBO& zfL-k3tUcYuWFJ)^M1UzmG8n-qzk-~L!eS%=MyF`WOIwIl(&0GGL(WB#Wf#9=s!zAL z4~i1vM0BD@v@lJM_~T6&#F;tHDV)NYjX86szGAy-xKg)onEK3x1Z`0smqo~+nq3|k zJaasFa$vB9E3t#;?5h;KU`y&Q=AV`9QWxd7AHMWtMD3emy^BX272?WdxPBcsj04`* zn7hIb30IeXVsRYH9Q{5qGB$gJrh9ePxD(U(*NABwq)Fd%#lu>eLT3(-z#@6`Ot)Zw Z(N)OxfH~YXl}z#?OcO0v;hr&f{~t;~ke&bl literal 0 HcmV?d00001 diff --git a/test/bin/People.class b/test/bin/People.class new file mode 100644 index 0000000000000000000000000000000000000000..22edb64976858fc1151f8a8356db2e6c1b44e1ae GIT binary patch literal 938 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 edu = new ArrayList(); + ArrayList gen = new ArrayList(); + ArrayList hel = new ArrayList(); + ArrayList sty = new ArrayList(); + ArrayList inc = new ArrayList(); + + int count_Edu_Count = 0, count_Inc_Count = 0, count_Gen_Count = 0, count_Hel_Count = 0, count_Sty_Count = 0; + + for (int counter = 0; counter < 291; counter++) + { + //initialize varibles gets the first element and so on + String n = Integer.toString(newPerson[counter].getEducation()); + String a = Integer.toString(newPerson[counter].getGender()); + String b = Integer.toString(newPerson[counter].getOverallHealth()); + String c = Integer.toString(newPerson[counter].gethoursStudy()); + String in = Integer.toString(newPerson[counter].getIncome()); + + //if the element is not in the arylist + if(!edu.contains(n)) + { + count = 0; + //traverse through the list + for (int i = 0; i < 291; i++) + if (Integer.toString(newPerson[i].getEducation()).equals(n)) + count++; + + count_Edu[count_Edu_Count++] = count; + edu.add(n); + //System.out.println(n + " - " + count); + }//if edu + + if(!inc.contains(in)) + { + count = 0; + //traverse through the list + for (int i = 0; i < 291; i++) + if (Integer.toString(newPerson[i].getIncome()).equals(in)) + count++; + + count_Inc[count_Inc_Count++] = count; + inc.add(in); + //System.out.println(in + " - " + count); + }//if inc + + if(!gen.contains(a)) + { + count = 0; + for(int i = 0;i<291;i++) + if(Integer.toString(newPerson[i].getGender()).equals(a)) + count++; + + count_Gen[count_Gen_Count++] = count; + gen.add(a); + // System.out.println(a + " - " + count); + }//if gen + + if(!hel.contains(b)){ + count = 0; + for(int i = 0;i<291;i++) + if(Integer.toString(newPerson[i].getOverallHealth()).equals(b)) + count++; + + count_Hel[count_Hel_Count++] = count; + hel.add(b); + // System.out.println(b + " - " + count); + + }//if hel + + if(!sty.contains(c)){ + count = 0; + for(int i = 0;i<291;i++) + if(Integer.toString(newPerson[i].gethoursStudy()).equals(c)) + count++; + + count_Sty[count_Sty_Count++] = count; + sty.add(c); + //System.out.println(c + " - " + count); + + }//if sty + + }//end for loop + for(int i = 0; i < count_Edu.length; i++) + total += count_Edu[i]; + + //Entropy for gender + for(int i = 0; i < count_Gen.length; i++) + EntropyOfGen += (InfoMeasure( count_Gen[i], total) * probability(count_Gen[i], total)); + System.out.println("Conditional Entropy for gender: "+ EntropyOfGen + "\n--------------------"); + + //Entropy for Education + for(int i = 0; i < count_Edu.length; i++) + EntropyOfEdu += (InfoMeasure( count_Edu[i], total) * probability(count_Edu[i], total)); + System.out.println("Conditional Entropy for education: "+ EntropyOfEdu + "\n--------------------"); + + //Entropy for Overall health + for(int i = 0; i < count_Hel.length; i++) + EntropyOfHel += (InfoMeasure( count_Hel[i], total) * probability(count_Hel[i], total)); + System.out.println("Conditional Entropy for overall health: "+ EntropyOfHel + "\n--------------------"); + + //Entropy for Work/Study hours + for(int i = 0; i < count_Sty.length; i++) + EntropyOfSty += (InfoMeasure( count_Sty[i], total) * probability(count_Sty[i], total)); + System.out.println("Conditional Entropy for work/study hours: "+ EntropyOfSty + "\n" + "------------------" ); + + System.out.println("the min is:"+findMin(EntropyOfSty,EntropyOfEdu,EntropyOfHel,EntropyOfGen)); + System.out.println("----------------"); + + //calc row 2 of I + ArrayList min_Gen = new ArrayList<>(); + ArrayList min_Sty = new ArrayList<>(); + ArrayList min_Hel = new ArrayList<>(); + + int count_min_Gen = 0,count_min_Hel=0,count_min_Sty = 0; + + for (int counter = 0; counter < 291; counter++){ + String n = newPerson[counter].getEducation() + " " + newPerson[counter].getGender(); + String a = newPerson[counter].getEducation() + " " + newPerson[counter].gethoursStudy(); + String b = newPerson[counter].getEducation() + " " + newPerson[counter].getOverallHealth(); + + if(!min_Gen.contains(n)){ + int count1 = 0; + for (int i = 0; i < 291; i++){ + String z = newPerson[counter].getEducation() + " " + newPerson[counter].getGender(); + if (z.equals(n)) + count1++; + + } + count_Min_Gen[count_min_Gen++] = count1; + min_Gen.add(n); + //System.out.println(n + " - " + count1); + + } + + + if(!min_Hel.contains(b)){ + int count1 = 0; + for (int i = 0; i < 291; i++){ + String z = newPerson[counter].getEducation() + " " + newPerson[counter].getOverallHealth(); + if (z.equals(b)) + count1++; + } + count_Min_Hel[count_min_Hel++] = count1; + min_Hel.add(b); + // System.out.println(b + " - " + count1); + + } + + if(!min_Sty.contains(a)){ + int count1 = 0; + for (int i = 0; i < 291; i++){ + String z = newPerson[counter].getEducation() + " " + newPerson[counter].gethoursStudy(); + if (z.equals(a)) + count1++; + + } + count_Min_Sty[count_min_Sty++] = count1; + min_Sty.add(a); + //System.out.println(a + " - " + count1); + + } + }//for + //System.out.println(min_Sty.size()); + + + + + /** + double EntropyOfMinGen = 0 ; + for(int i = 0; i < count_Gen.length;i++){ + for(int j = 0; i < count_Min_Edu.length; i++) + EntropyOfMinGen += (InfoMeasure(count_Min_Edu[i], count_Gen[j]) * probability(count_Min_Edu[i], total)); + System.out.println("Conditional Entropy for Gen_Edu: "+ EntropyOfMinGen + "\n--------------------"); + + } + **/ + } + + //Pr(Q) + public static double probability(int frequency, int tot) + { + double f = frequency; + double t = tot; + + return f/t; + } + + public static double InfoMeasure( int f, int t) + { + + InfoM.setFrequency(f); + InfoM.setTotal(t); + + System.out.println(f + "\t--\t" + InfoM.I()); + + return InfoM.I(); + } + + //finds minimum returns value + public static double findMin(double... vals) { + double min = Double.POSITIVE_INFINITY; + + for (double d : vals) + if (d < min) min = d; + + return min; + } +}