de.lmu.ifi.dbs.elki.utilities.scaling.outlier
Class SigmoidOutlierScalingFunction

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.utilities.scaling.outlier.SigmoidOutlierScalingFunction
All Implemented Interfaces:
InspectionUtilFrequentlyScanned, Parameterizable, OutlierScalingFunction, ScalingFunction

@Reference(authors="J. Gao, P.-N. Tan",
           title="Converting Output Scores from Outlier Detection Algorithms into Probability Estimates",
           booktitle="Proc. Sixth International Conference on Data Mining, 2006. ICDM\'06.",
           url="http://dx.doi.org/10.1109/ICDM.2006.43")
public class SigmoidOutlierScalingFunction
extends Object
implements OutlierScalingFunction

Tries to fit a sigmoid to the outlier scores and use it to convert the values to probability estimates in the range of 0.0 to 1.0


Field Summary
(package private)  double Afinal
          Sigmoid parameter
(package private)  double Bfinal
          Sigmoid parameter
private static Logging logger
          The logger for this class.
 
Constructor Summary
SigmoidOutlierScalingFunction()
           
 
Method Summary
 double getMax()
          Get maximum resulting value.
 double getMin()
          Get minimum resulting value.
 double getScaled(double value)
          Transform a given value using the scaling function.
private  double[] MStepLevenbergMarquardt(double a, double b, ArrayDBIDs ids, BitSet t, Relation<Double> scores)
          M-Step using a modified Levenberg-Marquardt method.
 void prepare(OutlierResult or)
          Prepare is called once for each data set, before getScaled() will be called.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logging logger
The logger for this class.


Afinal

double Afinal
Sigmoid parameter


Bfinal

double Bfinal
Sigmoid parameter

Constructor Detail

SigmoidOutlierScalingFunction

public SigmoidOutlierScalingFunction()
Method Detail

prepare

public void prepare(OutlierResult or)
Description copied from interface: OutlierScalingFunction
Prepare is called once for each data set, before getScaled() will be called. This function can be used to extract global parameters such as means, minimums or maximums from the Database, Result or Annotation.

Specified by:
prepare in interface OutlierScalingFunction
Parameters:
or - Outlier result to use

MStepLevenbergMarquardt

private final double[] MStepLevenbergMarquardt(double a,
                                               double b,
                                               ArrayDBIDs ids,
                                               BitSet t,
                                               Relation<Double> scores)
M-Step using a modified Levenberg-Marquardt method.

Implementation based on:
H.-T. Lin, C.-J. Lin, R. C. Weng:
A Note on Platt’s Probabilistic Outputs for Support Vector Machines

Parameters:
a - A parameter
b - B parameter
ids - Ids to process
t - Bitset containing the assignment
scores - Scores
Returns:
new values for A and B.

getMax

public double getMax()
Description copied from interface: ScalingFunction
Get maximum resulting value. May be Double.NaN or Double.POSITIVE_INFINITY.

Specified by:
getMax in interface ScalingFunction
Returns:
Maximum resulting value.

getMin

public double getMin()
Description copied from interface: ScalingFunction
Get minimum resulting value. May be Double.NaN or Double.NEGATIVE_INFINITY.

Specified by:
getMin in interface ScalingFunction
Returns:
Minimum resulting value.

getScaled

public double getScaled(double value)
Description copied from interface: ScalingFunction
Transform a given value using the scaling function.

Specified by:
getScaled in interface ScalingFunction
Parameters:
value - Original value
Returns:
Scaled value

Release 0.4.0 (2011-09-20_1324)