This package has been deprecated

Author message:

WARNING: This project has been renamed to @seregpie/nearest-neighbor-chain.

almete.nearestneighborchain

18.1.14 • Public • Published

almete.NearestNeighborChain

almete.NearestNeighborChain(values, distanceBetween)

Builds a hierarchy of clusters.

argument description
values An array or an object of values to build the hierarchy of clusters from.
distanceBetween A function to calculate the distance between two values. Value pairs with the lowest distance build a cluster.

Returns clusters as nested arrays. The leaves are either the indexes or the keys of the values, depending on their collection's type.

dependencies

setup

npm

npm install almete.nearestneighborchain

ES module

import NearestNeighborChain from 'almete.nearestneighborchain';

Node

const NearestNeighborChain = require('almete.nearestneighborchain');

browser

<script src="https://unpkg.com/almete.bronkerbosch"></script>
<script src="https://unpkg.com/almete.nearestneighborchain"></script>

The function NearestNeighborChain will be available under the namespace almete.


Include polyfills to support older browsers.

<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>

usage

let object = {a: 4, b: 90, c: 12, d: 61, e: 29};
let clusters = almete.NearestNeighborChain(object, (a, b) => Math.abs(a - b));
// => [['e', ['a', 'c']], ['b', 'd']]

Overlapping clusters are merged together.

let intersection = function(a, b) {
  a = new Set(a), b = new Set(b);
  return [...a].filter(v => b.has(v));
};

let array = ['ac', 'ab', 'baab', 'aba', 'bc'];
let clusters = almete.NearestNeighborChain(array, (a, b) => -intersection(a, b).length);
// => [0, 4, [1, 2, 3]]

see also

Package Sidebar

Install

npm i almete.nearestneighborchain

Weekly Downloads

7

Version

18.1.14

License

MIT

Last publish

Collaborators

  • npm