jsat.classifiers.evaluation
Class LogLoss
- java.lang.Object
-
- jsat.classifiers.evaluation.LogLoss
-
- All Implemented Interfaces:
- java.io.Serializable, ClassificationScore
public class LogLoss extends java.lang.Object implements ClassificationScore
This computes the multi-class Log Loss
- 1/N Σ∀ i ∈ N log(pi, y)
Where N is the number of data points and pi, y is the estimated probability of the true class label. The lower the loss score, the better.
When pi, y = 0 the log loss is uninformatively forced to ∞, even if all other data points are perfectly correct. To avoid this a small nudge factor is added.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description LogLoss()Creates a new Log Loss evaluation scoreLogLoss(double nudge)Creates a new Log Loss evaluation scoreLogLoss(LogLoss toClone)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidaddResult(CategoricalResults prediction, int trueLabel, double weight)Adds the given result to the scorevoidaddResults(ClassificationScore other)The score contained in this object is augmented with the results already accumulated in theotherobject.LogLossclone()booleanequals(java.lang.Object obj)java.lang.StringgetName()Returns the name to present for this scoredoublegetScore()Computes the score for the results that have been enrolled viaClassificationScore.addResult(jsat.classifiers.CategoricalResults, int, double)inthashCode()booleanlowerIsBetter()Returnstrueif a lower score is better, orfalseif a higher score is bettervoidprepare(CategoricalData toPredict)Prepares this score to predict on the given input
-
-
-
Constructor Detail
-
LogLoss
public LogLoss()
Creates a new Log Loss evaluation score
-
LogLoss
public LogLoss(double nudge)
Creates a new Log Loss evaluation score- Parameters:
nudge- the nudge value to avoid zero probabilities, must be non negative and less than 0.1
-
LogLoss
public LogLoss(LogLoss toClone)
-
-
Method Detail
-
addResult
public void addResult(CategoricalResults prediction, int trueLabel, double weight)
Description copied from interface:ClassificationScoreAdds the given result to the score- Specified by:
addResultin interfaceClassificationScore- Parameters:
prediction- the prediction for the data pointtrueLabel- the true label for the data pointweight- the weigh to assign to the data point
-
addResults
public void addResults(ClassificationScore other)
Description copied from interface:ClassificationScoreThe score contained in this object is augmented with the results already accumulated in theotherobject. This does not result in an averaging, but alters the current object to have the same score it would have had if all the results were originally inserted into this object.
This method is only required to work ifotherif of the same class asthisobject.- Specified by:
addResultsin interfaceClassificationScore- Parameters:
other- the object to add the results from
-
prepare
public void prepare(CategoricalData toPredict)
Description copied from interface:ClassificationScorePrepares this score to predict on the given input- Specified by:
preparein interfaceClassificationScore- Parameters:
toPredict- the class label information that will be evaluated
-
getScore
public double getScore()
Description copied from interface:ClassificationScoreComputes the score for the results that have been enrolled viaClassificationScore.addResult(jsat.classifiers.CategoricalResults, int, double)- Specified by:
getScorein interfaceClassificationScore- Returns:
- the score for the current results
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equalsin interfaceClassificationScore- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceClassificationScore- Overrides:
hashCodein classjava.lang.Object
-
lowerIsBetter
public boolean lowerIsBetter()
Description copied from interface:ClassificationScoreReturnstrueif a lower score is better, orfalseif a higher score is better- Specified by:
lowerIsBetterin interfaceClassificationScore- Returns:
trueif a lower score is better
-
clone
public LogLoss clone()
- Specified by:
clonein interfaceClassificationScore- Overrides:
clonein classjava.lang.Object
-
getName
public java.lang.String getName()
Description copied from interface:ClassificationScoreReturns the name to present for this score- Specified by:
getNamein interfaceClassificationScore- Returns:
- the score name
-
-
DataMelt 3.0 © DataMelt by jWork.ORG