summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/clustering/spectral_cluster_abstract.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /ml/dlib/dlib/clustering/spectral_cluster_abstract.h
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz
netdata-58daab21cd043e1dc37024a7f99b396788372918.zip
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ml/dlib/dlib/clustering/spectral_cluster_abstract.h')
-rw-r--r--ml/dlib/dlib/clustering/spectral_cluster_abstract.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/ml/dlib/dlib/clustering/spectral_cluster_abstract.h b/ml/dlib/dlib/clustering/spectral_cluster_abstract.h
new file mode 100644
index 000000000..880ad80af
--- /dev/null
+++ b/ml/dlib/dlib/clustering/spectral_cluster_abstract.h
@@ -0,0 +1,43 @@
+// Copyright (C) 2015 Davis E. King (davis@dlib.net)
+// License: Boost Software License See LICENSE.txt for the full license.
+#undef DLIB_SPECTRAL_CLUSTEr_ABSTRACT_H_
+#ifdef DLIB_SPECTRAL_CLUSTEr_ABSTRACT_H_
+
+#include <vector>
+
+namespace dlib
+{
+ template <
+ typename kernel_type,
+ typename vector_type
+ >
+ std::vector<unsigned long> spectral_cluster (
+ const kernel_type& k,
+ const vector_type& samples,
+ const unsigned long num_clusters
+ );
+ /*!
+ requires
+ - samples must be something with an interface compatible with std::vector.
+ - The following expression must evaluate to a double or float:
+ k(samples[i], samples[j])
+ - num_clusters > 0
+ ensures
+ - Performs the spectral clustering algorithm described in the paper:
+ On spectral clustering: Analysis and an algorithm by Ng, Jordan, and Weiss.
+ and returns the results.
+ - This function clusters the input data samples into num_clusters clusters and
+ returns a vector that indicates which cluster each sample falls into. In
+ particular, we return an array A such that:
+ - A.size() == samples.size()
+ - A[i] == the cluster assignment of samples[i].
+ - for all valid i: 0 <= A[i] < num_clusters
+ - The "similarity" of samples[i] with samples[j] is given by
+ k(samples[i],samples[j]). This means that k() should output a number >= 0
+ and the number should be larger for samples that are more similar.
+ !*/
+}
+
+#endif // DLIB_SPECTRAL_CLUSTEr_ABSTRACT_H_
+
+