de.lmu.ifi.dbs.elki.algorithm.outlier.spatial
Class SLOM<N,O,D extends NumberDistance<D,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<OutlierResult>
      extended by de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractNeighborhoodOutlier<N>
          extended by de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractDistanceBasedSpatialOutlier<N,O,D>
              extended by de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.SLOM<N,O,D>
Type Parameters:
N - the type the spatial neighborhood is defined over
O - the type of objects handled by the algorithm
D - the type of Distance used for non spatial attributes
All Implemented Interfaces:
Algorithm, OutlierAlgorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="SLOM: a new measure for local spatial outliers")
@Description(value="Spatial local outlier measure (SLOM), which captures the local behaviour of datum in their spatial neighbourhood")
@Reference(authors="Sanjay Chawla and Pei Sun",
           title="SLOM: a new measure for local spatial outliers",
           booktitle="Knowledge and Information Systems 2005",
           url="http://rp-www.cs.usyd.edu.au/~chawlarg/papers/KAIS_online.pdf")
public class SLOM<N,O,D extends NumberDistance<D,?>>
extends AbstractDistanceBasedSpatialOutlier<N,O,D>

SLOM: a new measure for local spatial outliers

Reference:
Sanjay Chawla and Pei Sun
SLOM: a new measure for local spatial outliers
in Knowledge and Information Systems 2005

This implementation works around some corner cases in SLOM, in particular when an object has none or a single neighbor only (albeit the results will still not be too useful then), which will result in divisions by zero.


Nested Class Summary
static class SLOM.Parameterizer<N,O,D extends NumberDistance<D,?>>
          Parameterization class.
 
Field Summary
private static Logging logger
          The logger for this class.
 
Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractDistanceBasedSpatialOutlier
NON_SPATIAL_DISTANCE_FUNCTION_ID
 
Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractNeighborhoodOutlier
NEIGHBORHOOD_ID
 
Constructor Summary
SLOM(NeighborSetPredicate.Factory<N> npred, PrimitiveDistanceFunction<O,D> nonSpatialDistanceFunction)
          Constructor.
 
Method Summary
 TypeInformation[] getInputTypeRestriction()
          Get the input type restriction used for negotiating the data query.
protected  Logging getLogger()
          Get the (STATIC) logger for this class.
 OutlierResult run(Database database, Relation<N> spatial, Relation<O> relation)
           
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractDistanceBasedSpatialOutlier
getNonSpatialDistanceFunction
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.spatial.AbstractNeighborhoodOutlier
getNeighborSetPredicateFactory
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
makeParameterDistanceFunction, run
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.outlier.OutlierAlgorithm
run
 

Field Detail

logger

private static final Logging logger
The logger for this class.

Constructor Detail

SLOM

public SLOM(NeighborSetPredicate.Factory<N> npred,
            PrimitiveDistanceFunction<O,D> nonSpatialDistanceFunction)
Constructor.

Parameters:
npred - Neighborhood predicate
nonSpatialDistanceFunction - Distance function to use on the non-spatial attributes
Method Detail

run

public OutlierResult run(Database database,
                         Relation<N> spatial,
                         Relation<O> relation)
Parameters:
database - Database to process
spatial - Spatial Relation to use.
relation - Relation to use.
Returns:
Outlier detection result

getLogger

protected Logging getLogger()
Description copied from class: AbstractAlgorithm
Get the (STATIC) logger for this class.

Specified by:
getLogger in class AbstractAlgorithm<OutlierResult>
Returns:
the static logger

getInputTypeRestriction

public TypeInformation[] getInputTypeRestriction()
Description copied from class: AbstractAlgorithm
Get the input type restriction used for negotiating the data query.

Specified by:
getInputTypeRestriction in interface Algorithm
Specified by:
getInputTypeRestriction in class AbstractAlgorithm<OutlierResult>
Returns:
Type restriction

Release 0.4.0 (2011-09-20_1324)