Class TreeConstructor


  • public class TreeConstructor
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected com.google.common.collect.BiMap<java.lang.Object,​java.lang.Integer> classIndexMap  
      protected com.google.common.collect.BiMap<java.lang.String,​java.lang.Object> classMapping  
      protected java.util.List<java.lang.String> classValues  
      static java.lang.String notAllowedChars  
    • Constructor Summary

      Constructors 
      Constructor Description
      TreeConstructor​(java.lang.String classAttName, java.util.Map<java.lang.String,​org.processmining.models.FunctionEstimator.Type> attributeType, java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> literalValues, java.util.ArrayList<java.util.Map<java.lang.String,​java.lang.Object>> instanceSet, java.util.Map<java.util.Map<java.lang.String,​java.lang.Object>,​java.lang.Integer> instancesWeight)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void buildClassifire()  
      J48WithNDCs buildFairClassifire()  
      J48WithNDCs buildNormalClassifire()  
      protected FastVector createAttributeFastVector()  
      void CreateDataSet()  
      Instance createInstance​(java.util.Map<java.lang.String,​java.lang.Object> inst, Instances DataSet)  
      void evaluateTrees()  
      javax.swing.JPanel getBothTreeVisualization()  
      EvaluationNDC getEvaluation()  
      int getNDCtoDC()  
      java.lang.String getRealAttNameIfChoice​(java.lang.String attName)  
      boolean isBigger​(java.lang.Object o1, java.lang.Object o2)  
      java.lang.String replaceNotAllowedStrings​(java.lang.String str)  
      void setBinarySplit​(boolean binarySplit)  
      void setBinarySplits​(boolean binarySplit)  
      java.lang.String setClassorSensitiveValue​(java.lang.String attName, java.lang.Object object, boolean isSensitiveAtt)  
      void setConfidenceFactor​(float confidenceThreshold)  
      void setCrossValidate​(boolean crossValidate)  
      void setDesairableOutcomes​(java.util.Set<java.lang.String> desirablseOutcomes)  
      void setEpsilon​(int epsilon)  
      void setMinAndMax()  
      void setMinNumObj​(int minNumObj)  
      void setNDCtoDC​(int i)  
      void setNumFoldErrorPruning​(int numFoldErrorPruning)  
      void setNumFolds​(int numFoldErrorPruning)  
      void setProtectedValues​(java.util.Set<java.lang.String> protectedValues)  
      void setSaveInstanceData​(boolean saveData)  
      void setSensitivaAttributeName​(java.lang.String sensitiveAttName)  
      void setSensitiveThreshold​(int threshold)  
      void setTargetThreshold​(int threshold)  
      void setUnpruned​(boolean unpruned)  
      org.processmining.plugins.graphviz.visualisation.DotPanel visualizeFairTree()
      Evaluation evaluation = new Evaluation(testDataSet); for (int i = 0; i < testDataSet.numInstances() ; i++) { Instance inst = testDataSet.instance(i); double resultFair = evaluation.evaluateModelOnce(fairTree, inst); double resultNormal = evaluation.evaluateModelOnce(normalTree, inst); if (testDataSet.instance(i).stringValue(sensitiveAttributeIndex).equals("protected_value")) { nsiTestdata++; if (resultFair == 0 ) { nasiFairTree++; // i1++; // System.out.println("fair s a : " + i1 ); } if (resultNormal == 0 ) { nasiNormalTree++; // i2++; // System.out.println("normal s a : " + i2 ); } } else { if (resultFair == 0 ) { nafiFairTree++; // i3++; // System.out.println("fair f a : " + i3 ); } if (resultNormal == 0 ) { nafiNormalTree++; // i4++; // System.out.println("normal f a : " + i4 ); } } String instanceRealClass = testDataSet.instance(i).stringValue(testDataSet.classAttribute()); if ((resultFair == 0 && instanceRealClass.equals("Desirable_Class")) || resultFair == 1 && (instanceRealClass.equals("non_Desirable_Class"))) { numCorrectPredictionFairTree++; } if ((resultNormal == 0 && instanceRealClass.equals("Desirable_Class")) || (resultNormal == 1 && instanceRealClass.equals("non_Desirable_Class"))) { numCorrectPredictionNormalTree++; } accuracyFairTree = numCorrectPredictionFairTree / testDataSet.numInstances(); accuracyNormalTree = numCorrectPredictionNormalTree / testDataSet.numInstances(); } System.out.println("*********************"); System.out.println("testDataSet size : " + testDataSet.numInstances() ); System.out.println("nsiTestdata : " + nsiTestdata ); System.out.println("nasiFairTree : " + nasiFairTree ); System.out.println("nafiFairTree : " + nafiFairTree ); System.out.println("///////////////////"); System.out.println("nsiTestdata : " + nsiTestdata ); System.out.println("nasiNormalTree : " + nasiNormalTree ); System.out.println("nafiNormalTree : " + nafiNormalTree ); System.out.println("Accuracy fair tree : " + accuracyFairTree); System.out.println("Accuracy normal tree : " + accuracyNormalTree ); discriminationByFairTree = ( nafiFairTree / (testDataSet.numInstances()- nsiTestdata))-(nasiFairTree/nsiTestdata); discriminationByNormalTree = ( nafiNormalTree / (testDataSet.numInstances()- nsiTestdata))-( nasiNormalTree/nsiTestdata); }
      org.processmining.plugins.graphviz.visualisation.DotPanel visualizeNormalTree()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • classValues

        protected java.util.List<java.lang.String> classValues
      • classIndexMap

        protected com.google.common.collect.BiMap<java.lang.Object,​java.lang.Integer> classIndexMap
      • classMapping

        protected com.google.common.collect.BiMap<java.lang.String,​java.lang.Object> classMapping
    • Constructor Detail

      • TreeConstructor

        public TreeConstructor​(java.lang.String classAttName,
                               java.util.Map<java.lang.String,​org.processmining.models.FunctionEstimator.Type> attributeType,
                               java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> literalValues,
                               java.util.ArrayList<java.util.Map<java.lang.String,​java.lang.Object>> instanceSet,
                               java.util.Map<java.util.Map<java.lang.String,​java.lang.Object>,​java.lang.Integer> instancesWeight)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
    • Method Detail

      • getRealAttNameIfChoice

        public java.lang.String getRealAttNameIfChoice​(java.lang.String attName)
      • getNDCtoDC

        public int getNDCtoDC()
      • setNDCtoDC

        public void setNDCtoDC​(int i)
      • setTargetThreshold

        public void setTargetThreshold​(int threshold)
      • setSensitiveThreshold

        public void setSensitiveThreshold​(int threshold)
      • setEpsilon

        public void setEpsilon​(int epsilon)
      • setDesairableOutcomes

        public void setDesairableOutcomes​(java.util.Set<java.lang.String> desirablseOutcomes)
      • setSensitivaAttributeName

        public void setSensitivaAttributeName​(java.lang.String sensitiveAttName)
      • setProtectedValues

        public void setProtectedValues​(java.util.Set<java.lang.String> protectedValues)
      • buildClassifire

        public void buildClassifire()
                             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • evaluateTrees

        public void evaluateTrees()
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • visualizeFairTree

        public org.processmining.plugins.graphviz.visualisation.DotPanel visualizeFairTree()
                                                                                    throws java.lang.Exception
        Evaluation evaluation = new Evaluation(testDataSet); for (int i = 0; i < testDataSet.numInstances() ; i++) { Instance inst = testDataSet.instance(i); double resultFair = evaluation.evaluateModelOnce(fairTree, inst); double resultNormal = evaluation.evaluateModelOnce(normalTree, inst); if (testDataSet.instance(i).stringValue(sensitiveAttributeIndex).equals("protected_value")) { nsiTestdata++; if (resultFair == 0 ) { nasiFairTree++; // i1++; // System.out.println("fair s a : " + i1 ); } if (resultNormal == 0 ) { nasiNormalTree++; // i2++; // System.out.println("normal s a : " + i2 ); } } else { if (resultFair == 0 ) { nafiFairTree++; // i3++; // System.out.println("fair f a : " + i3 ); } if (resultNormal == 0 ) { nafiNormalTree++; // i4++; // System.out.println("normal f a : " + i4 ); } } String instanceRealClass = testDataSet.instance(i).stringValue(testDataSet.classAttribute()); if ((resultFair == 0 && instanceRealClass.equals("Desirable_Class")) || resultFair == 1 && (instanceRealClass.equals("non_Desirable_Class"))) { numCorrectPredictionFairTree++; } if ((resultNormal == 0 && instanceRealClass.equals("Desirable_Class")) || (resultNormal == 1 && instanceRealClass.equals("non_Desirable_Class"))) { numCorrectPredictionNormalTree++; } accuracyFairTree = numCorrectPredictionFairTree / testDataSet.numInstances(); accuracyNormalTree = numCorrectPredictionNormalTree / testDataSet.numInstances(); } System.out.println("*********************"); System.out.println("testDataSet size : " + testDataSet.numInstances() ); System.out.println("nsiTestdata : " + nsiTestdata ); System.out.println("nasiFairTree : " + nasiFairTree ); System.out.println("nafiFairTree : " + nafiFairTree ); System.out.println("///////////////////"); System.out.println("nsiTestdata : " + nsiTestdata ); System.out.println("nasiNormalTree : " + nasiNormalTree ); System.out.println("nafiNormalTree : " + nafiNormalTree ); System.out.println("Accuracy fair tree : " + accuracyFairTree); System.out.println("Accuracy normal tree : " + accuracyNormalTree ); discriminationByFairTree = ( nafiFairTree / (testDataSet.numInstances()- nsiTestdata))-(nasiFairTree/nsiTestdata); discriminationByNormalTree = ( nafiNormalTree / (testDataSet.numInstances()- nsiTestdata))-( nasiNormalTree/nsiTestdata); }
        Throws:
        java.lang.Exception
      • getBothTreeVisualization

        public javax.swing.JPanel getBothTreeVisualization()
                                                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • visualizeNormalTree

        public org.processmining.plugins.graphviz.visualisation.DotPanel visualizeNormalTree()
                                                                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • CreateDataSet

        public void CreateDataSet()
      • createAttributeFastVector

        protected FastVector createAttributeFastVector()
      • createInstance

        public Instance createInstance​(java.util.Map<java.lang.String,​java.lang.Object> inst,
                                       Instances DataSet)
      • buildFairClassifire

        public J48WithNDCs buildFairClassifire()
      • buildNormalClassifire

        public J48WithNDCs buildNormalClassifire()
      • setMinAndMax

        public void setMinAndMax()
      • isBigger

        public boolean isBigger​(java.lang.Object o1,
                                java.lang.Object o2)
      • setNumFolds

        public void setNumFolds​(int numFoldErrorPruning)
      • setBinarySplits

        public void setBinarySplits​(boolean binarySplit)
      • setSaveInstanceData

        public void setSaveInstanceData​(boolean saveData)
      • setBinarySplit

        public void setBinarySplit​(boolean binarySplit)
      • setConfidenceFactor

        public void setConfidenceFactor​(float confidenceThreshold)
      • setNumFoldErrorPruning

        public void setNumFoldErrorPruning​(int numFoldErrorPruning)
      • setMinNumObj

        public void setMinNumObj​(int minNumObj)
      • setUnpruned

        public void setUnpruned​(boolean unpruned)
      • setCrossValidate

        public void setCrossValidate​(boolean crossValidate)
      • setClassorSensitiveValue

        public java.lang.String setClassorSensitiveValue​(java.lang.String attName,
                                                         java.lang.Object object,
                                                         boolean isSensitiveAtt)
      • replaceNotAllowedStrings

        public java.lang.String replaceNotAllowedStrings​(java.lang.String str)