dbscan 1.3.0 (2026-11-14)
Changes
- ANN: Added RAII model for ANN. ANN searches now release point storage, trees, and search buffers automatically when C++ exceptions or user interrupts unwind a call.
-
HDBSCAN
- New
mst_dist()(single-linkage hierarchy of the minimum spanning tree of adistobject as anhclustobject) andmst_mrdist()(MST of the mutual reachability graph computed directly from a data matrix andminPts). -
hdbscan()with a data matrix now builds the minimum spanning tree withmst_mrdist()avoiding creating a full distance matrix. -
extractFOSC()gained the argumentcluster_selection_epsilon(as inhdbscan()) and now also accepts the result ofhdbscan()asx. -
hdbscan()now recordsminPtsin itshccomponent.extractFOSC()uses it as the default forminPts.
- New
-
OPTICS
- optics(): The default
eps = Infuses an unlimited neighborhood and gives the complete reachability structure. It is computed exactly with a memory efficient Prim-style scan. - optics() now gives a warning if a finite
epsresults in undefined reachability distances in addition to the first one. - optics(): Ties in the reachability distance are now broken in favor of the point with the lower id (row number), following the current ELKI implementation. The
predecessorcomponent also is now consistent with ELKI 0.8.0. - extractXi(): The implementation was updated to follow the OPTICS Xi cluster extraction in ELKI 0.8.0 (Schubert and Gertz, 2018).
- optics(): The default
-
Plotting
- All plot functions now consistently pass on … to the underlying plot function from graphics.
-
plot()forreachabilityobjects gained the argumentshide_first(do not draw the undefined first reachability distance) andtype.plot()foropticsobjects gained the argumentcoland no longer has the unused argumentsclusterandpredecessor. -
kNNdistplot()gained the argumentstype,xlab,ylab, andkNNdist_param(a list passing additional arguments, e.g., k-d tree parameters, on tokNNdist())....now passes graphical parameters on toplot.default()(ormatplot()for several values ofk) instead of tokNN().
- Sanitizer: Added sanitizer runs (skipped on CRAN).
dbscan 1.2.7 (2026-10-04)
CRAN release: 2026-10-05
Changes
- Raised required R version to 4.3.0 to guarantee C++17 support.
- Parameter and return value validation is now consistent and strict.
Bugfixes
- clplot() now passes … on to plot() (by m-muecke)
- hdbscan() and predict() for hdbscan objects now always return integer cluster assignments (by m-muecke)
- OPTICS: Fixed calculation for epsilon when set to infinity.
- predict() for dbscan, optics, and hdbscan objects now works with single-column data (by m-muecke)
dbscan 1.2.1 (2025-01-23)
CRAN release: 2025-01-24
New Features
- HDBSCAN gained parameter cluster_selection_epsilon to implement clusters selected from Malzer and Baum (2020).
- Functions ncluster() and nnoise() were added.
- hullplot now() marks noise as x.
- Added clplot().
- pointdensity now also accepts a dist object as input and has the new type “gaussian” to calculate a Gaussian kernel estimate.
- Added the DBCV index.
dbscan 1.2-0 (2024-06-28)
CRAN release: 2024-06-28
New Features
- dbscan has now tidymodels tidiers (glance, tidy, augment).
- kNNdistplot can now plot a range of k/minPts values.
- added stats::nobs methods for the clusterings.
- kNN and frNN now contains the used distance metric.
Changes
- dbscan component dist was renamed to metric.
- Removed redundant sort in kNNdistplot (reported by Natasza Szczypien).
- Refactoring use anyNA(x) instead of any(is.na(x)) and many more (by m-muecke).
- Reorganized the C++ source code.
- README now uses bibtex.
- Tests use now testthat edition 3 (m-muecke).
dbscan 1.1-11 (2022-10-26)
CRAN release: 2022-10-27
New Features
- kNNdistplot gained parameter minPts.
- dbscan now retains information on distance method and border points.
- HDBSCAN now supports long vectors to work with larger distance matrices.
- conversion from dist to kNN and frNN is now more memory efficient. It does no longer coerce the dist object into a matrix of double the size, but extract the distances directly from the dist object.
- Better description of how predict uses only Euclidean distances and more error checking.
- The package now exports a new generic for as.dendrogram().
dbscan 1.1-10 (2022-01-14)
CRAN release: 2022-01-15
dbscan 1.1-7 (2021-04-21)
CRAN release: 2021-04-22
dbscan 1.1-6 (2021-02-24)
CRAN release: 2021-02-26
Improvements
- Improved speed of LOF for large ks (following suggestions by eduardokapp).
- kNN: results is now not sorted again for k-d tree queries which is much faster (by a factor of 10).
- ANN library: annclose() is now only called once when the package is unloaded. This is in preparation to support persistent k-d trees using external pointers.
- hdbscan lost parameter xdist.
dbscan 1.1-4 (2019-08-05)
CRAN release: 2019-08-05
dbscan 1.1-0 (2017-03-18)
CRAN release: 2017-03-19
New Features
- HDBSCAN was added.
- extractFOSC (optimal selection of clusters for HDBSCAN) was added.
- GLOSH outlier score was added.
- hullplot uses now filled polygons as the default.
- hullplot now used PCA if the data has more than 2 dimensions.
- Added NN superclass for kNN and frNN with plot and with adjacencylist().
- Added shared nearest neighbor clustering as sNNclust() and sNN to calculate the number of shared nearest neighbors.
- Added pointdensity function.
- Unsorted kNN and frNN can now be sorted using sort().
- kNN and frNN now also accept kNN and frNN objects, respectively. This can be used to create a new kNN (frNN) with a reduced k or eps.
- Datasets added: DS3 and moon.
Interface Changes
- Improved interface for dbscan() and optics(): … it now passed on to frNN.
- OPTICS clustering extraction methods are now called extractDBSCAN and extractXi.
- kNN and frNN are now objects with a print function.
- dbscan now also accepts a frNN object as input.
- jpclust and sNNclust now return a list instead of just the cluster assignments.
dbscan 1.0-0 (2017-02-02)
CRAN release: 2017-02-02
New Features
- The package has now a vignette.
- Jarvis-Patrick clustering is now available as jpclust().
- Improved interface for dbscan() and optics(): … is now passed on to frNN.
- OPTICS clustering extraction methods are now called extractDBSCAN and extractXi.
- hullplot uses now filled polygons as the default.
- hullplot now used PCA if the data has more than 2 dimensions.
- kNN and frNN are now objects with a print function.
- dbscan now also accepts a frNN object as input.
dbscan 0.9-8 (2016-08-05)
CRAN release: 2016-08-06
dbscan 0.9-7 (2016-04-14)
CRAN release: 2016-04-14
- OPTICSXi is now implemented (thanks to Matt Piekenbrock).
- DBSCAN now also accepts MinPts (with a capital M) to be compatible with the fpc version.
- DBSCAN objects are now also of class db scan_fast to avoid clashes with fpc.
- DBSCAN and OPTICS have now predict functions.
- Added test for unhandled NAs.
- Fixed LOF for more than k duplicate points (reported by Samneet Singh).
dbscan 0.9-6 (2015-12-14)
CRAN release: 2015-12-15
- OPTICS: fixed second bug reported by Di Pang
- all methods now also accept dist objects and have a search method “dist” which precomputes distances.
dbscan 0.9-5 (2015-10-04)
CRAN release: 2015-10-05
- OPTICS: fixed bug with first observation reported by Di Pang
- OPTICS: clusterings can now be extracted using optics_cut
dbscan 0.9-4 (2015-09-17)
CRAN release: 2015-09-17
- added tests (testthat).
- input data is now checked if it can safely be coerced into a numeric matrix (storage.mode double).
- fixed self matches in kNN and frNN (now returns the first NN correctly).
dbscan 0.9-2 (2015-08-11)
CRAN release: 2015-08-12
- Added kNN interface.
- Added frNN (fixed radius NN) interface.
- Added LOF.
- Added OPTICS.
- All algorithms check now for interrupt (CTRL-C/Esc).
- DBSCAN now returns a list instead of a numeric vector.