|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.core.metrics.Metric
weka.core.metrics.LearnableMetric
weka.core.metrics.WeightedDotP
WeightedDotP class Implements the weighted dot product distance metric
Field Summary | |
static int |
CONVERSION_EXPONENTIAL
|
static int |
CONVERSION_LAPLACIAN
We can have different ways of converting from similarity to distance |
static int |
CONVERSION_UNIT
|
protected int |
m_conversionType
The method of converting, by default laplacian |
protected boolean |
m_lengthNormalized
Should cosine similarity be normalized by the length of two instance vectors? |
protected MetricLearner |
m_metricLearner
A metric learner responsible for training the parameters of the metric |
static Tag[] |
TAGS_CONVERSION
|
Fields inherited from class weka.core.metrics.LearnableMetric |
m_attrWeights, m_classifier, m_classifierClassName, m_classifierRequiresNominalClass, m_numPosDiffInstances, m_posNegDiffInstanceRatio, m_trainable |
Fields inherited from class weka.core.metrics.Metric |
m_attrIdxs, m_classIndex, m_numAttributes |
Constructor Summary | |
WeightedDotP()
Creates an empty metric class |
|
WeightedDotP(int numAttributes)
Creates a new metric. |
|
WeightedDotP(int[] _attrIdxs)
Creates a new metric which takes specified attributes. |
Method Summary | |
void |
buildMetric(Instances data)
Create a new metric for operating on specified instances |
void |
buildMetric(int numAttributes)
Generates a new Metric. |
void |
buildMetric(int numAttributes,
java.lang.String[] options)
Generates a new Metric. |
Instance |
createDiffInstance(Instance instance1,
Instance instance2)
Create an Instance with features corresponding to internal "features": for x'y returns an instance with the following features: [x1*y1, x2*y2, ..., xn*yn] |
Instance |
createDiffInstanceNonSparse(Instance instance1,
Instance instance2)
Create an Instance with features corresponding to internal "features": for x'y returns an instance with the following features: [x1*y1, x2*y2, ..., xn*yn] |
SparseInstance |
createDiffInstanceSparse(SparseInstance instance1,
SparseInstance instance2)
Create a SparseInstance with features corresponding to internal "features": for x'y returns an instance with the following features: [x1*y1, x2*y2, ..., xn*yn] |
SparseInstance |
createDiffInstanceSparseNonSparse(SparseInstance instance1,
Instance instance2)
Create a SparseInstance with features corresponding to internal "features": for x'y returns an instance with the following features: [x1*y1, x2*y2, ..., xn*yn] |
double |
distance(Instance instance1,
Instance instance2)
Returns distance between two instances using the current conversion type (CONVERSION_LAPLACIAN, CONVERSION_EXPONENTIAL, CONVERSION_UNIT, ...) |
double |
distanceNonWeighted(Instance instance1,
Instance instance2)
Returns distance between two instances using the current conversion without using the weights type (CONVERSION_LAPLACIAN, CONVERSION_EXPONENTIAL, CONVERSION_UNIT, ...) |
Instance |
getCentroidInstance(Instances instances,
boolean fastMode,
boolean normalized)
Given a cluster of instances, return the centroid of that cluster |
SelectedTag |
getConversionType()
return the type of similarity to distance conversion |
double[] |
getGradients(Instance instance1,
Instance instance2)
Get the values of the partial derivates for the metric components for a particular instance pair |
boolean |
getLengthNormalized()
Check whether similarity is normalized by the length of the vectors |
MetricLearner |
getMetricLearner()
Get the distance metric learner |
java.lang.String[] |
getOptions()
Gets the current settings of WeightedDotP. |
boolean |
isDistanceBased()
The computation of a metric can be either based on distance, or on similarity |
void |
learnMetric(Instances data)
Updates the weights |
double |
lengthWeighted(Instance instance)
Get the norm-2 length of an instance assuming all attributes are numeric and utilizing the attribute weights |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
static void |
main(java.lang.String[] args)
|
void |
resetMetric()
Reset all values that have been learned |
void |
setConversionType(SelectedTag conversionType)
Set the type of similarity to distance conversion. |
void |
setLengthNormalized(boolean lengthNormalized)
Set normalization by instance length to be on or off |
void |
setMetricLearner(MetricLearner metricLearner)
Set the distance metric learner |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
double |
similarity(Instance instance1,
Instance instance2)
Returns a dot product similarity value between two instances. |
double |
similarityInternal(Instance instance1,
Instance instance2)
Returns a dot product similarity value between two instances. |
double |
similarityNonSparse(Instance instance1,
Instance instance2)
Returns a dot product similarity value between a two non-sparse instances |
double |
similarityNonSparseNonWeighted(Instance instance1,
Instance instance2)
Returns a dot product similarity value between a two non-sparse instances |
double |
similarityNonWeighted(Instance instance1,
Instance instance2)
Returns a dot product similarity value between two instances without using the weights. |
double |
similaritySparse(SparseInstance instance1,
SparseInstance instance2)
Returns a dot product similarity value between two sparse instances. |
double |
similaritySparseNonSparse(SparseInstance instance1,
Instance instance2)
Returns a dot product similarity value between a non-sparse instance and a sparse instance |
double |
similaritySparseNonSparseNonWeighted(SparseInstance instance1,
Instance instance2)
Returns a dot product similarity value between a non-sparse instance and a sparse instance |
double |
similaritySparseNonWeighted(SparseInstance instance1,
SparseInstance instance2)
Returns a dot product similarity value between two sparse instances. |
Methods inherited from class weka.core.metrics.LearnableMetric |
clone, getExternal, getNumPosDiffInstances, getPosNegDiffInstanceRatio, getTrainable, getWeights, meanOrMode, normalizeInstanceWeighted, setExternal, setNumPosDiffInstances, setPosNegDiffInstanceRatio, setTrainable, setWeights, useClassifier, useNoClassifier, usesClassifier |
Methods inherited from class weka.core.metrics.Metric |
forName, getAttrIdxs, getAttrIdxsWithoutLastClass, getAttrIndxs, getClassIndex, getNumAttributes, length, normalizeInstance, setAttrIdxs, setAttrIdxs, setClassIndex |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected boolean m_lengthNormalized
public static final int CONVERSION_LAPLACIAN
public static final int CONVERSION_UNIT
public static final int CONVERSION_EXPONENTIAL
public static final Tag[] TAGS_CONVERSION
protected int m_conversionType
protected MetricLearner m_metricLearner
Constructor Detail |
public WeightedDotP()
public WeightedDotP(int numAttributes) throws java.lang.Exception
numAttributes
- the number of attributes that the metric will work onpublic WeightedDotP(int[] _attrIdxs) throws java.lang.Exception
_attrIdxs
- An array containing attribute indeces that will
be used in the metricMethod Detail |
public void resetMetric() throws java.lang.Exception
resetMetric
in class LearnableMetric
java.lang.Exception
public void buildMetric(int numAttributes) throws java.lang.Exception
buildMetric
in class Metric
numAttributes
- the number of attributes that the metric will work on
java.lang.Exception
- if the distance metric has not been
generated successfully.public void buildMetric(int numAttributes, java.lang.String[] options) throws java.lang.Exception
buildMetric
in class Metric
options
- an array of options suitable for passing to setOptions.
May be null.numAttributes
- the number of attributes that the metric will work on
java.lang.Exception
- if the distance metric has not been
generated successfully.public void buildMetric(Instances data) throws java.lang.Exception
buildMetric
in class Metric
data
- instances that the metric will be used on
java.lang.Exception
public double similarity(Instance instance1, Instance instance2) throws java.lang.Exception
similarity
in class Metric
instance1
- First instance.instance2
- Second instance.
java.lang.Exception
- if similarity could not be estimated.public double similarityNonWeighted(Instance instance1, Instance instance2) throws java.lang.Exception
similarityNonWeighted
in class Metric
instance1
- First instance.instance2
- Second instance.
java.lang.Exception
- if similarity could not be estimated.public double similarityInternal(Instance instance1, Instance instance2) throws java.lang.Exception
instance1
- First instance.instance2
- Second instance.
java.lang.Exception
- if similarity could not be estimated.public double similaritySparse(SparseInstance instance1, SparseInstance instance2) throws java.lang.Exception
instance1
- First sparse instance.instance2
- Second sparse instance.
java.lang.Exception
- if similarity could not be estimated.public double similarityNonSparse(Instance instance1, Instance instance2) throws java.lang.Exception
instance1
- First non-sparse instance.instance2
- Second non-sparse instance.
java.lang.Exception
- if similarity could not be estimated.public double similaritySparseNonSparse(SparseInstance instance1, Instance instance2) throws java.lang.Exception
instance1
- First sparse instance.instance2
- Second non-sparse instance.
java.lang.Exception
- if similarity could not be estimated.public double similaritySparseNonWeighted(SparseInstance instance1, SparseInstance instance2) throws java.lang.Exception
instance1
- First sparse instance.instance2
- Second sparse instance.
java.lang.Exception
- if similarity could not be estimated.public double similarityNonSparseNonWeighted(Instance instance1, Instance instance2) throws java.lang.Exception
instance1
- First non-sparse instance.instance2
- Second non-sparse instance.
java.lang.Exception
- if similarity could not be estimated.public double similaritySparseNonSparseNonWeighted(SparseInstance instance1, Instance instance2) throws java.lang.Exception
instance1
- First sparse instance.instance2
- Second non-sparse instance.
java.lang.Exception
- if similarity could not be estimated.public Instance createDiffInstance(Instance instance1, Instance instance2)
createDiffInstance
in class LearnableMetric
instance1
- first instanceinstance2
- second instancepublic SparseInstance createDiffInstanceSparse(SparseInstance instance1, SparseInstance instance2)
instance1
- first sparse instanceinstance2
- second sparse instancepublic Instance createDiffInstanceNonSparse(Instance instance1, Instance instance2)
instance1
- first instanceinstance2
- second instancepublic SparseInstance createDiffInstanceSparseNonSparse(SparseInstance instance1, Instance instance2)
instance1
- first sparse instanceinstance2
- second instancepublic double distance(Instance instance1, Instance instance2) throws java.lang.Exception
distance
in class Metric
instance1
- First instance.instance2
- Second instance.
java.lang.Exception
- if distance could not be estimated.public double distanceNonWeighted(Instance instance1, Instance instance2) throws java.lang.Exception
distanceNonWeighted
in class Metric
instance1
- First instance.instance2
- Second instance.
java.lang.Exception
- if distance could not be estimated.public void setConversionType(SelectedTag conversionType)
public SelectedTag getConversionType()
public void setLengthNormalized(boolean lengthNormalized)
lengthNormalized
- if true, similarity is normalized by the length of the vectorspublic boolean getLengthNormalized()
public void learnMetric(Instances data) throws java.lang.Exception
learnMetric
in class LearnableMetric
java.lang.Exception
public void setMetricLearner(MetricLearner metricLearner)
metricLearner
- the metric learnerpublic MetricLearner getMetricLearner()
public boolean isDistanceBased()
isDistanceBased
in class Metric
public Instance getCentroidInstance(Instances instances, boolean fastMode, boolean normalized)
getCentroidInstance
in class LearnableMetric
instances
- objects belonging to a clusterfastMode
- whether fast mode should be used for SparseInstancesnormalized
- normalize centroids for SPKMeans
public double[] getGradients(Instance instance1, Instance instance2) throws java.lang.Exception
getGradients
in class LearnableMetric
instance1
- the first instanceinstance2
- the first instance
java.lang.Exception
public double lengthWeighted(Instance instance)
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-N
Normalize the dot product by vectors lengths
-E
Use exponential conversion from similarity to distance
(default laplacian conversion)
-U
Use unit conversion from similarity to distance (dist=1-sim)
(default laplacian conversion)
-R
The metric is trainable and will be trained using the current MetricLearner
(default non-trainable)
setOptions
in interface OptionHandler
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
public java.lang.String[] getOptions()
getOptions
in interface OptionHandler
public static void main(java.lang.String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |