All Packages Class Hierarchy This Package Previous Next Index WEKA's home
Class weka.core.Attribute
java.lang.Object
|
+----weka.core.Attribute
- public class Attribute
- extends java.lang.Object
- implements Copyable, java.io.Serializable
Class for handling an attribute. Once an attribute has been created,
it can't be changed.
Three attribute types are supported:
- numeric:
This type of attribute represents a floating-point number.
- nominal:
This type of attribute represents a fixed set of nominal values.
- string:
This type of attribute represents a dynamically expanding set of
nominal values. String attributes are not used by the learning
schemes in Weka. They can be used, for example, to store an
identifier with each instance in a dataset.
Typical usage (code from the main() method of this class):
...
// Create numeric attributes "length" and "weight"
Attribute length = new Attribute("length");
Attribute weight = new Attribute("weight");
// Create vector to hold nominal values "first", "second", "third"
FastVector my_nominal_values = new FastVector(3);
my_nominal_values.addElement("first");
my_nominal_values.addElement("second");
my_nominal_values.addElement("third");
// Create nominal attribute "position"
Attribute position = new Attribute("position", my_nominal_values);
...
- Version:
- $Revision: 1.29 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz)
DATE- Constant set for attributes with date values.
NOMINAL- Constant set for nominal attributes.
NUMERIC- Constant set for numeric attributes.
ORDERING_MODULO- Constant set for modulo-ordered attributes.
ORDERING_ORDERED- Constant set for ordered attributes.
ORDERING_SYMBOLIC- Constant set for symbolic attributes.
STRING- Constant set for attributes with string values.
Attribute(String)
- Constructor for a numeric attribute.
Attribute(String, FastVector)
- Constructor for nominal attributes and string attributes.
Attribute(String, FastVector, ProtectedProperties)
- Constructor for nominal attributes and string attributes, where
metadata is supplied.
Attribute(String, ProtectedProperties)
- Constructor for a numeric attribute, where metadata is supplied.
Attribute(String, String)
- Constructor for a date attribute.
Attribute(String, String, ProtectedProperties)
- Constructor for a date attribute, where metadata is supplied.
addStringValue(Attribute, int)
- Adds a string value to the list of valid strings for attributes
of type STRING and returns the index of the string.
addStringValue(String)
- Adds a string value to the list of valid strings for attributes
of type STRING and returns the index of the string.
copy()
- Produces a shallow copy of this attribute.
enumerateValues()
- Returns an enumeration of all the attribute's values if
the attribute is nominal or a string, null otherwise.
equals(Object)
- Tests if given attribute is equal to this attribute.
formatDate(double)
-
getLowerNumericBound()
- Returns the lower bound of a numeric attribute.
getMetadata()
- Returns the properties supplied for this attribute.
getUpperNumericBound()
- Returns the upper bound of a numeric attribute.
hasZeropoint()
- Returns whether the attribute has a zeropoint and may be
added meaningfully.
index()
- Returns the index of this attribute.
indexOfValue(String)
- Returns the index of a given attribute value.
isAveragable()
- Returns whether the attribute can be averaged meaningfully.
isDate()
- Tests if the attribute is a date type.
isInRange(double)
- Determines whether a value lies within the bounds of the attribute.
isNominal()
- Test if the attribute is nominal.
isNumeric()
- Tests if the attribute is numeric.
isRegular()
- Returns whether the attribute values are equally spaced.
isString()
- Tests if the attribute is a string.
lowerNumericBoundIsOpen()
- Returns whether the lower numeric bound of the attribute is open.
main(String[])
- Simple main method for testing this class.
name()
- Returns the attribute's name.
numValues()
- Returns the number of attribute values.
ordering()
- Returns the ordering of the attribute.
parseDate(String)
-
toString()
- Returns a description of this attribute in ARFF format.
type()
- Returns the attribute's type as an integer.
upperNumericBoundIsOpen()
- Returns whether the upper numeric bound of the attribute is open.
value(int)
- Returns a value of a nominal or string attribute.
weight()
- Returns the attribute's weight.
NUMERIC
public static final int NUMERIC
Constant set for numeric attributes.
NOMINAL
public static final int NOMINAL
Constant set for nominal attributes.
STRING
public static final int STRING
Constant set for attributes with string values.
DATE
public static final int DATE
Constant set for attributes with date values.
ORDERING_SYMBOLIC
public static final int ORDERING_SYMBOLIC
Constant set for symbolic attributes.
ORDERING_ORDERED
public static final int ORDERING_ORDERED
Constant set for ordered attributes.
ORDERING_MODULO
public static final int ORDERING_MODULO
Constant set for modulo-ordered attributes.
Attribute
public Attribute(java.lang.String attributeName)
Constructor for a numeric attribute.
- Parameters:
attributeName - the name for the attribute
Attribute
public Attribute(java.lang.String attributeName,
ProtectedProperties metadata)
Constructor for a numeric attribute, where metadata is supplied.
- Parameters:
attributeName - the name for the attribute
metadata - the attribute's properties
Attribute
public Attribute(java.lang.String attributeName,
java.lang.String dateFormat)
Constructor for a date attribute.
- Parameters:
attributeName - the name for the attribute
dateFormat - a string suitable for use with
SimpleDateFormatter for parsing dates.
Attribute
public Attribute(java.lang.String attributeName,
java.lang.String dateFormat,
ProtectedProperties metadata)
Constructor for a date attribute, where metadata is supplied.
- Parameters:
attributeName - the name for the attribute
dateFormat - a string suitable for use with
SimpleDateFormatter for parsing dates.
metadata - the attribute's properties
Attribute
public Attribute(java.lang.String attributeName,
FastVector attributeValues)
Constructor for nominal attributes and string attributes.
If a null vector of attribute values is passed to the method,
the attribute is assumed to be a string.
- Parameters:
attributeName - the name for the attribute
attributeValues - a vector of strings denoting the
attribute values. Null if the attribute is a string attribute.
Attribute
public Attribute(java.lang.String attributeName,
FastVector attributeValues,
ProtectedProperties metadata)
Constructor for nominal attributes and string attributes, where
metadata is supplied. If a null vector of attribute values is passed
to the method, the attribute is assumed to be a string.
- Parameters:
attributeName - the name for the attribute
attributeValues - a vector of strings denoting the
attribute values. Null if the attribute is a string attribute.
metadata - the attribute's properties
copy
public java.lang.Object copy()
Produces a shallow copy of this attribute.
- Returns:
- a copy of this attribute with the same index
enumerateValues
public final java.util.Enumeration enumerateValues()
Returns an enumeration of all the attribute's values if
the attribute is nominal or a string, null otherwise.
- Returns:
- enumeration of all the attribute's values
equals
public final boolean equals(java.lang.Object other)
Tests if given attribute is equal to this attribute.
- Parameters:
other - the Object to be compared to this attribute
- Returns:
- true if the given attribute is equal to this attribute
- Overrides:
- equals in class java.lang.Object
index
public final int index()
Returns the index of this attribute.
- Returns:
- the index of this attribute
indexOfValue
public final int indexOfValue(java.lang.String value)
Returns the index of a given attribute value. (The index of
the first occurence of this value.)
- Parameters:
value - the value for which the index is to be returned
- Returns:
- the index of the given attribute value if attribute
is nominal or a string, -1 if it is numeric or the value
can't be found
isNominal
public final boolean isNominal()
Test if the attribute is nominal.
- Returns:
- true if the attribute is nominal
isNumeric
public final boolean isNumeric()
Tests if the attribute is numeric.
- Returns:
- true if the attribute is numeric
isString
public final boolean isString()
Tests if the attribute is a string.
- Returns:
- true if the attribute is a string
isDate
public final boolean isDate()
Tests if the attribute is a date type.
- Returns:
- true if the attribute is a date type
name
public final java.lang.String name()
Returns the attribute's name.
- Returns:
- the attribute's name as a string
numValues
public final int numValues()
Returns the number of attribute values. Returns 0 for numeric attributes.
- Returns:
- the number of attribute values
toString
public final java.lang.String toString()
Returns a description of this attribute in ARFF format. Quotes
strings if they contain whitespace characters, or if they
are a question mark.
- Returns:
- a description of this attribute as a string
- Overrides:
- toString in class java.lang.Object
type
public final int type()
Returns the attribute's type as an integer.
- Returns:
- the attribute's type.
value
public final java.lang.String value(int valIndex)
Returns a value of a nominal or string attribute.
Returns an empty string if the attribute is neither
nominal nor a string attribute.
- Parameters:
valIndex - the value's index
- Returns:
- the attribute's value as a string
addStringValue
public int addStringValue(java.lang.String value)
Adds a string value to the list of valid strings for attributes
of type STRING and returns the index of the string.
- Parameters:
value - The string value to add
- Returns:
- the index assigned to the string, or -1 if the attribute is not
of type Attribute.STRING
addStringValue
public int addStringValue(Attribute src,
int index)
Adds a string value to the list of valid strings for attributes
of type STRING and returns the index of the string. This method is
more efficient than addStringValue(String) for long strings.
- Parameters:
src - The Attribute containing the string value to add.
int - index the index of the string value in the source attribute.
- Returns:
- the index assigned to the string, or -1 if the attribute is not
of type Attribute.STRING
formatDate
public java.lang.String formatDate(double date)
parseDate
public double parseDate(java.lang.String string) throws java.text.ParseException
getMetadata
public final ProtectedProperties getMetadata()
Returns the properties supplied for this attribute.
- Returns:
- metadata for this attribute
ordering
public final int ordering()
Returns the ordering of the attribute. One of the following:
ORDERING_SYMBOLIC - attribute values should be treated as symbols.
ORDERING_ORDERED - attribute values have a global ordering.
ORDERING_MODULO - attribute values have an ordering which wraps.
- Returns:
- the ordering type of the attribute
isRegular
public final boolean isRegular()
Returns whether the attribute values are equally spaced.
- Returns:
- whether the attribute is regular or not
isAveragable
public final boolean isAveragable()
Returns whether the attribute can be averaged meaningfully.
- Returns:
- whether the attribute can be averaged or not
hasZeropoint
public final boolean hasZeropoint()
Returns whether the attribute has a zeropoint and may be
added meaningfully.
- Returns:
- whether the attribute has a zeropoint or not
weight
public final double weight()
Returns the attribute's weight.
- Returns:
- the attribute's weight as a double
getLowerNumericBound
public final double getLowerNumericBound()
Returns the lower bound of a numeric attribute.
- Returns:
- the lower bound of the specified numeric range
lowerNumericBoundIsOpen
public final boolean lowerNumericBoundIsOpen()
Returns whether the lower numeric bound of the attribute is open.
- Returns:
- whether the lower numeric bound is open or not (closed)
getUpperNumericBound
public final double getUpperNumericBound()
Returns the upper bound of a numeric attribute.
- Returns:
- the upper bound of the specified numeric range
upperNumericBoundIsOpen
public final boolean upperNumericBoundIsOpen()
Returns whether the upper numeric bound of the attribute is open.
- Returns:
- whether the upper numeric bound is open or not (closed)
isInRange
public final boolean isInRange(double value)
Determines whether a value lies within the bounds of the attribute.
- Returns:
- whether the value is in range
main
public static void main(java.lang.String ops[])
Simple main method for testing this class.
All Packages Class Hierarchy This Package Previous Next Index WEKA's home