Package org.tribuo.impl
Class ArrayExample<T extends Output<T>>
java.lang.Object
org.tribuo.Example<T>
org.tribuo.impl.ArrayExample<T>
- All Implemented Interfaces:
Serializable
,Iterable<Feature>
,ProtoSerializable<org.tribuo.protos.core.ExampleProto>
- Direct Known Subclasses:
IndexedArrayExample
An
Example
backed by two arrays, one of String and one of double.- 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 double[]
Feature values 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
ConstructorDescriptionArrayExample
(Example<T> other) Copy constructor.ArrayExample
(T output) Constructs an example from an output.ArrayExample
(T output, float weight) Constructs an example from an output and a weight.ArrayExample
(T output, float weight, int initialSize) Constructs an example from an output and a weight, with an initial size for the feature arrays.ArrayExample
(T output, float weight, Map<String, Object> metadata) Constructs an example from an output, a weight and the metadata.ArrayExample
(T output, String[] names, double[] values) Constructs an example from an output, an array of names and an array of values.ArrayExample
(T output, List<? extends Feature> features) Constructs an example from an output and a list of features.ArrayExample
(T output, Map<String, Object> metadata) Constructs an example from an output and the metadata.ArrayExample
(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.void
Adds a feature.void
addAll
(Collection<? extends Feature> features) Adds a collection of features.void
canonicalize
(FeatureMap featureMap) Reassigns feature name Strings in the Example to point to those in theFeatureMap
.copy()
Returns a deep copy of this Example.double[]
copyValues
(int newSize) Returns a copy of the feature values array at the specific size.void
Adds zero valued features for each feature name infeatureList
.static ArrayExample<?>
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 and values.int
hashCode()
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, densify, 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. -
featureValues
protected double[] featureValuesFeature values array. -
size
protected int sizeNumber of valid features in this example.
-
-
Constructor Details
-
ArrayExample
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.
-
ArrayExample
Constructs an example from an output, a weight and the metadata.- Parameters:
output
- The output.weight
- The weight.metadata
- The metadata.
-
ArrayExample
Constructs an example from an output and a weight.- Parameters:
output
- The output.weight
- The example weight.
-
ArrayExample
Constructs an example from an output and the metadata.- Parameters:
output
- The output.metadata
- The metadata.
-
ArrayExample
Constructs an example from an output.- Parameters:
output
- The output.
-
ArrayExample
Constructs an example from an output, an array of names and an array of values. This is currently the most efficient constructor.- Parameters:
output
- The output.names
- The feature names.values
- The feature values.
-
ArrayExample
Constructs an example from an output and a list of features.- Parameters:
output
- The output.features
- The list of features.
-
ArrayExample
Copy constructor.- Parameters:
other
- The example to copy.
-
ArrayExample
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 ArrayExample<?> 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.- Parameters:
name
- The name of the feature.value
- The value of the feature.
-
add
Description copied from class:Example
Adds a feature. This maintains the sorted invariant and has a lg(example.size()) cost per insertion. -
addAll
Description copied from class:Example
Adds a collection of features. This maintains the sorted invariant but is more efficient than adding one at a time due to allocation. -
growArray
protected void growArray(int minCapacity) Grows the backing arrays storing the names and values.- 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. -
copyValues
public double[] copyValues(int newSize) Returns a copy of the feature values array at the specific size.- Parameters:
newSize
- The new size.- Returns:
- A copy of the feature values.
-
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.
-
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
- A function to merge two doubles.
-
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.
-
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
Adds zero valued features for each feature name infeatureList
.featureList
must be sorted lexicographically using theString
comparator, and behaviour is undefined otherwise. -
iterator
-
toString
-
equals
-
hashCode
public int hashCode() -
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.
-
serialize
public org.tribuo.protos.core.ExampleProto serialize()Description copied from interface:ProtoSerializable
Serializes this object to a protobuf.- Returns:
- The protobuf.
-