NearestNeighbour is a method of looking up best matches.
Section Links : Construction , Execution , Examples , FAQ , Related , and References
Construction
Create a NearestNeighbour
Create a default NearestNeighbour calculator from the constructor like so:
var nearestNeighbour = require('nearestneighbour')()
Set the configuration options like so:
var config = {
objects : [ object1 , object2 , object3 ],
number : 2
}
# in two steps
var nearestNeighbour = require('nearestneighbour')()
nearestNeighbour.config(config)
# or as a one liner
var nearestNeighbour = require('nearestneighbour')(config)
Update Objects
You can change or add to the list of objects like so
var nearestNeighbour = require('nearestneighbour')(config)
nearestNeighbour.setObjects( [ object1 , object2 , object3 ] )
nearestNeighbour.add( object4 )
Execution
Execution is a one liner and returns a list of nearest neighbours
var resultList = nearestNeighbour.nearest( searchObject )
Configuration
The full configuration is as follows
var config = {
objects : [ /* list of objects */ ],
number : theNumberOfResultsYouWant,
distanceFunction : yourDistanceFunction
}
Example
This is a very simple example that finds the object with the closest match.
var neighbour = require('nearestneighbour')({
objects : [ { a : -10 } , { a : 3 } ],
number : 1
})
console.log( neighbour.nearest({ a : 1 })[0] )
# returns { a : 3 }
neighbour.add( { a : 2 } )
console.log( neighbour.nearest({ a : 1 })[0] )
# returns { a : 2 }
FAQ
Each object in objects can be any object you want but is must have at a minimum the same keys as the keys in the searchObject. Additionally, the values of the keys in the searchObject and the objects must be Numbers.
Related AI Projects
This is part of a set of related projects.