
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.