Package elki.utilities.scaling.outlier
Class SigmoidOutlierScaling
- java.lang.Object
-
- elki.utilities.scaling.outlier.SigmoidOutlierScaling
-
- All Implemented Interfaces:
OutlierScaling
,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="https://doi.org/10.1109/ICDM.2006.43", bibkey="DBLP:conf/icdm/GaoT06") public class SigmoidOutlierScaling extends java.lang.Object implements OutlierScaling
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.0Reference:
J. Gao, P.-N. Tan
Converting Output Scores from Outlier Detection Algorithms into Probability Estimates
Proc. Sixth International Conference on Data Mining, 2006. ICDM'06.- Since:
- 0.4.0
- Author:
- Erich Schubert
-
-
Constructor Summary
Constructors Constructor Description SigmoidOutlierScaling()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 <A> double[]
MStepLevenbergMarquardt(double a, double b, long[] t, A array, NumberArrayAdapter<?,A> adapter)
M-Step using a modified Levenberg-Marquardt method.private double[]
MStepLevenbergMarquardt(double a, double b, ArrayDBIDs ids, long[] t, DoubleRelation scores)
M-Step using a modified Levenberg-Marquardt method.<A> void
prepare(A array, NumberArrayAdapter<?,A> adapter)
Prepare is called once for each data set, before getScaled() will be called.void
prepare(OutlierResult or)
Prepare is called once for each data set, before getScaled() will be called.
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
Afinal
double Afinal
Sigmoid parameter
-
Bfinal
double Bfinal
Sigmoid parameter
-
-
Method Detail
-
prepare
public void prepare(OutlierResult or)
Description copied from interface:OutlierScaling
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 outlier scores.- Specified by:
prepare
in interfaceOutlierScaling
- Parameters:
or
- Outlier result to use
-
prepare
public <A> void prepare(A array, NumberArrayAdapter<?,A> adapter)
Description copied from interface:OutlierScaling
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 score array. The method using a fullOutlierResult
is preferred, as it will allow access to the metadata.- Specified by:
prepare
in interfaceOutlierScaling
- Parameters:
array
- Data to processadapter
- Array adapter
-
MStepLevenbergMarquardt
private double[] MStepLevenbergMarquardt(double a, double b, ArrayDBIDs ids, long[] t, DoubleRelation 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 parameterb
- B parameterids
- Ids to processt
- Bitset containing the assignmentscores
- Scores- Returns:
- new values for A and B.
-
MStepLevenbergMarquardt
private <A> double[] MStepLevenbergMarquardt(double a, double b, long[] t, A array, NumberArrayAdapter<?,A> adapter)
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 parameterb
- B parametert
- Bitset containing the assignmentarray
- Score arrayadapter
- Array adapter- Returns:
- new values for A and B.
-
getMax
public double getMax()
Description copied from interface:ScalingFunction
Get maximum resulting value. May beDouble.NaN
orDouble.POSITIVE_INFINITY
.- Specified by:
getMax
in interfaceScalingFunction
- Returns:
- Maximum resulting value.
-
getMin
public double getMin()
Description copied from interface:ScalingFunction
Get minimum resulting value. May beDouble.NaN
orDouble.NEGATIVE_INFINITY
.- Specified by:
getMin
in interfaceScalingFunction
- 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 interfaceScalingFunction
- Parameters:
value
- Original value- Returns:
- Scaled value
-
-