KNN
This page describes a module in the upcoming version 1.2 of Ikaros and may not be correct for version 1.1
The KNN module implements a K Nearest Neighbors System. It has inputs for simultaneous learning and choosing of neighbors. The underlying data structure used is a KD-Tree.
Example XML definition
A simple example
<module
class = "KNN"
name = "KNN"
/>
Parameters
| Name | Description | Type | Default |
|---|---|---|---|
| class | The class name for the module; must be "KNN". | string | |
| name | The name of this instance of the module. | string | |
| k | How many neighbors to look for. | int | 5 |
| distance_type | Type of distance calculation. Euclidian is the usual sqrt(sum of squares), manhattan is just the addition of differences in all the dimensions. | list | euclidian |
| auto_rebuild | Automatically check if some sub tree can be balanced after an insert. | bool | true |
| minimum_tree_size_for_rebuild | Will not auto rebuild smaller sub trees than this. | int | 100 |
| unbalanced_tree_size_ratio_limit | Defines what is considered unbalanced. The ratio means ratio between the sizes of the left and right sub trees of a tree. | float | 2.4 |
| verbose | Print some info. | bool | false |
| check_for_clones | Dont insert an example if it is already in the tree. | bool | false |
Module Connections
Inputs
| Name | Description |
|---|---|
| INPUT | The coordinates of a target to look for neighbors for. |
| T_INPUT | Training input. The coordinates of an example to learn/store. |
| T_OUTPUT | Training output. The class values of the example to learn/store |
| LEARN | Learns from T_INPUT/T_OUTPUT if this is > 0. |
Outputs
| Name | Description |
|---|---|
| INPUT_TABLE | A matrix of the coordinates of the neighbors that were found around the last INPUT. |
| OUTPUT_TABLE | A matrix of the class values of the neighbors that were found around the last INPUT. |
| DISTANCE_TABLE | An array of the distances of the neighbors that were found around the last INPUT. NOTE: When it was not possible to find K neighbors (the tree was smaller than size K nodes) the distances for the neighbors that were not found is set to -1.0 |
Author
Alexander Kolodziej
LUCS
Files
KNN.h
KNN.cc
KD_Tree.ccc
KD_Tree.h
KNN.ikc