V
- the type of NumberVector handled by this Algorithmpublic abstract class AbstractProjectedDBSCAN<R extends Clustering<Model>,V extends NumberVector<V,?>> extends AbstractAlgorithm<R> implements ClusteringAlgorithm<R>
Modifier and Type | Class and Description |
---|---|
static class |
AbstractProjectedDBSCAN.Parameterizer<V extends NumberVector<V,?>,D extends Distance<D>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private LocallyWeightedDistanceFunction<V> |
distanceFunction
Holds the instance of the distance function specified by
INNER_DISTANCE_FUNCTION_ID . |
protected DoubleDistance |
epsilon
Holds the value of
EPSILON_ID . |
static OptionID |
EPSILON_ID
Parameter to specify the maximum radius of the neighborhood to be
considered, must be suitable to
LocallyWeightedDistanceFunction . |
static OptionID |
INNER_DISTANCE_FUNCTION_ID
Parameter distance function
|
private int |
lambda
Holds the value of
LAMBDA_ID . |
static OptionID |
LAMBDA_ID
Parameter to specify the intrinsic dimensionality of the clusters to find,
must be an integer greater than 0.
|
protected int |
minpts
Holds the value of
MINPTS_ID . |
static OptionID |
MINPTS_ID
Parameter to specify the threshold for minimum number of points in the
epsilon-neighborhood of a point, must be an integer greater than 0.
|
private ModifiableDBIDs |
noise
Holds a set of noise.
|
static OptionID |
OUTER_DISTANCE_FUNCTION_ID
Parameter to specify the distance function to determine the distance
between database objects, must extend
LocallyWeightedDistanceFunction
. |
private ModifiableDBIDs |
processedIDs
Holds a set of processed ids.
|
private List<ModifiableDBIDs> |
resultList
Holds a list of clusters found.
|
Constructor and Description |
---|
AbstractProjectedDBSCAN(DoubleDistance epsilon,
int minpts,
LocallyWeightedDistanceFunction<V> distanceFunction,
int lambda)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
expandCluster(LocallyWeightedDistanceFunction.Instance<V> distFunc,
RangeQuery<V,DoubleDistance> rangeQuery,
DBID startObjectID,
FiniteProgress objprog,
IndefiniteProgress clusprog)
ExpandCluster function of DBSCAN.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
abstract String |
getLongResultName()
Return the long result name.
|
abstract String |
getShortResultName()
Return the short result name.
|
Clustering<Model> |
run(Database database,
Relation<V> relation) |
getLogger, makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
public static final OptionID OUTER_DISTANCE_FUNCTION_ID
LocallyWeightedDistanceFunction
.
Key: -projdbscan.distancefunction
Default value:
LocallyWeightedDistanceFunction
public static final OptionID INNER_DISTANCE_FUNCTION_ID
public static final OptionID EPSILON_ID
LocallyWeightedDistanceFunction
.
Key: -projdbscan.epsilon
public static final OptionID LAMBDA_ID
Key: -projdbscan.lambda
public static final OptionID MINPTS_ID
Key: -projdbscan.minpts
private LocallyWeightedDistanceFunction<V extends NumberVector<V,?>> distanceFunction
INNER_DISTANCE_FUNCTION_ID
.protected DoubleDistance epsilon
EPSILON_ID
.private int lambda
LAMBDA_ID
.protected int minpts
MINPTS_ID
.private List<ModifiableDBIDs> resultList
private ModifiableDBIDs noise
private ModifiableDBIDs processedIDs
public AbstractProjectedDBSCAN(DoubleDistance epsilon, int minpts, LocallyWeightedDistanceFunction<V> distanceFunction, int lambda)
epsilon
- Epsilonminpts
- MinPts parameterdistanceFunction
- Outer distance functionlambda
- Lambda valuepublic Clustering<Model> run(Database database, Relation<V> relation) throws IllegalStateException
IllegalStateException
public abstract String getLongResultName()
public abstract String getShortResultName()
protected void expandCluster(LocallyWeightedDistanceFunction.Instance<V> distFunc, RangeQuery<V,DoubleDistance> rangeQuery, DBID startObjectID, FiniteProgress objprog, IndefiniteProgress clusprog)
distFunc
- Distance query to userangeQuery
- Range querystartObjectID
- the object id of the database object to start the
expansion withobjprog
- the progress object for logging the current statuspublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<R extends Clustering<Model>>