|
||||||||||
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.BarHillelMetricMatlab
Class for performing RCA according to Bar-Hillel's algorithm.
Field Summary | |
static int |
CONVERSION_EXPONENTIAL
|
static int |
CONVERSION_LAPLACIAN
We can have different ways of converting from distance to similarity |
static int |
CONVERSION_UNIT
|
protected double[][] |
m_attrMatrix
full matrix returned by Matlab code |
java.lang.String |
m_chunkletAssignmentFilename
Name of the file where chunklet assignments will be stored |
protected int |
m_conversionType
The method of converting, by default laplacian |
java.lang.String |
m_dataFilename
Name of the file where dataMatrix will be stored |
protected java.lang.String |
m_RCAMFile
Name of the Matlab program file that computes RCA |
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 | |
BarHillelMetricMatlab()
Create a default new metric |
|
BarHillelMetricMatlab(int numAttributes)
Create a new metric. |
|
BarHillelMetricMatlab(int[] _attrIdxs)
Creates a new metric which takes specified attributes. |
Method Summary | |
void |
buildAttributeMatrix(Instances data,
int[] clusterAssignments)
|
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 components of the two given instances |
double |
distance(Instance instance1,
Instance instance2)
Returns a distance value between two instances. |
double |
distanceNonWeighted(Instance instance1,
Instance instance2)
Returns a distance value between two instances. |
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 distance to similarity conversion |
double[] |
getGradients(Instance instance1,
Instance instance2)
Get the values of the partial derivates for the metric components for a particular instance pair |
static java.lang.String |
getLogTimestamp()
Get a timestamp string as a weak uniqueid |
java.lang.String[] |
getOptions()
Gets the current settings of WeightedEuclideanP. |
boolean |
isDistanceBased()
The computation of a metric can be either based on distance, or on similarity |
void |
learnMetric(Instances data)
Train the distance metric. |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
static void |
main(java.lang.String[] argv)
Main method for testing this class |
void |
prepareMatlab(java.lang.String filename)
Create matlab m-file for ICA |
double[][] |
readMatrix(java.lang.String name)
Read column vectors from a text file |
void |
resetMetric()
Reset all values that have been learned |
static void |
runMatlab(java.lang.String inFile,
java.lang.String outFile)
Run matlab in command line with a given argument |
void |
setConversionType(SelectedTag conversionType)
Set the type of distance to similarity conversion. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
double |
similarity(Instance instance1,
Instance instance2)
Returns a similarity estimate between two instances. |
double |
similarityNonWeighted(Instance instance1,
Instance instance2)
Returns a similarity estimate between two instances without using the weights. |
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 double[][] m_attrMatrix
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 java.lang.String m_RCAMFile
public java.lang.String m_dataFilename
public java.lang.String m_chunkletAssignmentFilename
Constructor Detail |
public BarHillelMetricMatlab(int numAttributes) throws java.lang.Exception
numAttributes
- the number of attributes that the metric will work onpublic BarHillelMetricMatlab()
public BarHillelMetricMatlab(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 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 void setConversionType(SelectedTag conversionType)
public SelectedTag getConversionType()
public boolean isDistanceBased()
isDistanceBased
in class Metric
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 void buildAttributeMatrix(Instances data, int[] clusterAssignments) throws java.lang.Exception
java.lang.Exception
public double[][] readMatrix(java.lang.String name) throws java.lang.Exception
name
- file name
double[][]
value
java.lang.Exception
- if an error occurspublic void prepareMatlab(java.lang.String filename)
filename
- file where matlab script is createdpublic static void runMatlab(java.lang.String inFile, java.lang.String outFile)
inFile
- file to be input to MatlaboutFile
- file where results are storedpublic static java.lang.String getLogTimestamp()
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 Instance createDiffInstance(Instance instance1, Instance instance2)
createDiffInstance
in class LearnableMetric
instance1
- first instanceinstance2
- second instancepublic void learnMetric(Instances data) throws java.lang.Exception
learnMetric
in class LearnableMetric
java.lang.Exception
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 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 java.lang.String[] getOptions()
getOptions
in interface OptionHandler
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-N
Normalize the euclidean distance by vectors lengths
-E
Use exponential conversion from distance to similarity
(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 static void main(java.lang.String[] argv)
argv
- should contain the command line arguments to the
evaluator/transformer (see AttributeSelection)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |