|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mahout.classifier.AbstractVectorClassifier
org.apache.mahout.classifier.sgd.PassiveAggressive
public class PassiveAggressive
Online passive aggressive learner that tries to minimize the label ranking hinge loss. Implements a multi-class linear classifier minimizing rank loss. based on "Online passive aggressive algorithms" by Cramer et al, 2006. Note: Its better to use classifyNoLink because the loss function is based on ensuring that the score of the good label is larger than the next highest label by some margin. The conversion to probability is just done by exponentiating and dividing by the sum and is empirical at best. Your features should be pre-normalized in some sensible range, for example, by subtracting the mean and standard deviation, if they are very different in magnitude from each other.
Field Summary | |
---|---|
static int |
WRITABLE_VERSION
|
Fields inherited from class org.apache.mahout.classifier.AbstractVectorClassifier |
---|
MIN_LOG_LIKELIHOOD |
Constructor Summary | |
---|---|
PassiveAggressive(int numCategories,
int numFeatures)
|
Method Summary | |
---|---|
Vector |
classify(Vector instance)
Compute and return a vector containing n-1 scores, where
n is equal to numCategories() , given an input
vector instance . |
Vector |
classifyNoLink(Vector instance)
Compute and return a vector of scores before applying the inverse link function. |
double |
classifyScalar(Vector instance)
Classifies a vector in the special case of a binary classifier where AbstractVectorClassifier.classify(Vector) would return a vector with only one element. |
void |
close()
Prepares the classifier for classification and deallocates any temporary data structures. |
PassiveAggressive |
copy()
|
void |
copyFrom(PassiveAggressive other)
|
PassiveAggressive |
learningRate(double learningRate)
Chainable configuration option. |
int |
numCategories()
Returns the number of categories that a target variable can be assigned to. |
int |
numFeatures()
|
void |
readFields(DataInput in)
|
void |
train(int actual,
Vector instance)
Updates the model using a particular target variable value and a feature vector. |
void |
train(long trackingKey,
int actual,
Vector instance)
Updates the model using a particular target variable value and a feature vector. |
void |
train(long trackingKey,
String groupKey,
int actual,
Vector instance)
Updates the model using a particular target variable value and a feature vector. |
void |
write(DataOutput out)
|
Methods inherited from class org.apache.mahout.classifier.AbstractVectorClassifier |
---|
classify, classifyFull, classifyFull, classifyFull, classifyScalar, logLikelihood |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int WRITABLE_VERSION
Constructor Detail |
---|
public PassiveAggressive(int numCategories, int numFeatures)
Method Detail |
---|
public PassiveAggressive learningRate(double learningRate)
learningRate
- New value of initial learning rate.
public void copyFrom(PassiveAggressive other)
public int numCategories()
AbstractVectorClassifier
0
to numCategories()-1
(inclusive).
numCategories
in class AbstractVectorClassifier
public Vector classify(Vector instance)
AbstractVectorClassifier
n-1
scores, where
n
is equal to numCategories()
, given an input
vector instance
. Higher scores indicate that the input vector
is more likely to belong to that category. The categories are denoted by
the integers 0
through n-1
(inclusive), and the
scores in the returned vector correspond to categories 1 through
n-1
(leaving out category 0). It is assumed that the score for
category 0 is one minus the sum of the scores in the returned vector.
classify
in class AbstractVectorClassifier
instance
- A feature vector to be classified.
n-1
encoding.public Vector classifyNoLink(Vector instance)
AbstractVectorClassifier
The implementation of this method provided by AbstractVectorClassifier
throws an
UnsupportedOperationException
. Your subclass must explicitly override this method to support
this operation.
classifyNoLink
in class AbstractVectorClassifier
instance
- A feature vector to be classified.
public double classifyScalar(Vector instance)
AbstractVectorClassifier
AbstractVectorClassifier.classify(Vector)
would return a vector with only one element. As
such, using this method can avoid the allocation of a vector.
classifyScalar
in class AbstractVectorClassifier
instance
- The feature vector to be classified.
AbstractVectorClassifier.classify(Vector)
public int numFeatures()
public PassiveAggressive copy()
public void write(DataOutput out) throws IOException
write
in interface org.apache.hadoop.io.Writable
IOException
public void readFields(DataInput in) throws IOException
readFields
in interface org.apache.hadoop.io.Writable
IOException
public void close()
OnlineLearner
close
in interface Closeable
close
in interface OnlineLearner
public void train(long trackingKey, String groupKey, int actual, Vector instance)
OnlineLearner
train
in interface OnlineLearner
trackingKey
- The tracking key for this training example.groupKey
- An optional value that allows examples to be grouped in the computation of
the update to the model.actual
- The value of the target variable. This value should be in the half-open
interval [0..n) where n is the number of target categories.instance
- The feature vector for this example.public void train(long trackingKey, int actual, Vector instance)
OnlineLearner
train
in interface OnlineLearner
trackingKey
- The tracking key for this training example.actual
- The value of the target variable. This value should be in the half-open
interval [0..n) where n is the number of target categories.instance
- The feature vector for this example.public void train(int actual, Vector instance)
OnlineLearner
train
in interface OnlineLearner
actual
- The value of the target variable. This value should be in the half-open
interval [0..n) where n is the number of target categories.instance
- The feature vector for this example.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |