hikmeans.h File Reference

Hierachical integer K-Means clustering. More...

#include "generic.h"
#include "ikmeans.h"

Go to the source code of this file.

Data Structures

struct  _VlHIKMNode
 HIKM tree node. More...
struct  _VlHIKMTree
 HIKM tree. More...

Functions

Create and destroy
VlHIKMTreevl_hikm_new (int method)
 New HIKM tree.
void vl_hikm_delete (VlHIKMTree *f)
 Delete HIKM tree.
Retrieve data and parameters
VL_INLINE int vl_hikm_get_ndims (VlHIKMTree const *f)
 Get data dimensionality.
VL_INLINE int vl_hikm_get_K (VlHIKMTree const *f)
 Get K.
VL_INLINE int vl_hikm_get_depth (VlHIKMTree const *f)
 Get depth.
VL_INLINE int vl_hikm_get_verbosity (VlHIKMTree const *f)
 Get verbosity level.
VL_INLINE int vl_hikm_get_max_niters (VlHIKMTree const *f)
 Get maximum number of iterations.
VL_INLINE VlHIKMNode const * vl_hikm_get_root (VlHIKMTree const *f)
 Get maximum number of iterations.
Set parameters
VL_INLINE void vl_hikm_set_verbosity (VlHIKMTree *f, int verb)
 Set verbosity level.
VL_INLINE void vl_hikm_set_max_niters (VlHIKMTree *f, int max_niters)
 Set maximum number of iterations.
Process data
void vl_hikm_init (VlHIKMTree *f, int M, int K, int depth)
 Initialize HIKM tree.
void vl_hikm_train (VlHIKMTree *f, vl_ikm_data const *data, int N)
 Train HIKM tree.
void vl_hikm_push (VlHIKMTree *f, vl_uint *asgn, vl_ikm_data const *data, int N)
 Project data down HIKM tree.


Detailed Description

Heirachical Integer K-Means Clustering.

Hierarichial integer K-Means clustering (HIKM) is a simple hierarchical version of integer K-Means (IKM). The algorithm recusrively apply integer K-means to create more refined partitions of the data.

Use the vl_hikm() function to partition the data and create a HIKM tree (and vl_hikm_delete() to dispose of it). Use vl_hikm_push() to project new data down a HIKM tree.

HIKM tree

The HIKM tree is a simple structure, represented by VlHIKMTree and VlHIKMNode. The tree as a

Author:
Brian Fulkerson

Function Documentation

void vl_hikm_delete ( VlHIKMTree f  ) 

Parameters:
f HIKM tree.

VL_INLINE int vl_hikm_get_depth ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
depth.

VL_INLINE int vl_hikm_get_K ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
K.

VL_INLINE int vl_hikm_get_max_niters ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
maximum number of iterations.

VL_INLINE int vl_hikm_get_ndims ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
data dimensionality.

VL_INLINE VlHIKMNode const * vl_hikm_get_root ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
maximum number of iterations.

VL_INLINE int vl_hikm_get_verbosity ( VlHIKMTree const *  f  ) 

Parameters:
f HIKM tree.
Returns:
verbosity level.

void vl_hikm_init ( VlHIKMTree f,
int  M,
int  K,
int  depth 
)

Parameters:
f HIKM tree.
M Data dimensionality.
K Number of clusters per node.
depth Tree depth.
Remarks:
depth cannot be smaller than 1.
Returns:
a new HIKM tree representing the clustering.

VlHIKMTree* vl_hikm_new ( int  method  ) 

Parameters:
method clustering method.
Returns:
new HIKM tree.

void vl_hikm_push ( VlHIKMTree f,
vl_uint asgn,
vl_ikm_data const *  data,
int  N 
)

Parameters:
f HIKM tree.
asgn Path down the tree (out).
data Data to project.
N Number of data.
The function writes to asgn the path of the data data down the HIKM tree f. The paramter asgn must point to an array of M by N elements, where M is the depth of the HIKM tree and N is the number of data point to process.

VL_INLINE void vl_hikm_set_max_niters ( VlHIKMTree f,
int  max_niters 
)

Parameters:
f HIKM tree.
max_niters maximum number of iterations.

VL_INLINE void vl_hikm_set_verbosity ( VlHIKMTree f,
int  verb 
)

Parameters:
f HIKM tree.
verb verbosity level.

void vl_hikm_train ( VlHIKMTree f,
vl_ikm_data const *  data,
int  N 
)

Parameters:
f HIKM tree.
data Data to cluster.
N Number of data.


Generated on Mon Jan 21 17:43:32 2008 for vlfeat by  doxygen 1.5.4