|
statcpp
C++17 Header-Only Statistics Library
|
Clustering algorithms implementation. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <limits>#include <map>#include <numeric>#include <random>#include <stdexcept>#include <utility>#include <vector>#include "statcpp/random_engine.hpp"Go to the source code of this file.
Classes | |
| struct | statcpp::kmeans_result |
| K-means clustering result. More... | |
| struct | statcpp::dendrogram_node |
| Dendrogram node. More... | |
Namespaces | |
| namespace | statcpp |
Enumerations | |
| enum class | statcpp::linkage_type { statcpp::single , statcpp::complete , statcpp::average , statcpp::ward } |
| Linkage types. More... | |
Functions | |
| double | statcpp::euclidean_distance (const std::vector< double > &a, const std::vector< double > &b) |
| Euclidean distance. | |
| double | statcpp::manhattan_distance (const std::vector< double > &a, const std::vector< double > &b) |
| Manhattan distance. | |
| std::vector< std::vector< double > > | statcpp::kmeans_plusplus_init (const std::vector< std::vector< double > > &data, std::size_t k) |
| K-means++ initialization. | |
| kmeans_result | statcpp::kmeans (const std::vector< std::vector< double > > &data, std::size_t k, std::size_t max_iter=100, double tol=1e-6) |
| K-means clustering. | |
| std::vector< dendrogram_node > | statcpp::hierarchical_clustering (const std::vector< std::vector< double > > &data, linkage_type linkage=linkage_type::single) |
| Hierarchical clustering. | |
| std::vector< std::size_t > | statcpp::cut_dendrogram (const std::vector< dendrogram_node > &dendrogram, std::size_t n_data, std::size_t k) |
| Extract k clusters from dendrogram. | |
| double | statcpp::silhouette_score (const std::vector< std::vector< double > > &data, const std::vector< std::size_t > &labels) |
| Calculate silhouette score. | |
Clustering algorithms implementation.
Provides K-means, hierarchical clustering, silhouette score, and related algorithms.
Definition in file clustering.hpp.