Package weka.classifiers.lazy.AM.label
Class IntLabeler
- java.lang.Object
-
- weka.classifiers.lazy.AM.label.Labeler
-
- weka.classifiers.lazy.AM.label.IntLabeler
-
public class IntLabeler extends Labeler
Analogical Modeling uses labels composed of boolean vectors in order to group instances into subcontexts and subcontexts in supracontexts. Training set instances are assigned labels by comparing them with the instance to be classified and encoding matched attributes and mismatched attributes in a boolean vector. For example, if we were classifying an instance <a, b, c>, and we had three training instances <x, y, c>, <w, m, c> and <a, b, z>, and used 'n' to represent mismatches and 'y' for matches, the labels would be <n, n, y>, <n, n, y>, and <y, y, n>. The current implementation takes advantage of binary arithmetic by representing mismatches as a 1 bit and matches as a 0 bit, all packed into a 32-bit integer.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class weka.classifiers.lazy.AM.label.Labeler
Labeler.Partition
-
-
Constructor Summary
Constructors Constructor Description IntLabeler(weka.core.Instance instance, boolean ignoreUnknowns, MissingDataCompare mdc)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LabelfromBits(int labelBits)For testing purposes, this method allows the client to directly specify the label using the bits of an integerLabelgetLatticeBottom()Creates and returns the label which belongs at the bottom of the boolean lattice formed by the subcontexts labeled by this labeler, i.e.LabelgetLatticeTop()Creates and returns the label which belongs at the top of the boolean lattice formed by the subcontexts labeled by this labeler, i.e.IntLabellabel(weka.core.Instance data)Create a context label for the input instance by comparing it with the test instance.Labelpartition(Label label, int partitionIndex)In distributed processing, it is necessary to split labels into partitions.-
Methods inherited from class weka.classifiers.lazy.AM.label.Labeler
getCardinality, getCardinality, getContextList, getContextString, getIgnoreUnknowns, getInstanceAttNamesList, getInstanceAttsString, getInstanceAttValuesList, getMissingDataCompare, getTestInstance, isIgnored, numPartitions
-
-
-
-
Constructor Detail
-
IntLabeler
public IntLabeler(weka.core.Instance instance, boolean ignoreUnknowns, MissingDataCompare mdc)- Throws:
java.lang.IllegalArgumentException- if the cardinality of the input instance is greater than 32
-
-
Method Detail
-
label
public IntLabel label(weka.core.Instance data)
Description copied from class:LabelerCreate a context label for the input instance by comparing it with the test instance.- Specified by:
labelin classLabeler- Parameters:
data- Instance to be labeled- Returns:
- the label for the context that the instance belongs to. The cardinality of the label will be the same as
the test and data items. At any given index i,
label.matches(i)will return true if that feature is the same in the test and data instances.
-
getLatticeTop
public Label getLatticeTop()
Description copied from class:LabelerCreates and returns the label which belongs at the top of the boolean lattice formed by the subcontexts labeled by this labeler, i.e. the one for which every feature is a match.- Specified by:
getLatticeTopin classLabeler- Returns:
- A label with all matches
-
getLatticeBottom
public Label getLatticeBottom()
Description copied from class:LabelerCreates and returns the label which belongs at the bottom of the boolean lattice formed by the subcontexts labeled by this labeler, i.e. the one for which every feature is a mismatch.- Specified by:
getLatticeBottomin classLabeler- Returns:
- A label with all mismatches
-
fromBits
public Label fromBits(int labelBits)
Description copied from class:LabelerFor testing purposes, this method allows the client to directly specify the label using the bits of an integer
-
partition
public Label partition(Label label, int partitionIndex)
Description copied from class:LabelerIn distributed processing, it is necessary to split labels into partitions. This method returns a partition for the given label. A full label is partitioned into pieces 0 throughLabeler.numPartitions(), so code to process labels in pieces should look like this:Label myLabel = myLabeler.label(myInstance); for(int i = 0; i < myLabeler.numPartitions(); i++) process(myLabeler.partition(myLabel, i);
-
-