Agglomerative hierarchical single linkage clustering.
Starting with each object being assigned to its own cluster clusters are iteratively merged. Here the clusters are merged whose elements have minimum distance, i.e. the clusters A and B that obtain
are merged.
cf e.g. http://en.wikipedia.org/wiki/Data_clustering
Definition at line 35 of file Hierarchical.h.
Public Member Functions | |
CHierarchical () | |
CHierarchical (int32_t merges, CDistance *d) | |
virtual | ~CHierarchical () |
virtual EClassifierType | get_classifier_type () |
virtual bool | train () |
virtual bool | load (FILE *srcfile) |
virtual bool | save (FILE *dstfile) |
void | set_merges (int32_t m) |
int32_t | get_merges () |
void | get_assignment (int32_t *&assign, int32_t &num) |
void | get_merge_distance (float64_t *&dist, int32_t &num) |
void | get_merge_distances (float64_t **dist, int32_t *num) |
void | get_pairs (int32_t *&tuples, int32_t &rows, int32_t &num) |
void | get_cluster_pairs (int32_t **tuples, int32_t *rows, int32_t *num) |
virtual const char * | get_name () const |
Protected Attributes | |
int32_t | merges |
the number of merges in hierarchical clustering | |
int32_t | dimensions |
number of dimensions | |
int32_t | assignment_size |
size of assignment table | |
int32_t * | assignment |
cluster assignment for the num_points | |
int32_t | table_size |
size of the below tables | |
int32_t * | pairs |
tuples of i/j | |
float64_t * | merge_distance |
distance at which pair i/j was added |
CHierarchical::CHierarchical | ( | ) |
default constructor
Definition at line 32 of file Hierarchical.cpp.
CHierarchical::CHierarchical | ( | int32_t | merges, | |
CDistance * | d | |||
) |
constructor
merges | the merges | |
d | distance |
Definition at line 38 of file Hierarchical.cpp.
CHierarchical::~CHierarchical | ( | ) | [virtual] |
Definition at line 45 of file Hierarchical.cpp.
void CHierarchical::get_assignment | ( | int32_t *& | assign, | |
int32_t & | num | |||
) |
get assignment
assign | current assignment is stored in here | |
num | number of assignments is stored in here |
Definition at line 99 of file Hierarchical.h.
virtual EClassifierType CHierarchical::get_classifier_type | ( | ) | [virtual] |
get classifier type
Reimplemented from CClassifier.
Definition at line 53 of file Hierarchical.h.
void CHierarchical::get_cluster_pairs | ( | int32_t ** | tuples, | |
int32_t * | rows, | |||
int32_t * | num | |||
) |
get cluster pairs (swig compatible)
tuples | current pairs are stored in here | |
rows | number of rows is stored in here | |
num | number of pairs is stored in here |
Definition at line 150 of file Hierarchical.h.
void CHierarchical::get_merge_distance | ( | float64_t *& | dist, | |
int32_t & | num | |||
) |
get merge distance
dist | current merge distance is stored in here | |
num | number of merge distances is stored in here |
Definition at line 110 of file Hierarchical.h.
void CHierarchical::get_merge_distances | ( | float64_t ** | dist, | |
int32_t * | num | |||
) |
get merge distances (swig compatible)
dist | current merge distances are stored in here | |
num | number of merge distances are stored in here |
Definition at line 121 of file Hierarchical.h.
int32_t CHierarchical::get_merges | ( | ) |
virtual const char* CHierarchical::get_name | ( | ) | const [virtual] |
void CHierarchical::get_pairs | ( | int32_t *& | tuples, | |
int32_t & | rows, | |||
int32_t & | num | |||
) |
get pairs
tuples | current pairs are stored in here | |
rows | number of rows is stored in here | |
num | number of pairs is stored in here |
Definition at line 137 of file Hierarchical.h.
bool CHierarchical::load | ( | FILE * | srcfile | ) | [virtual] |
load distance machine from file
srcfile | file to load from |
Reimplemented from CClassifier.
Definition at line 147 of file Hierarchical.cpp.
bool CHierarchical::save | ( | FILE * | dstfile | ) | [virtual] |
save distance machine to file
dstfile | file to save to |
Reimplemented from CClassifier.
Definition at line 152 of file Hierarchical.cpp.
void CHierarchical::set_merges | ( | int32_t | m | ) |
bool CHierarchical::train | ( | ) | [virtual] |
train distance machine
Reimplemented from CClassifier.
Definition at line 52 of file Hierarchical.cpp.
int32_t* CHierarchical::assignment [protected] |
cluster assignment for the num_points
Definition at line 176 of file Hierarchical.h.
int32_t CHierarchical::assignment_size [protected] |
size of assignment table
Definition at line 173 of file Hierarchical.h.
int32_t CHierarchical::dimensions [protected] |
number of dimensions
Definition at line 170 of file Hierarchical.h.
float64_t* CHierarchical::merge_distance [protected] |
distance at which pair i/j was added
Definition at line 185 of file Hierarchical.h.
int32_t CHierarchical::merges [protected] |
the number of merges in hierarchical clustering
Definition at line 167 of file Hierarchical.h.
int32_t* CHierarchical::pairs [protected] |
tuples of i/j
Definition at line 182 of file Hierarchical.h.
int32_t CHierarchical::table_size [protected] |
size of the below tables
Definition at line 179 of file Hierarchical.h.