nl.liacs.subdisc
Class Subgroup

java.lang.Object
  extended by nl.liacs.subdisc.Subgroup
All Implemented Interfaces:
java.lang.Comparable<Subgroup>

public class Subgroup
extends java.lang.Object
implements java.lang.Comparable<Subgroup>

A Subgroup contains a number of instances from the original data. Subgroups are formed by, a number of, Conditions. Its members include : a ConditionList, a BitSet representing the instances included in this Subgroup, the number of instances in this Subgroup (its coverage), a unique identifier, and the value used to form this Subgroup. It may also contain a DAG, and a SubgroupSet.

See Also:
Condition, ConditionList, DAG, MiningWindow, SubgroupDiscovery, SubgroupSet, Condition

Constructor Summary
Subgroup(ConditionList theConditions, java.util.BitSet theMembers, int theDepth)
          Creates a Subgroup, but for the Bayesian setting.
Subgroup(double theMeasureValue, int theCoverage, int theDepth, SubgroupSet theSubgroupSet)
          Creates a Subgroup.
 
Method Summary
 void addCondition(Condition theCondition)
           
 int compareTo(Subgroup theSubgroup)
           
 Subgroup copy()
           
 boolean covers(int theRow)
           
 ConditionList getConditions()
           
 int getCoverage()
           
 DAG getDAG()
           
 int getDepth()
           
 java.lang.Float getFalsePositiveRate()
          Returns the FalsePositiveRate for this Subgroup.
 int getID()
           
 double getMeasureValue()
           
 java.util.BitSet getMembers()
           
 int getNrConditions()
           
 SubgroupSet getParentSet()
          TODO Even for the SubgroupSet.getROCList code this is NOT enough.
 double getPValue()
           
 java.lang.Float getTruePositiveRate()
          Returns the TruePositiveRate for this Subgroup.
 void print()
           
 void renouncePValue()
           
 void setDAG(DAG theDAG)
           
 void setEmpiricalPValue(double[] theQualities)
           
 void setID(int theID)
           
 void setMeasureValue(double theMeasureValue)
           
 void setMembers(java.util.BitSet theMembers)
           
 void setPValue(NormalDistribution theDistro)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Subgroup

public Subgroup(double theMeasureValue,
                int theCoverage,
                int theDepth,
                SubgroupSet theSubgroupSet)
Creates a Subgroup.

Parameters:
theMeasureValue - the value used to create this Subgroup.
theCoverage - the number of instances contained in this Subgroup.
theDepth -
theSubgroupSet - the SubgroupSet this Subgroup is contained in.

Subgroup

public Subgroup(ConditionList theConditions,
                java.util.BitSet theMembers,
                int theDepth)
Creates a Subgroup, but for the Bayesian setting.

Parameters:
theConditions -
theMembers -
theDepth -
Method Detail

addCondition

public void addCondition(Condition theCondition)

copy

public Subgroup copy()

print

public void print()

getMembers

public java.util.BitSet getMembers()

setMembers

public void setMembers(java.util.BitSet theMembers)

covers

public boolean covers(int theRow)

getID

public int getID()

setID

public void setID(int theID)

getMeasureValue

public double getMeasureValue()

setMeasureValue

public void setMeasureValue(double theMeasureValue)

setDAG

public void setDAG(DAG theDAG)

getDAG

public DAG getDAG()

getCoverage

public int getCoverage()

getConditions

public ConditionList getConditions()

getNrConditions

public int getNrConditions()

getDepth

public int getDepth()

compareTo

public int compareTo(Subgroup theSubgroup)
Specified by:
compareTo in interface java.lang.Comparable<Subgroup>

getParentSet

public SubgroupSet getParentSet()
TODO Even for the SubgroupSet.getROCList code this is NOT enough. All subgroups are from the same SubgroupSet/ experiment with the same target. However, two subgroups formed from different Attributes in itsConditions should be considered unequal. This requires an @Override from itsConditions hashCode(), as it should not include condition values. Eg. two subgroups that have the same members and are formed from: (x < 10) and (x < 11) should be considered equal (y < 10) and (x < 10) should be considered different


getTruePositiveRate

public java.lang.Float getTruePositiveRate()
Returns the TruePositiveRate for this Subgroup. If no itsParentSet was set for this SubGroup, or no itsBinaryTarget was set for this SubGroups' itsParentSet this function returns 0.0f.

Returns:
the TruePositiveRate, also known as TPR.

getFalsePositiveRate

public java.lang.Float getFalsePositiveRate()
Returns the FalsePositiveRate for this Subgroup. If no itsParentSet was set for this subgroup, or no itsBinaryTarget was set for this subgroups' itsParentSet this function returns 0.0f.

Returns:
the FalsePositiveRate, also known as FPR.

getPValue

public double getPValue()

setPValue

public void setPValue(NormalDistribution theDistro)

setEmpiricalPValue

public void setEmpiricalPValue(double[] theQualities)

renouncePValue

public void renouncePValue()