Package org.processmining.prediction
Class TreeConstructor
- java.lang.Object
-
- org.processmining.prediction.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>classIndexMapprotected com.google.common.collect.BiMap<java.lang.String,java.lang.Object>classMappingprotected java.util.List<java.lang.String>classValuesstatic java.lang.StringnotAllowedChars
-
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 voidbuildClassifire()J48WithNDCsbuildFairClassifire()J48WithNDCsbuildNormalClassifire()protected FastVectorcreateAttributeFastVector()voidCreateDataSet()InstancecreateInstance(java.util.Map<java.lang.String,java.lang.Object> inst, Instances DataSet)voidevaluateTrees()javax.swing.JPanelgetBothTreeVisualization()EvaluationNDCgetEvaluation()intgetNDCtoDC()java.lang.StringgetRealAttNameIfChoice(java.lang.String attName)booleanisBigger(java.lang.Object o1, java.lang.Object o2)java.lang.StringreplaceNotAllowedStrings(java.lang.String str)voidsetBinarySplit(boolean binarySplit)voidsetBinarySplits(boolean binarySplit)java.lang.StringsetClassorSensitiveValue(java.lang.String attName, java.lang.Object object, boolean isSensitiveAtt)voidsetConfidenceFactor(float confidenceThreshold)voidsetCrossValidate(boolean crossValidate)voidsetDesairableOutcomes(java.util.Set<java.lang.String> desirablseOutcomes)voidsetEpsilon(int epsilon)voidsetMinAndMax()voidsetMinNumObj(int minNumObj)voidsetNDCtoDC(int i)voidsetNumFoldErrorPruning(int numFoldErrorPruning)voidsetNumFolds(int numFoldErrorPruning)voidsetProtectedValues(java.util.Set<java.lang.String> protectedValues)voidsetSaveInstanceData(boolean saveData)voidsetSensitivaAttributeName(java.lang.String sensitiveAttName)voidsetSensitiveThreshold(int threshold)voidsetTargetThreshold(int threshold)voidsetUnpruned(boolean unpruned)org.processmining.plugins.graphviz.visualisation.DotPanelvisualizeFairTree()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.DotPanelvisualizeNormalTree()
-
-
-
Field Detail
-
notAllowedChars
public static final java.lang.String notAllowedChars
- See Also:
- Constant Field Values
-
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.ExceptionEvaluation 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)
-
getEvaluation
public EvaluationNDC getEvaluation()
-
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)
-
-