- Main Page
- Data Structures
- Files
- Related Pages

# 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
VlHIKMTree * | vl_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.