
O - the type of DatabaseObjects handled by this Algorithm@Title(value="DWOF: Dynamic Window Outlier Factor") @Description(value="Algorithm to compute dynamic-window outlier factors in a database based on the neighborhood size parameter \'k\'") @Reference(authors="R. Momtaz, N. Mohssen, M. A. Gowayyed", title="DWOF: A Robust Density-Based Outlier Detection Approach", booktitle="Pattern Recognition and Image Analysis, Proc. 6th Iberian Conference, IbPRIA 2013, Funchal, Madeira, Portugal, 2013.", url="http://dx.doi.org/10.1007%2F978-3-642-38628-2_61") public class DWOF<O> extends AbstractDistanceBasedAlgorithm<O,OutlierResult> implements OutlierAlgorithm
 Algorithm to compute dynamic-window outlier factors in a database based on a
 specified parameter DWOF.Parameterizer.K_ID (-dwof.k).
 
 The parameter DWOF.Parameterizer.K_ID specifies the number of the
 neighbors to be considered during the calculation of the DWOF score.
 
 All the distance queries -KNN and Range- are determined using the parameter
 DistanceBasedAlgorithm.DISTANCE_FUNCTION_ID
 
 Reference: 
 Rana Momtaz, Nesma Mohssen and Mohammad A. Gowayyed: DWOF: A Robust
 Density-Based OutlierDetection Approach. 
 In: Pattern Recognition and Image Analysis , Proc. 6th Iberian Conference,
 IbPRIA 2013, Funchal, Madeira, Portugal, June 5-7, 2013.
 
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
DWOF.Parameterizer<O>
Parameterization class. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
private double | 
delta
The radii changing ratio 
 | 
protected int | 
k
Holds the value of  
DWOF.Parameterizer.K_ID i.e. | 
private static Logging | 
LOG
The logger for this class. 
 | 
DISTANCE_FUNCTION_ID| Constructor and Description | 
|---|
DWOF(DistanceFunction<? super O> distanceFunction,
    int k,
    double delta)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
private void | 
clusterData(DBIDs ids,
           RangeQuery<O> rnnQuery,
           WritableDoubleDataStore radii,
           WritableDataStore<ModifiableDBIDs> labels)
This method applies a density based clustering algorithm. 
 | 
TypeInformation[] | 
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query. 
 | 
protected Logging | 
getLogger()
Get the (STATIC) logger for this class. 
 | 
private void | 
initializeRadii(DBIDs ids,
               KNNQuery<O> knnq,
               DistanceQuery<O> distFunc,
               WritableDoubleDataStore radii)
This method prepares a container for the radii of the objects and
 initializes radii according to the equation:
 
 initialRadii of a certain object = (absoluteMinDist of all objects) *
 (avgDist of the object) / (minAvgDist of all objects) 
 | 
OutlierResult | 
run(Database database,
   Relation<O> relation)
Performs the Generalized DWOF_SCORE algorithm on the given database by
 calling all the other methods in the proper order. 
 | 
private int | 
updateSizes(DBIDs ids,
           WritableDataStore<ModifiableDBIDs> labels,
           WritableIntegerDataStore newSizes)
This method updates each object's cluster size after the clustering step. 
 | 
getDistanceFunctionmakeParameterDistanceFunction, runclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunprivate static final Logging LOG
protected int k
DWOF.Parameterizer.K_ID i.e. Number of neighbors to
 consider during the calculation of DWOF scores.private double delta
public DWOF(DistanceFunction<? super O> distanceFunction, int k, double delta)
distanceFunction - Distance function to use in queriesk - the value of kdelta - Radius increase factorpublic OutlierResult run(Database database, Relation<O> relation)
database - Database to queryrelation - Data to processprivate void initializeRadii(DBIDs ids, KNNQuery<O> knnq, DistanceQuery<O> distFunc, WritableDoubleDataStore radii)
ids - Database IDs to processdistFunc - Distance functionknnq - kNN search functionradii - WritableDoubleDataStore to store radiiprivate void clusterData(DBIDs ids, RangeQuery<O> rnnQuery, WritableDoubleDataStore radii, WritableDataStore<ModifiableDBIDs> labels)
ids - Database IDs to processrnnQuery - Data to processradii - Radii to cluster accordinglylabels - Label storage.private int updateSizes(DBIDs ids, WritableDataStore<ModifiableDBIDs> labels, WritableIntegerDataStore newSizes)
ids - Object IDs to processlabels - references for each object's clusternewSizes - the sizes container to be updatedpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<OutlierResult>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<OutlierResult>Copyright © 2015 ELKI Development Team, Lehr- und Forschungseinheit für Datenbanksysteme, Ludwig-Maximilians-Universität München. License information.