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 37 of file Hierarchical.h.
Public Member Functions | |
CHierarchical () | |
CHierarchical (int32_t merges, CDistance *d) | |
virtual | ~CHierarchical () |
virtual EClassifierType | get_classifier_type () |
virtual bool | train (CFeatures *data=NULL) |
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 CLabels * | classify () |
virtual CLabels * | classify (CFeatures *data) |
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 | ( | ) |
default constructor
Definition at line 34 of file Hierarchical.cpp.
CHierarchical | ( | int32_t | merges, | |
CDistance * | d | |||
) |
constructor
merges | the merges | |
d | distance |
Definition at line 40 of file Hierarchical.cpp.
~CHierarchical | ( | ) | [virtual] |
Definition at line 47 of file Hierarchical.cpp.
virtual CLabels* classify | ( | ) | [virtual] |
classify objects using the currently set features
Implements CDistanceMachine.
Definition at line 172 of file Hierarchical.h.
classify objects
data | (test)data to be classified |
Implements CDistanceMachine.
Definition at line 183 of file Hierarchical.h.
void 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 105 of file Hierarchical.h.
virtual EClassifierType get_classifier_type | ( | ) | [virtual] |
get classifier type
Reimplemented from CClassifier.
Definition at line 55 of file Hierarchical.h.
void 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 156 of file Hierarchical.h.
void 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 116 of file Hierarchical.h.
void 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 127 of file Hierarchical.h.
int32_t get_merges | ( | ) |
virtual const char* get_name | ( | void | ) | const [virtual] |
Reimplemented from CDistanceMachine.
Definition at line 190 of file Hierarchical.h.
void 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 143 of file Hierarchical.h.
bool load | ( | FILE * | srcfile | ) | [virtual] |
load distance machine from file
srcfile | file to load from |
Reimplemented from CClassifier.
Definition at line 153 of file Hierarchical.cpp.
bool save | ( | FILE * | dstfile | ) | [virtual] |
save distance machine to file
dstfile | file to save to |
Reimplemented from CClassifier.
Definition at line 160 of file Hierarchical.cpp.
void set_merges | ( | int32_t | m | ) |
bool train | ( | CFeatures * | data = NULL |
) | [virtual] |
estimate hierarchical clustering
data | training data (parameter can be avoided if distance or kernel-based classifiers are used and distance/kernels are initialized with train data) |
Reimplemented from CClassifier.
Definition at line 54 of file Hierarchical.cpp.
int32_t* assignment [protected] |
cluster assignment for the num_points
Definition at line 203 of file Hierarchical.h.
int32_t assignment_size [protected] |
size of assignment table
Definition at line 200 of file Hierarchical.h.
int32_t dimensions [protected] |
number of dimensions
Definition at line 197 of file Hierarchical.h.
float64_t* merge_distance [protected] |
distance at which pair i/j was added
Definition at line 212 of file Hierarchical.h.
int32_t merges [protected] |
the number of merges in hierarchical clustering
Definition at line 194 of file Hierarchical.h.
int32_t* pairs [protected] |
tuples of i/j
Definition at line 209 of file Hierarchical.h.
int32_t table_size [protected] |
size of the below tables
Definition at line 206 of file Hierarchical.h.