de.lmu.ifi.dbs.elki.algorithm.outlier.spatial
Class SOF<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.SOF<N,O,D>
Type Parameters:
N - Neighborhood object type
O - Attribute object type
D - Distance type
All Implemented Interfaces:
Algorithm, OutlierAlgorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="Spatial Outlier Factor")
@Reference(authors="Huang, T., Qin, X.",
           title="Detecting outliers in spatial database",
           booktitle="Proc. 3rd International Conference on Image and Graphics",
           url="http://dx.doi.org/10.1109/ICIG.2004.53")
public class SOF<N,O,D extends NumberDistance<D,?>>
extends AbstractDistanceBasedSpatialOutlier<N,O,D>

The Spatial Outlier Factor (SOF) is a spatial LOF variation. Since the "reachability distance" of LOF cannot be used canonically in the bichromatic case, this part of LOF is dropped and the exact distance is used instead.

Huang, T., Qin, X.
Detecting outliers in spatial database.
In: Proc. 3rd International Conference on Image and Graphics, Hong Kong, China.

A LOF variation simplified with reachDist(o,p) == dist(o,p).


Nested Class Summary
static class SOF.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
SOF(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)
          The main run method
 
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

SOF

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

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

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

run

public OutlierResult run(Database database,
                         Relation<N> spatial,
                         Relation<O> relation)
The main run method

Parameters:
database - Database to use (actually unused)
spatial - Relation for neighborhood
relation - Attributes to evaluate
Returns:
Outlier result

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)