Skip to main content
Home

A JS/TS implementation of the k-means and k-means++ clustering algorithm.

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
82%
Published
9 months ago (3.1.0)

k-means-pp.js

A JS/TS implementation of the k-means and k-means++ clustering algorithm.

  • Implements both k-means and k-means++ algorithms
  • Supports multi-dimensional data points
  • Works in any JavaScript environment, including browsers, Node.js, Deno and more

Installation

deno
deno add @ppz/k-means-pp
npm
npm install k-means-pp

Usage

// import { KMPP } from '@ppz/k-means-pp' // install from deno
import { k_means_pp, k_means } from 'k-means-pp' // install from npm

const dimension = 3
const points = [
  [1,2,3],
  [0, 270, 103],
  [3,4,5],
  [0,0,0],
  [100, 200, 1],
  [0, 310, 120],
  [10, 320, 90],
  [100, 201, 3],
  [0, 300, 100],
  [1000, 2000, 1],
]

const range = calc_range(dimension, points)

const [clusters, count] = k_means_pp(dimension, points, 8, range)
console.log(clusters.map(c => c.mean), count)

const [clusters_pp, count_pp] = k_means(dimension, points, 8, range)
console.log(clusters_pp.map(c => c.mean), count_pp)

API

DEV

test
deno test
build for npm
deno task npm
cd npm
npm publish --access public

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";
or

Import directly with a jsr specifier

import * as k_means_pp from "jsr:@ppz/k-means-pp";

Add Package

pnpm i jsr:@ppz/k-means-pp
or (using pnpm 10.8 or older)
pnpm dlx jsr add @ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";

Add Package

yarn add jsr:@ppz/k-means-pp
or (using Yarn 4.8 or older)
yarn dlx jsr add @ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";

Add Package

vlt install jsr:@ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";

Add Package

npx jsr add @ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";

Add Package

bunx jsr add @ppz/k-means-pp

Import symbol

import * as k_means_pp from "@ppz/k-means-pp";