Package org.tribuo.impl
Class IndexedArrayExample<T extends Output<T>>
java.lang.Object
org.tribuo.Example<T>
org.tribuo.impl.ArrayExample<T>
org.tribuo.impl.IndexedArrayExample<T>
- All Implemented Interfaces:
Serializable
,Iterable<Feature>
,ProtoSerializable<org.tribuo.protos.core.ExampleProto>
A version of ArrayExample which also has the id numbers.
Used in feature selection to provide log n lookups. May be used elsewhere in the future as a performance optimisation.
Note: output id caching is only valid with single dimensional Output
s like ClusterID, Event and Label.
Other outputs may return -1 from getOutputID()
.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A tuple of the feature name, id and value. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Protobuf serialization version.protected int[]
Feature id numbers from the internal featureMap.protected final int
Output id from the internal output map.Fields inherited from class org.tribuo.impl.ArrayExample
DEFAULT_SIZE, featureNames, featureValues, size
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
ConstructorDescriptionIndexedArrayExample
(Example<T> other, ImmutableFeatureMap featureMap, ImmutableOutputInfo<T> outputMap) This constructor removes unknown features.IndexedArrayExample
(IndexedArrayExample<T> other) Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a feature.void
addAll
(Collection<? extends Feature> features) Adds a collection of features.boolean
contains
(int i) Does this example contain a feature with id i.copy()
Returns a deep copy of this Example.void
UnlikeArrayExample.densify(List)
this method will throwIllegalArgumentException
if one of the feature names is not present in this example'sImmutableFeatureMap
.static ArrayExample<?>
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.boolean
int
getIdx
(int i) Gets the feature at internal index i.int
Gets the output id dimension number.protected void
growArray
(int minCapacity) Grows the backing arrays storing the names and values.int
hashCode()
Iterator over the feature ids and values.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.protected void
sort()
Sorts the feature list to maintain the lexicographic order invariant.Methods inherited from class org.tribuo.impl.ArrayExample
add, canonicalize, copyValues, growArray, isDense, iterator, lookup, newCapacity, set, size, toString, transform, validateExample
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:
-
featureIDs
protected int[] featureIDsFeature id numbers from the internal featureMap. -
outputID
protected final int outputIDOutput id from the internal output map. Note this only works for single dimensional outputs, in multi-dimensional cases it is likely to be -1.
-
-
Constructor Details
-
IndexedArrayExample
Copy constructor.- Parameters:
other
- The example to copy.
-
IndexedArrayExample
public IndexedArrayExample(Example<T> other, ImmutableFeatureMap featureMap, ImmutableOutputInfo<T> outputMap) This constructor removes unknown features.- Parameters:
other
- The example to copy from.featureMap
- The feature map.outputMap
- The output info.
-
-
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
.
-
equals
- Overrides:
equals
in classArrayExample<T extends Output<T>>
-
hashCode
public int hashCode()- Overrides:
hashCode
in classArrayExample<T extends Output<T>>
-
growArray
protected void growArray(int minCapacity) Description copied from class:ArrayExample
Grows the backing arrays storing the names and values.- Overrides:
growArray
in classArrayExample<T extends Output<T>>
- Parameters:
minCapacity
- The new minimum capacity required.
-
add
Description copied from class:Example
Adds a feature. This maintains the sorted invariant and has a lg(example.size()) cost per insertion.- Overrides:
add
in classArrayExample<T extends Output<T>>
- Parameters:
feature
- The feature to add.
-
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.- Overrides:
addAll
in classArrayExample<T extends Output<T>>
- Parameters:
features
- The features to add.
-
sort
protected void sort()Description copied from class:ArrayExample
Sorts the feature list to maintain the lexicographic order invariant.- Overrides:
sort
in classArrayExample<T extends Output<T>>
-
reduceByName
Description copied from class:Example
Merges features with the same name using the suppliedMerger
.- Overrides:
reduceByName
in classArrayExample<T extends Output<T>>
- Parameters:
merger
- A function to merge two doubles.
-
removeFeatures
Description copied from class:Example
Removes all features in this list from the Example.- Overrides:
removeFeatures
in classArrayExample<T extends Output<T>>
- Parameters:
featureList
- Features to remove from this Example.
-
contains
public boolean contains(int i) Does this example contain a feature with id i.- Parameters:
i
- The index to check.- Returns:
- True if the example contains the id.
-
copy
Description copied from class:Example
Returns a deep copy of this Example.- Overrides:
copy
in classArrayExample<T extends Output<T>>
- Returns:
- A deep copy of this example.
-
densify
UnlikeArrayExample.densify(List)
this method will throwIllegalArgumentException
if one of the feature names is not present in this example'sImmutableFeatureMap
.featureList
must be sorted lexicographically using theString
comparator, and behaviour is undefined otherwise.- Overrides:
densify
in classArrayExample<T extends Output<T>>
- Parameters:
featureList
- A *sorted* list of feature names.
-
getIdx
public int getIdx(int i) Gets the feature at internal index i.- Parameters:
i
- The internal index.- Returns:
- The feature index.
-
getOutputID
public int getOutputID()Gets the output id dimension number.- Returns:
- The output id.
-
idIterator
Iterator over the feature ids and values.- Returns:
- The feature ids and values.
-
serialize
public org.tribuo.protos.core.ExampleProto serialize()Description copied from interface:ProtoSerializable
Serializes this object to a protobuf.- Specified by:
serialize
in interfaceProtoSerializable<T extends Output<T>>
- Overrides:
serialize
in classArrayExample<T extends Output<T>>
- Returns:
- The protobuf.
-