Documentation>C API
hikmeans.h File Reference

Hierarchical integer K-Means clustering. More...

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

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. More...
 
void vl_hikm_delete (VlHIKMTree *f)
 Delete HIKM tree. More...
 
Retrieve data and parameters
vl_size vl_hikm_get_ndims (VlHIKMTree const *f)
 Get data dimensionality. More...
 
vl_size vl_hikm_get_K (VlHIKMTree const *f)
 Get K. More...
 
vl_size vl_hikm_get_depth (VlHIKMTree const *f)
 Get depth. More...
 
int vl_hikm_get_verbosity (VlHIKMTree const *f)
 Get verbosity level. More...
 
vl_size vl_hikm_get_max_niters (VlHIKMTree const *f)
 Get maximum number of iterations. More...
 
VlHIKMNode const * vl_hikm_get_root (VlHIKMTree const *f)
 Get maximum number of iterations. More...
 
Set parameters
void vl_hikm_set_verbosity (VlHIKMTree *f, int verb)
 Set verbosity level. More...
 
void vl_hikm_set_max_niters (VlHIKMTree *f, int max_niters)
 Set maximum number of iterations. More...
 
Process data
void vl_hikm_init (VlHIKMTree *f, vl_size M, vl_size K, vl_size depth)
 Initialize HIKM tree. More...
 
void vl_hikm_train (VlHIKMTree *f, vl_uint8 const *data, vl_size N)
 Train HIKM tree. More...
 
void vl_hikm_push (VlHIKMTree *f, vl_uint32 *asgn, vl_uint8 const *data, vl_size N)
 Project data down HIKM tree. More...
 

Detailed Description

Hierarchical Integer K-Means Clustering.

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

Create a tree with vl_hikm_new() and delete it with vl_hikm_delete(). Use vl_hikm_train() to build the tree from training data and vl_hikm_push() to project new data down a HIKM tree.

HIKM tree

The HIKM tree is represented by a VlHIKMTree structure, which contains a tree composed of VlHIKMNode. Each node is an integer K-means filter which partitions the data into K clusters.

Author
Brian Fulkerson

Function Documentation

◆ vl_hikm_delete()

void vl_hikm_delete ( VlHIKMTree f)
Parameters
fHIKM tree.

◆ vl_hikm_get_depth()

vl_size vl_hikm_get_depth ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
depth.

◆ vl_hikm_get_K()

vl_size vl_hikm_get_K ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
K.

◆ vl_hikm_get_max_niters()

vl_size vl_hikm_get_max_niters ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
maximum number of iterations.

◆ vl_hikm_get_ndims()

vl_size vl_hikm_get_ndims ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
data dimensionality.

◆ vl_hikm_get_root()

VlHIKMNode const* vl_hikm_get_root ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
maximum number of iterations.

◆ vl_hikm_get_verbosity()

int vl_hikm_get_verbosity ( VlHIKMTree const *  f)
Parameters
fHIKM tree.
Returns
verbosity level.

◆ vl_hikm_init()

void vl_hikm_init ( VlHIKMTree f,
vl_size  M,
vl_size  K,
vl_size  depth 
)
Parameters
fHIKM tree.
MData dimensionality.
KNumber of clusters per node.
depthTree depth.
Returns
a new HIKM tree representing the clustering.
Remarks
depth cannot be smaller than 1.

◆ vl_hikm_new()

VlHIKMTree* vl_hikm_new ( int  method)
Parameters
methodclustering method.
Returns
new HIKM tree.

◆ vl_hikm_push()

void vl_hikm_push ( VlHIKMTree f,
vl_uint32 asgn,
vl_uint8 const *  data,
vl_size  N 
)
Parameters
fHIKM tree.
asgnPath down the tree (out).
dataData to project.
NNumber of data.

The function writes to asgn the path of the data data down the HIKM tree f. The parameter 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_hikm_set_max_niters()

void vl_hikm_set_max_niters ( VlHIKMTree f,
int  max_niters 
)
Parameters
fHIKM tree.
max_nitersmaximum number of iterations.

◆ vl_hikm_set_verbosity()

void vl_hikm_set_verbosity ( VlHIKMTree f,
int  verb 
)
Parameters
fHIKM tree.
verbverbosity level.

◆ vl_hikm_train()

void vl_hikm_train ( VlHIKMTree f,
vl_uint8 const *  data,
vl_size  N 
)
Parameters
fHIKM tree.
dataData to cluster.
NNumber of data.