de.lmu.ifi.dbs.elki.algorithm.outlier.meta
Class FeatureBagging

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<OutlierResult>
      extended by de.lmu.ifi.dbs.elki.algorithm.outlier.meta.FeatureBagging
All Implemented Interfaces:
Algorithm, OutlierAlgorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="Feature Bagging for Outlier Detection")
@Reference(title="Feature Bagging for Outlier Detection",
           authors="A. Lazarevic, V. Kumar",
           booktitle="Proc. of the 11th ACM SIGKDD international conference on Knowledge discovery in data mining",
           url="http://dx.doi.org/10.1145/1081870.1081891")
public class FeatureBagging
extends AbstractAlgorithm<OutlierResult>
implements OutlierAlgorithm

A simple ensemble method called "Feature bagging" for outlier detection.

Since the proposed method is only sensible to run on multiple instances of the same algorithm (due to incompatible score ranges), we do not allow using arbitrary algorithms.

Reference:
A. Lazarevic, V. Kumar: Feature Bagging for Outlier Detection
In: Proc. of the 11th ACM SIGKDD international conference on Knowledge discovery in data mining


Nested Class Summary
static class FeatureBagging.Parameterizer
          Parameterization class.
 
Field Summary
protected  boolean breadth
          Cumulative sum or breadth first combinations
private  int k
          The parameters k for LOF.
private static Logging logger
          The logger for this class.
protected  int num
          Number of instances to use
private  Random RANDOM
          Random number generator for subspace choice
 
Constructor Summary
FeatureBagging(int k, int num, boolean breadth, Long seed)
          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.
private  BitSet randomSubspace(int alldim, int mindim, int maxdim)
          Choose a random subspace
 OutlierResult run(Relation<NumberVector<?,?>> relation)
          Run the algorithm on a data set.
 
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.


num

protected int num
Number of instances to use


breadth

protected boolean breadth
Cumulative sum or breadth first combinations


RANDOM

private Random RANDOM
Random number generator for subspace choice


k

private int k
The parameters k for LOF.

Constructor Detail

FeatureBagging

public FeatureBagging(int k,
                      int num,
                      boolean breadth,
                      Long seed)
Constructor.

Parameters:
k - k Parameter for LOF
num - Number of subspaces to use
breadth - Flag for breadth-first merging
Method Detail

run

public OutlierResult run(Relation<NumberVector<?,?>> relation)
Run the algorithm on a data set.

Parameters:
relation - Relation to use
Returns:
Outlier detection result

randomSubspace

private BitSet randomSubspace(int alldim,
                              int mindim,
                              int maxdim)
Choose a random subspace

Parameters:
alldim - Number of total dimensions
mindim - Minimum number to choose
maxdim - Maximum number to choose
Returns:
Subspace as bits.

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)