Cosine Distance
Computes the cosine distance between two arrays.
Cosine similarity defines vector similarity in terms of the angle separating two vectors.
The computed similarity resides on the interval [-1,1]
, where vectors with the same orientation have a similarity equal to 1
, orthogonal orientation a similarity equal to 0
, and opposite orientation a similarity equal to -1
. The cosine distance seeks to express vector dissimilarity in positive space and does so by subtracting the similarity from 1
.
Installation
$ npm install compute-cosine-distance
For use in the browser, use browserify.
Usage
var distance = ;
distance( x, y[, accessor] )
Computes the cosine distance between two arrays
.
var x = 5 23 2 5 9y = 3 21 2 5 14 ;var d = ;// returns ~0.025
For object arrays
, provide an accessor function
for accessing numeric
values.
var x ='x':2'x':4'x':5;var y =132135;{if j === 0return dx;return d 1 ;}var d = ;// returns ~0.118
The accessor function
is provided three arguments:
- d: current datum.
- i: current datum index.
- j: array index; e.g., array
x
has index0
, and arrayy
has index1
.
If provided empty arrays
, the function returns null
.
Examples
var distance = ;var x = 100y = 100d;for var i = 0; i < xlength; i++x i = Math;y i = Math;d = ;console;
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2015. Philipp Burckhardt.