NearestNeighbour is a method of looking up best matches.
Section Links : Construction , Execution , Examples , FAQ , Related , and References
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)
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 is a one liner and returns a list of nearest neighbours
var resultList = nearestNeighbour.nearest( searchObject )
The full configuration is as follows
var config = {
objects : [ /* list of objects */ ],
number : theNumberOfResultsYouWant,
distanceFunction : yourDistanceFunction
}
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 }
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.
This is part of a set of related projects.