Class: Rumale::Clustering::SNN
- Defined in:
- lib/rumale/clustering/snn.rb
Overview
SNN is a class that implements Shared Nearest Neighbor cluster analysis. The SNN method is a variation of DBSCAN that uses similarity based on k-nearest neighbors as a metric.
Reference
-
Ertoz, M. Steinbach, and V. Kumar, “Finding Clusters of Different Sizes, Shapes, and Densities in Noisy, High Dimensional Data,” Proc. SDM’03, pp. 47–58, 2003.
-
-
M E. Houle, H-P. Kriegel, P. Kroger, E. Schubert, and A. Zimek, “Can Shared-Neighbor Distances Defeat the Curse of Dimensionality?,” Proc. SSDBM’10, pp. 482–500, 2010.
Instance Attribute Summary
Attributes inherited from DBSCAN
Attributes included from Base::BaseEstimator
Instance Method Summary collapse
-
#fit(x) ⇒ SNN
Analysis clusters with given training data.
-
#fit_predict(x) ⇒ Numo::Int32
Analysis clusters and assign samples to clusters.
-
#initialize(n_neighbors: 10, eps: 5, min_samples: 5, metric: 'euclidean') ⇒ SNN
constructor
Create a new cluster analyzer with Shared Neareset Neighbor method.
Methods inherited from DBSCAN
Methods included from Base::ClusterAnalyzer
Constructor Details
#initialize(n_neighbors: 10, eps: 5, min_samples: 5, metric: 'euclidean') ⇒ SNN
Create a new cluster analyzer with Shared Neareset Neighbor method.
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rumale/clustering/snn.rb', line 27 def initialize(n_neighbors: 10, eps: 5, min_samples: 5, metric: 'euclidean') check_params_integer(n_neighbors: n_neighbors, min_samples: min_samples) check_params_string(metric: metric) @params = {} @params[:n_neighbors] = n_neighbors @params[:eps] = eps @params[:min_samples] = min_samples @params[:metric] = metric == 'precomputed' ? 'precomputed' : 'euclidean' @core_sample_ids = nil @labels = nil end |
Instance Method Details
#fit(x) ⇒ SNN
Analysis clusters with given training data.
45 46 47 |
# File 'lib/rumale/clustering/snn.rb', line 45 def fit(x, _y = nil) super end |
#fit_predict(x) ⇒ Numo::Int32
Analysis clusters and assign samples to clusters.
54 55 56 |
# File 'lib/rumale/clustering/snn.rb', line 54 def fit_predict(x) super end |