From: <ji...@us...> - 2011-04-13 14:50:43
|
Revision: 2768 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2768&view=rev Author: jialva Date: 2011-04-13 14:50:32 +0000 (Wed, 13 Apr 2011) Log Message: ----------- fuzzy F-measure added Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/learningproblems/fuzzydll/FuzzyPosNegLPStandard.java trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java trunk/components-core/src/test/java/org/dllearner/test/FuzzyDLLTest.java Modified: trunk/components-core/src/main/java/org/dllearner/learningproblems/fuzzydll/FuzzyPosNegLPStandard.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/learningproblems/fuzzydll/FuzzyPosNegLPStandard.java 2011-04-13 09:19:58 UTC (rev 2767) +++ trunk/components-core/src/main/java/org/dllearner/learningproblems/fuzzydll/FuzzyPosNegLPStandard.java 2011-04-13 14:50:32 UTC (rev 2768) @@ -507,7 +507,7 @@ */ public double getPredAccuracyOrTooWeakExact(Description description, double noise) { - // double crispAccuracy = crispAccuracy(description, noise); + double crispAccuracy = crispAccuracy(description, noise); // if I erase next line, fuzzy reasoning fails // if (crispAccuracy == -1) return -1; @@ -538,7 +538,7 @@ // double crispAccuracy = crispAccuracy(description, noise); // } - double crispAccuracy = fuzzyAccuracy; + crispAccuracy = fuzzyAccuracy; if (crispAccuracy != fuzzyAccuracy) { System.err.println("***********************************************"); @@ -574,6 +574,27 @@ } public double getFMeasureOrTooWeakExact(Description description, double noise) { + + // added by Josue + // fuzzy F-measure + double coveredMembershipDegree = 0; + double totalMembershipDegree = 0; + double invertedCoveredMembershipDegree = 0; + + for (FuzzyIndividual ind: fuzzyExamples) { + coveredMembershipDegree += reasoner.hasTypeFuzzyMembership(description, ind) * ind.getBeliefDegree(); + totalMembershipDegree += ind.getBeliefDegree(); + invertedCoveredMembershipDegree += (1 - ind.getBeliefDegree()) * (1 - reasoner.hasTypeFuzzyMembership(description, ind)); + } + double fuzzyRecall = totalMembershipDegree == 0 ? 0 :coveredMembershipDegree/totalMembershipDegree; + // TODO this is like this??? not sure + if(fuzzyRecall < 1 - noise) { + return -1; + } + double fuzzyPrecision = (coveredMembershipDegree + invertedCoveredMembershipDegree) == 0 ? 0: coveredMembershipDegree / (coveredMembershipDegree + invertedCoveredMembershipDegree); + double fuzzyFmeasure = Heuristics.getFScore(fuzzyRecall, fuzzyPrecision); + + // crisp F-measure int additionalInstances = 0; for(Individual ind : negativeExamples) { if(reasoner.hasType(description, ind)) { @@ -597,7 +618,20 @@ double precision = (additionalInstances + coveredInstances == 0) ? 0 : coveredInstances / (double) (coveredInstances + additionalInstances); // return getFMeasure(recall, precision); - return Heuristics.getFScore(recall, precision); + double crispFmeasure = Heuristics.getFScore(recall, precision); + + crispFmeasure = fuzzyFmeasure; + + if (crispFmeasure != fuzzyFmeasure) { + System.err.println("************************"); + System.err.println("* crispFmeasuer = " + crispFmeasure); + System.err.println("* fuzzyFmeasuer = " + fuzzyFmeasure); + System.err.println("************************"); + Scanner sc = new Scanner(System.in); + sc.nextLine(); + } + + return crispFmeasure; } // instead of using the standard operation, we use optimisation Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java 2011-04-13 09:19:58 UTC (rev 2767) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java 2011-04-13 14:50:32 UTC (rev 2768) @@ -16,13 +16,8 @@ public class FuzzyDLReasonerManager { - private static final String AUXFUZZYKBFILENAME = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/auxFuzzyKBfileName.fuzzyDL.txt"; - private static final String AUXFUZZYKBFILENAME_MANUALLYMODIFIED = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/auxFuzzyKBfileName_manuallyModified.fuzzyDL.txt"; - private static final String AUXNOFUZZYKBFILENAME_MANUALLYMODIFIED = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/auxNoFuzzyKBfileName_manuallyModified.fuzzyDL.txt"; - private static final String AUXNOFUZZYKBFILENAME_MANUALLYMODIFIED_NOPREFIX = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/auxNoFuzzyKBfileName_manuallyModified_noPrefix.fuzzyDL.txt"; - private static final String CHANGING_JUST_HIERARCHI_PROBLEM = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/fuzzyOWL2fuzzyDLparserOutput_manual.fuzzyDL.txt"; + private static final String CHANGING_JUST_HIERARCHI_PROBLEM = "/Users/josue/Documents/PhD/AKSW/fuzzySemanticTools/FuzzyDLMacOSX/FuzzyDL/examples/output/fuzzyOWL2fuzzyDLparserOutput_manual.fuzzyDL.txt"; private static final String FUZZYOWL2FUZZYDLPARSEROUTPUT = "/Users/josue/Documents/PhD/AKSW/fuzzySemanticTools/FuzzyDLMacOSX/FuzzyDL/examples/output/fuzzyOWL2fuzzyDLparserOutput.fuzzyDL.txt"; - private static String AUX = "/Users/josue/Documents/PhD/AKSW/DL_Learner/workspace/dllearner-parent/components-core/src/main/resources/FuzzyDL/examples/output/kk.fuzzyDL.txt"; private static String CONFIG_FILENAME = "/Users/josue/Documents/PhD/AKSW/fuzzySemanticTools/FuzzyDLMacOSX/FuzzyDL/CONFIG"; private Solution queryResult; Modified: trunk/components-core/src/test/java/org/dllearner/test/FuzzyDLLTest.java =================================================================== --- trunk/components-core/src/test/java/org/dllearner/test/FuzzyDLLTest.java 2011-04-13 09:19:58 UTC (rev 2767) +++ trunk/components-core/src/test/java/org/dllearner/test/FuzzyDLLTest.java 2011-04-13 14:50:32 UTC (rev 2768) @@ -98,7 +98,7 @@ ComponentManager cm = ComponentManager.getInstance(); OWLFile ks = cm.knowledgeSource(OWLFile.class); - ks.getConfigurator().setUrl(new URL("file:///Users/josue/Documents/PhD/AKSW/ontologies/foodItems_v1.1.owl")); + ks.getConfigurator().setUrl(new URL("file:///Users/josue/Documents/PhD/AKSW/ontologies/fuzzyFoodItems_v1.owl")); ks.init(); //ReasonerComponent rc = cm.reasoner(OWLAPIReasoner.class, ks); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |