Class BinaryFeaturesExample<T extends Output<T>>
- Type Parameters:
T
- The output type.
- All Implemented Interfaces:
Serializable
,Iterable<Feature>
,ProtoSerializable<org.tribuo.protos.core.ExampleProto>
Example
backed by a single array of feature names. This
implementation is modeled after ArrayExample
but does not store
feature values because it assumes only binary features - i.e., features with a
feature value of 1.0. The following methods throw an
UnsupportedOperationException
:
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Protobuf serialization version.static final int
Default initial size of the backing arrays.protected String[]
Feature names array.protected int
Number of valid features in this example.Fields inherited from class org.tribuo.Example
DEFAULT_METADATA_SIZE, DEFAULT_WEIGHT, metadata, NAME, output, weight
Fields inherited from interface org.tribuo.protos.ProtoSerializable
DESERIALIZATION_METHOD_NAME, PROVENANCE_SERIALIZER
-
Constructor Summary
ConstructorDescriptionBinaryFeaturesExample
(Example<T> other) Copy constructor.BinaryFeaturesExample
(T output) Constructs an example from an output.BinaryFeaturesExample
(T output, float weight) Constructs an example from an output and a weight.BinaryFeaturesExample
(T output, float weight, int initialSize) Constructs an example from an output and a weight, with an initial size for the feature arrays.BinaryFeaturesExample
(T output, float weight, Map<String, Object> metadata) Constructs an example from an output, a weight and the metadata.BinaryFeaturesExample
(T output, String[] names) Constructs an example from an output and an array of names.BinaryFeaturesExample
(T output, List<? extends Feature> features) Constructs an example from an output and a list of features.BinaryFeaturesExample
(T output, Map<String, Object> metadata) Constructs an example from an output and the metadata.BinaryFeaturesExample
(T output, Example<U> other, float weight) Clones an example's features, but uses the supplied output and weight. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a single feature with a value of 1.void
Adds a feature to this example.void
addAll
(Collection<? extends Feature> features) Adds a collection of features to this example.void
canonicalize
(FeatureMap featureMap) Reassigns feature name Strings in the Example to point to those in theFeatureMap
.static void
checkIsBinary
(Feature feature) Checks if the supplied feature is binary, if not throw anIllegalArgumentException
.copy()
Returns a deep copy of this Example.protected void
Adds zero valued features for each feature name infeatureNames
.void
densify
(FeatureMap fMap) Converts all implicit zeros into explicit zeros based on the supplied feature map.static BinaryFeaturesExample<?>
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.boolean
protected void
Grows the backing arrays by size+1.protected void
growArray
(int minCapacity) Grows the backing arrays storing the names.int
hashCode()
static boolean
Is the supplied feature binary (i.e., does it have a value of 1.0)?boolean
isDense
(FeatureMap fMap) Is this example dense wrt the supplied feature map.iterator()
Returns the Feature in this Example which has the supplied name, if it's present.protected int
newCapacity
(int minCapacity) Returns a capacity at least as large as the given minimum capacity.void
reduceByName
(Merger merger) Merges features with the same name using the suppliedMerger
.void
removeFeatures
(List<Feature> featureList) Removes all features in this list from the Example.org.tribuo.protos.core.ExampleProto
Serializes this object to a protobuf.void
Overwrites the feature with the matching name.int
size()
Return how many features are in this example.protected void
sort()
Sorts the feature list to maintain the lexicographic order invariant.toString()
void
transform
(TransformerMap transformerMap) Transforms this example by applying the transformations from the suppliedTransformerMap
.boolean
Checks the example to see if all the feature names are unique, the feature values are not NaN, and there is at least one feature.Methods inherited from class org.tribuo.Example
containsMetadata, deserialize, getMetadata, getMetadataValue, getOutput, getWeight, setMetadataValue, setWeight
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
CURRENT_VERSION
public static final int CURRENT_VERSIONProtobuf serialization version.- See Also:
-
DEFAULT_SIZE
public static final int DEFAULT_SIZEDefault initial size of the backing arrays.- See Also:
-
featureNames
Feature names array. -
size
protected int sizeNumber of valid features in this example.
-
-
Constructor Details
-
BinaryFeaturesExample
Constructs an example from an output and a weight, with an initial size for the feature arrays.- Parameters:
output
- The output.weight
- The weight.initialSize
- The initial size of the feature arrays.
-
BinaryFeaturesExample
Constructs an example from an output, a weight and the metadata.- Parameters:
output
- The output.weight
- The weight.metadata
- The metadata.
-
BinaryFeaturesExample
Constructs an example from an output and a weight.- Parameters:
output
- The output.weight
- The example weight.
-
BinaryFeaturesExample
Constructs an example from an output and the metadata.- Parameters:
output
- The output.metadata
- The metadata.
-
BinaryFeaturesExample
Constructs an example from an output.- Parameters:
output
- The output.
-
BinaryFeaturesExample
Constructs an example from an output and an array of names. This is currently the most efficient constructor.- Parameters:
output
- The output.names
- The feature names.
-
BinaryFeaturesExample
Constructs an example from an output and a list of features. This constructor will throw anIllegalArgumentException
if any of the features have a feature value that does not equal 1.0.- Parameters:
output
- The output (e.g., label) of the examplefeatures
- The list of features.
-
BinaryFeaturesExample
Copy constructor. This constructor will throw anIllegalArgumentException
if any of the features have a feature value that does not equal 1.0.- Parameters:
other
- The example to copy.
-
BinaryFeaturesExample
Clones an example's features, but uses the supplied output and weight.- Type Parameters:
U
- The output type of the other example.- Parameters:
output
- The output to use.other
- The features to use.weight
- The weight to use.
-
-
Method Details
-
deserializeFromProto
public static BinaryFeaturesExample<?> deserializeFromProto(int version, String className, com.google.protobuf.Any message) throws com.google.protobuf.InvalidProtocolBufferException Deserialization factory.- Parameters:
version
- The serialized object version.className
- The class name.message
- The serialized data.- Returns:
- The deserialized object.
- Throws:
com.google.protobuf.InvalidProtocolBufferException
- If the protobuf could not be parsed from themessage
.
-
add
Adds a single feature with a value of 1.- Parameters:
name
- The name of the feature.
-
isBinary
Is the supplied feature binary (i.e., does it have a value of 1.0)?- Parameters:
feature
- The feature to check.- Returns:
- True if it's a binary feature.
-
checkIsBinary
Checks if the supplied feature is binary, if not throw anIllegalArgumentException
.- Parameters:
feature
- The feature to check.
-
add
Adds a feature to this example. This method will throw anIllegalArgumentException
if any of the features have a feature value that does not equal 1.0. -
addAll
Adds a collection of features to this example. This method will throw anIllegalArgumentException
if any of the features have a feature value that does not equal 1.0. -
growArray
protected void growArray(int minCapacity) Grows the backing arrays storing the names.- Parameters:
minCapacity
- The new minimum capacity required.
-
growArray
protected void growArray()Grows the backing arrays by size+1. -
newCapacity
protected int newCapacity(int minCapacity) Returns a capacity at least as large as the given minimum capacity. Returns the current capacity increased by 50% if that suffices. Will not return a capacity greater than MAX_ARRAY_SIZE unless the given minimum capacity is greater than MAX_ARRAY_SIZE.- Parameters:
minCapacity
- the desired minimum capacity- Returns:
- The new capacity.
- Throws:
OutOfMemoryError
- if minCapacity is less than zero
-
sort
protected void sort()Sorts the feature list to maintain the lexicographic order invariant. -
size
public int size()Description copied from class:Example
Return how many features are in this example. -
removeFeatures
Description copied from class:Example
Removes all features in this list from the Example.- Specified by:
removeFeatures
in classExample<T extends Output<T>>
- Parameters:
featureList
- Features to remove from this Example.
-
validateExample
public boolean validateExample()Description copied from class:Example
Checks the example to see if all the feature names are unique, the feature values are not NaN, and there is at least one feature.- Specified by:
validateExample
in classExample<T extends Output<T>>
- Returns:
- true if the example is valid.
-
copy
Description copied from class:Example
Returns a deep copy of this Example. -
lookup
Description copied from class:Example
Returns the Feature in this Example which has the supplied name, if it's present. -
set
Description copied from class:Example
Overwrites the feature with the matching name.Throws
IllegalArgumentException
if there isn't a feature with that name in this example. -
transform
Description copied from class:Example
Transforms this example by applying the transformations from the suppliedTransformerMap
.Can be overridden for performance reasons.
-
reduceByName
Description copied from class:Example
Merges features with the same name using the suppliedMerger
.- Specified by:
reduceByName
in classExample<T extends Output<T>>
- Parameters:
merger
- this parameter is ignored because we do not store feature values in this class. So, the 'merging' can be thought of as a logical AND.
-
isDense
Description copied from class:Example
Is this example dense wrt the supplied feature map.An example is "dense" if it contains all the features in the map, and only those features.
-
densify
Description copied from class:Example
Adds zero valued features for each feature name infeatureNames
.featureNames
must be sorted lexicographically using theString
comparator, and behaviour is undefined otherwise.Note: this is an optional method, some implementations of
Example
may throwUnsupportedOperationException
or may have additional requirements on thefeatureNames
argument and consequently throwIllegalArgumentException
if those requirements are not met. -
densify
Description copied from class:Example
Converts all implicit zeros into explicit zeros based on the supplied feature map.That is, it inserts a zero valued feature for each feature in the map that is not present in this example.
Note: this is an optional method, some implementations of
Example
may throwUnsupportedOperationException
or may have additional requirements on thefMap
argument and consequently throwIllegalArgumentException
if those requirements are not met. -
iterator
-
toString
-
equals
-
hashCode
public int hashCode() -
serialize
public org.tribuo.protos.core.ExampleProto serialize()Description copied from interface:ProtoSerializable
Serializes this object to a protobuf.- Returns:
- The protobuf.
-
canonicalize
Description copied from class:Example
Reassigns feature name Strings in the Example to point to those in theFeatureMap
. This significantly reduces memory allocation. It is called when an Example is added to aMutableDataset
, and should not be called outside of that context as it may interact unexpectedly withHashedFeatureMap
.- Specified by:
canonicalize
in classExample<T extends Output<T>>
- Parameters:
featureMap
- The feature map containing canonical feature names.
-