@Title(value="OPTICS Xi Cluster Extraction") @Reference(authors="Mihael Ankerst, Markus M. Breunig, Hans-Peter Kriegel, J\u00f6rg Sander",title="OPTICS: Ordering Points to Identify the Clustering Structure",booktitle="Proc. ACM SIGMOD Int. Conf. on Management of Data (SIGMOD \'99)",url="https://doi.org/10.1145/304181.304187",bibkey="DBLP:conf/sigmod/AnkerstBKS99") @Reference(authors="Erich Schubert, Michael Gertz",title="Improving the Cluster Structure Extracted from OPTICS Plots",booktitle="Proc. Lernen, Wissen, Daten, Analysen (LWDA 2018)",url="http://ceur-ws.org/Vol-2191/paper37.pdf",bibkey="DBLP:conf/lwa/SchubertG18") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.clustering.OPTICSXi") @Priority(value=200) public class OPTICSXi extends AbstractAlgorithm<Clustering<OPTICSModel>> implements ClusteringAlgorithm<Clustering<OPTICSModel>>
Note: this implementation includes an additional filter step that prunes elements from a steep up area that don't have the predecessor in the cluster. This removes a popular type of artifacts.
Reference:
Mihael Ankerst, Markus M. Breunig, Hans-Peter Kriegel, Jörg Sander
OPTICS: Ordering Points to Identify the Clustering Structure
Proc. ACM SIGMOD Int. Conf. on Management of Data (SIGMOD '99)
Filtering technique:
Erich Schubert, Michael Gertz
Improving the Cluster Structure Extracted from OPTICS Plots
Proc. Lernen, Wissen, Daten, Analysen (LWDA 2018)
| Modifier and Type | Class and Description |
|---|---|
static class |
OPTICSXi.Parameterizer
Parameterization class.
|
static class |
OPTICSXi.SteepArea
Data structure to represent a steep-down-area for the xi method.
|
static class |
OPTICSXi.SteepAreaResult
Result containing the chi-steep areas.
|
static class |
OPTICSXi.SteepDownArea
Data structure to represent a steep-down-area for the xi method.
|
private static class |
OPTICSXi.SteepScanPosition
Position when scanning for steep areas
|
static class |
OPTICSXi.SteepUpArea
Data structure to represent a steep-down-area for the xi method.
|
| Modifier and Type | Field and Description |
|---|---|
(package private) boolean |
keepsteep
Keep the steep areas, for visualization.
|
private static Logging |
LOG
The logger for this class.
|
(package private) boolean |
nocorrect
Disable the predecessor correction.
|
(package private) OPTICSTypeAlgorithm |
optics
The actual algorithm we use.
|
(package private) double |
xi
Xi parameter
|
ALGORITHM_ID| Constructor and Description |
|---|
OPTICSXi(OPTICSTypeAlgorithm optics,
double xi)
Constructor.
|
OPTICSXi(OPTICSTypeAlgorithm optics,
double xi,
boolean nocorrect,
boolean keepsteep)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private Clustering<OPTICSModel> |
extractClusters(ClusterOrder clusterOrderResult,
Relation<?> relation,
double ixi,
int minpts)
Extract clusters from a cluster order result.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
Clustering<OPTICSModel> |
run(Database database,
Relation<?> relation) |
private static void |
updateFilterSDASet(double mib,
java.util.List<OPTICSXi.SteepDownArea> sdaset,
double ixi)
Update the mib values of SteepDownAreas, and remove obsolete areas.
|
runclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunprivate static final Logging LOG
OPTICSTypeAlgorithm optics
double xi
boolean nocorrect
boolean keepsteep
public OPTICSXi(OPTICSTypeAlgorithm optics, double xi, boolean nocorrect, boolean keepsteep)
optics - OPTICS algorithm to usexi - Xi valuenocorrect - Disable the predecessor correctionkeepsteep - Keep the steep areas for visualizationpublic OPTICSXi(OPTICSTypeAlgorithm optics, double xi)
optics - OPTICS algorithm to usexi - Xi valuepublic Clustering<OPTICSModel> run(Database database, Relation<?> relation)
private Clustering<OPTICSModel> extractClusters(ClusterOrder clusterOrderResult, Relation<?> relation, double ixi, int minpts)
clusterOrderResult - cluster order resultrelation - Relationixi - Parameter 1 - Ximinpts - Parameter minPtsprivate static void updateFilterSDASet(double mib,
java.util.List<OPTICSXi.SteepDownArea> sdaset,
double ixi)
mib - Maximum in-between valuesdaset - Set of steep down areas.public TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<Clustering<OPTICSModel>>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<Clustering<OPTICSModel>>Copyright © 2019 ELKI Development Team. License information.