JSPM

simple-kmeans

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q30959F
  • License ISC

A simple implementation of a single dimensional k-means-clustering algorithm.

Package Exports

  • simple-kmeans

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-kmeans) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

simple-kmeans

A simple implementation of a single dimensional k-means clustering algorithm.

Features

  • Single dimensional k-means clustering
  • Supports custom number of clusters and seeds
  • Supports pre-defined cluster starting points to avoid random result
  • Supports pre-defined maximum number of iterations
  • Generates random clusters and seeds if none are passed in.
  • Assertion tests

Installation

npm install simple-kmeans --save

Run Tests

npm test

Usage

var kmeans = require('simple-kmeans');

// Quick test
// seeds / clusters will be randomly generated
var result = kmeans();
//    result = {
//        "iterations": 4,
//        "result": {
//            47: [47, 47]
//            77: [78, 78, 75]
//            100: [100, 100]
//            9.5: [13, 6]
//            21.25: [21, 21, 23, 20]
//            27.5: [29, 26]
//            37.33: [40, 36, 36]
//            56.5: [56, 57]
//            65.5: [67, 64]
//        }
//    }

// define seeds that will be grouped into a cluster (can be randomly generated and of any length)
var seeds = [15,15,16,19,19,20,20,21,22,28,35,40,41,42,43,44,60,61,65];
// define starting point for clusters (can be randomly generated and of any length)
var starting_clusters = [10, 40];

// run kmeans clustering on data set, max iterations defaults to 9001 if not set
var result = kmeans(starting_clusters, seeds);
//    result = {
//        "iterations": 3,
//        "result": {
//            '19.5': [ 15, 15, 16, 19, 19, 20, 20, 21, 22, 28 ],
//            '47.89': [ 35, 40, 41, 42, 43, 44, 60, 61, 65 ]
//        }
//    }

// limit number of iterations to 2
var result = kmeans(starting_clusters, seeds, 2);
//     result = {
//         "iterations": 2,
//         "result": {
//             '18.56': [ 15, 15, 16, 19, 19, 20, 20, 21, 22, 28 ],
//             '45.9': [ 35, 40, 41, 42, 43, 44, 60, 61, 65 ]
//         }
//     }