statcpp
C++17 Header-Only Statistics Library
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
clustering.hpp File Reference

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"
Include dependency graph for clustering.hpp:
This graph shows which files directly or indirectly include this file:

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_nodestatcpp::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.
 

Detailed Description

Clustering algorithms implementation.

Provides K-means, hierarchical clustering, silhouette score, and related algorithms.

Definition in file clustering.hpp.