org.android.activityminer.logic.features.selection
Class FeatureDiscretizer

Package class diagram package FeatureDiscretizer
java.lang.Object
  extended by org.android.activityminer.logic.features.selection.FeatureDiscretizer

public class FeatureDiscretizer
extends Object

Implementation of a discretizer for continuous real attributes following the Fayyad & Irani MDL method. The implementation is an adaption from Weka for the android platform (http://grepcode.com/file/repo1 .maven.org/maven2/nz.ac.waikato.cms.weka/weka-dev /3.7.10/weka/filters/supervised/attribute/Discretize.java#Discretize).


Field Summary
private  ActivityByAttributeComparator activityComparator
          The attribute value comparator
private  double[][] cutPoints
          Cut-points
private  EvaluationSamples evalSamples
          The valuation activites
 
Constructor Summary
FeatureDiscretizer()
           
 
Method Summary
protected  void calculateCutPoints()
          Cut point calculation
private  double[] calculateCutPointsForAttribute(Activity[] instances, int idxAttribute, int idxStart, int idxStop, AttributeValueComparator attributeComparator)
          Does compute the cut points for a given attribute and a given activity index range
private  void convert(Activity activity)
          Does convert a activity
 EvaluationSamples convert(Activity[] activities)
          Does convert the features of the given activities to categorical attribute values
 double[][] getCutPoints()
          Getter for the cutPoints
protected  void prepare(Activity[] activities)
          Preparation with training instances
private  boolean testWithFayyadAndIranisMDL(double[] priorCounts, double priorEntropy, double[][] bestCounts, int cntActivities, int cntCutPoints)
          Test with Fayyad and Irani's MDL criterion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

evalSamples

private EvaluationSamples evalSamples
The valuation activites


cutPoints

private double[][] cutPoints
Cut-points


activityComparator

private final ActivityByAttributeComparator activityComparator
The attribute value comparator

Constructor Detail

FeatureDiscretizer

public FeatureDiscretizer()
Method Detail

prepare

protected final void prepare(Activity[] activities)
Preparation with training instances

Parameters:
activities - the activity instances

convert

public final EvaluationSamples convert(Activity[] activities)
Does convert the features of the given activities to categorical attribute values

Parameters:
activities - the activities for feature conversion
Returns:
the array with converted activities sorted by class identifiers in ascending order

convert

private final void convert(Activity activity)
Does convert a activity

Parameters:
activity - the activity to convert

calculateCutPoints

protected final void calculateCutPoints()
Cut point calculation


calculateCutPointsForAttribute

private double[] calculateCutPointsForAttribute(Activity[] instances,
                                                int idxAttribute,
                                                int idxStart,
                                                int idxStop,
                                                AttributeValueComparator attributeComparator)
Does compute the cut points for a given attribute and a given activity index range

Parameters:
instances - the activities sorted by attribute index
idxAttribute - the attribute index
idxStart - the index to start from
idxStop - the index behind the last activity to use for cut-point calculation
attributeComparator - the attribute comparator
Returns:
the cut points for the attribute index

testWithFayyadAndIranisMDL

private final boolean testWithFayyadAndIranisMDL(double[] priorCounts,
                                                 double priorEntropy,
                                                 double[][] bestCounts,
                                                 int cntActivities,
                                                 int cntCutPoints)
Test with Fayyad and Irani's MDL criterion

Parameters:
priorCounts - the prior counts
priorEntropy - the prior entropy
bestCounts - the best counts
cntActivities - the activity count
cntCutPoints - the current cut point count
Returns:
true if split is accepted, false otherwise

getCutPoints

public final double[][] getCutPoints()
Getter for the cutPoints

Returns:
the cutPoints