{"_id":"k-medoids","_rev":"9-fd79eab67cbfff68262ecb1708df2fe9","name":"k-medoids","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"k-medoids","version":"1.0.0","keywords":["k-medoids","clustering","cluster","partition","partitioning","mediod"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.0","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"3e0b7950c684dbf7004773f6865eeb265c544504","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.0.tgz","integrity":"sha512-YvPmDbG2t5Q9h0pVy8tEUTIHMuOMa0o2HGnJfmrVO0wefodJdbQiMzWDW6usx+irXRIgh5H3LLNL0Lhu9k+m6g==","signatures":[{"sig":"MEUCIQC1V7+CdKxuJRARDpeen54Cpo7xYktrQu81g4PSstA/sQIga2NxTA+JKrQwhiGzkuLo8V8ChdnjPJjV5J7clHfXlxk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"7c7ffeab0502568a5f48be9502ccaebc3d1cda82","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"5.6.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"8.6.0","dependencies":{},"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids-1.0.0.tgz_1516133420789_0.20174307422712445","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"k-medoids","version":"1.0.1","keywords":["k-medoids","clustering","cluster","partition","partitioning","mediod"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.1","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"db370cc4e0ee974d08d2dc4e2175fad62100aea8","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.1.tgz","integrity":"sha512-qROyflJJWKV98yDkqrY0al/SnlamJKRqYDm8mOkPdBStFR5i7stz05k8VVE5Uqdzbey53MVYwErGdq8ep2umHg==","signatures":[{"sig":"MEUCIQCciBZePQw9JC6Op8yzsWDd4KBAcu1t6M1iikM6vRG0lgIgZQWbs/9NLYGw56uvEX78IjdG3c7MJ7kZ8cebA3sv1U0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"ca8617946706abbb5fd9e38779474a1261d46403","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"5.6.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"8.6.0","dependencies":{},"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids-1.0.1.tgz_1516173044670_0.4540677540935576","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"k-medoids","version":"1.0.2","keywords":["k-medoids","clustering","cluster","partition","partitioning","mediod"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.2","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"446affd1474ba5d6bf39c3a61024297e5b9a33c5","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.2.tgz","integrity":"sha512-Hz30kWFQj+zKxunw6vCQbMu8fIu5SXPNsoLUVnkhwhZYK0ehWOiNnYbw3nOl9gQAzK/rVh9KacPKW8nd9IuVpQ==","signatures":[{"sig":"MEQCIE5epK3pXy49CgAZNsoe9+QgFSfm/DVzYBR/EG3W24PnAiABEYvbCuWRpkkw+ehnPqoMviehl1Ow6J5uqFUabziIlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"553274a46daf9f3e400949621435bc7e87ad700e","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","prepbulish":"npm run build:publish","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"5.6.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"8.7.0","dependencies":{},"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids-1.0.2.tgz_1516176374994_0.520458037732169","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"k-medoids","version":"1.0.3","keywords":["k-medoids","clustering","cluster","partition","partitioning","mediod"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.3","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"6d49df41944e8f0856e1537b932d48d0b3637e4a","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.3.tgz","integrity":"sha512-oRgTK0YFztDTYgdplPoqNJ6niCzzHsF40PgVkC7GIQiT+DTaXoGRxJQRxc3RTrEhxwIAHiajEwEsGva8yXqeKQ==","signatures":[{"sig":"MEQCIHuncLH3iTZqeMVJ/bXXIn3M/FzhP7gVIyva4XNOWAPyAiAC6YTLxrqzhZwrZvhUh13LJ9zf9QPCiU2EcWBqN154rw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"3fb714d4b3ce40e59e8d3b3bb8f000666d174e68","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","prepublish":"npm run build:publish","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"5.6.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"8.7.0","dependencies":{},"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids-1.0.3.tgz_1516176637925_0.3749058952089399","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"k-medoids","version":"1.0.4","keywords":["k-medoids","kmedoids","clustering","cluster","partition","partitioning","medoid"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.4","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"3edee5de849ff7db66b5b951069fb10796a9b5a3","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.4.tgz","integrity":"sha512-HC0g7GJLTdpOgaPzFqhO6kHFJVa1fypKf/23B8k4ccjX3+g77N8bLj5GqsnJZNsr/jmImg2kw3JOytYcMqQb7g==","signatures":[{"sig":"MEUCIQCY1PLV/LeBFSU2YhKLXCxE2qp+YvVhnjq5RbzxFhiILAIgQhTqffiznQAwvpH4EiBqsL/dwTNLGoht2UcDGe0+oyc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"3b4853e74fa8987b682b43e3a5e96a428089487f","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","prepublish":"npm run build:publish","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"5.6.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"8.9.4","dependencies":{},"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids-1.0.4.tgz_1516830680363_0.7189421791117638","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"k-medoids","version":"1.0.6","keywords":["k-medoids","kmedoids","clustering","cluster","partition","partitioning","medoid"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.6","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"d4ec5dc3fa67f890a4770dea2eb5ed1c28a0bd9a","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.6.tgz","fileCount":20,"integrity":"sha512-vqej8pVmQVIbGSii/T+sQNU6vYQFhn9OpvRRfoDgdaGOM2NWojOCgzRTYF7UVbGYG009cl9zm8qeOJQOWNHR9g==","signatures":[{"sig":"MEQCIGX1fti3TPAeBmlQWk8c4SpzDBqen8jElcqljq290m+FAiAB5JrOoeRi0uV5qh/vKVOFgVd7ncsBE8MAN75FfD++tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/n2+CRA9TVsSAnZWagAAC4gP/2Z6zGVdxjjhbPoZ4vaR\nq64wiA8+FCbDTP5RD8I1lsnqCQvKOPSzJOuwfhuDIvWoZozTo1yOcfb2Tsyx\nuHMYZzkCT85d2o8JkhVYllM3Mi35nhHbBIjyACt9Kk9qBn1yAtkFRzI6Q7oW\nQGMaSjyp3AtFB2DBaekNvx/PVZadppieqM85l49LgElrfMHk7blJP5N6o02l\nvrjjlt76i7HlQNIwVUhAIVkeFLE4PSq6qKi++tWFOIAzvznIsjmX3mIRtisa\nAPyPaYliOAPMFKUSlOqPWDXdV0W5ISZU5lFeh8Gmuw4sgbXENrb3zSRIrYrK\nARMrtlCrKE2heeW8mwTMQJgkwSazhi04DXg6kdGZMFnmsy/z7CJggvmaNlh+\nr66LSOeO4vtf1AuANPmDtmTnr9/D1wGx/WOcTqK7+ICbRLxnG+iKdNPTK18M\nEgfpY/zleRZOWOmzOaCiRnIraKTCeWlGXhB0p50g5kx7PQQ4ya3V0l1a2VjK\nnzXfry9jtHwfTNOj8H4P9dtDo7IWCIB71UJ0ZRHTIJFKgR43kOmFaf+wioKw\n7lbI3ioCeo88BT4pb9C6uqlT5aAlg26yDIDeqBZvF2tt7ihAXur6Tq6iYof7\nMXPUj7obLceqBAhtjIKMpYHLVkz6PkLIxUahEhjLOX0Lwyt0tX97s8wzfPHN\nci8R\r\n=MBSQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"602ce559d4b041c34a6fe60a7a5d5b351a1231e4","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","prepublish":"npm run build:publish","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"6.9.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"10.6.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids_1.0.6_1560182205945_0.9302519236094724","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"k-medoids","version":"1.0.7","keywords":["k-medoids","kmedoids","clustering","cluster","partition","partitioning","medoid"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","_id":"k-medoids@1.0.7","maintainers":[{"name":"stewart-r","email":"stewart_robertson@sky.com"}],"homepage":"https://github.com/stewart-r/k-medoids#readme","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"dist":{"shasum":"cd18de6af8a49c3b36d0e7745d27f6881aefc75b","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.7.tgz","fileCount":20,"integrity":"sha512-6t2CvWwWtF02lSk2U6/GSm6ap+XucIn26FIQp9jl1/85/u6RG27ryUdPLl0EEBtRfSZL3YPYuK496ES9fwQ7IA==","signatures":[{"sig":"MEQCIQDx5DsGD2EBrAjYFAnZcyVtMIhkgp2Oeoeyt1jLgGbPYAIffsyYXG+3V65QwFAUjSBCn7oyAPzL1udjdHyOKjCpIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16392},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"95cce34c747716744bf345ee5a7763d819738add","scripts":{"test":"npm run runtests","clean":"rimraf ./dist","pretest":"npm run build:test","runtests":"mocha --require source-map-support/register","build:test":"tsc","prepublish":"npm run build:publish","watch-tests":"tsc-watch --onSuccess \"npm run runtests\"","postruntests":"tslint -p .","build:publish":"tsc -p ./tsconfig.publish.json","prebuild:publish":"npm run clean","postbuild:publish":"tslint -p ./tsconfig.publish.json"},"_npmUser":{"name":"stewart-r","email":"stewart_robertson@sky.com"},"repository":{"url":"git+https://github.com/stewart-r/k-medoids.git","type":"git"},"_npmVersion":"10.2.0","description":"Implementation of the k-mediods clustering algorithm","directories":{},"_nodeVersion":"20.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","mocha":"^10.2.0","rimraf":"^2.6.2","tslint":"^5.9.1","tsc-watch":"^1.0.13","typescript":"^2.6.2","@types/chai":"^4.1.0","@types/mocha":"^2.2.46","js-combinatorics":"^0.5.3","source-map-support":"^0.5.0","@types/js-combinatorics":"^0.5.29"},"_npmOperationalInternal":{"tmp":"tmp/k-medoids_1.0.7_1696775217766_0.6899102134428585","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"k-medoids","version":"1.0.8","description":"Implementation of the k-mediods clustering algorithm","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rimraf ./dist","prebuild:publish":"npm run clean","build:publish":"tsc -p ./tsconfig.publish.json","postbuild:publish":"tslint -p ./tsconfig.publish.json","prepublish":"npm run build:publish","build:test":"tsc","pretest":"npm run build:test","postruntests":"tslint -p .","runtests":"mocha --require source-map-support/register","test":"npm run runtests","watch-tests":"tsc-watch --onSuccess \"npm run runtests\""},"repository":{"type":"git","url":"git+https://github.com/stewart-r/k-medoids.git"},"keywords":["k-medoids","kmedoids","clustering","cluster","partition","partitioning","medoid"],"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"homepage":"https://github.com/stewart-r/k-medoids#readme","devDependencies":{"@types/chai":"^4.1.0","@types/js-combinatorics":"^0.5.29","@types/mocha":"^2.2.46","chai":"^4.1.2","js-combinatorics":"^0.5.3","mocha":"^10.2.0","rimraf":"^2.6.2","source-map-support":"^0.5.0","tsc-watch":"^7.1.1","tslint":"^5.9.1","typescript":"^2.6.2"},"gitHead":"f39663deb5f75ebf738a2c19faa7fe55b5ca664c","_id":"k-medoids@1.0.8","_nodeVersion":"18.19.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-6snbSmeJbkAq2Y/hUqTUZJbmVkxGgKgD3tgjIE+RDXhvBlXHyPbSlMTGyimug5A5M1g2X7utvAbDGjYGv/Krww==","shasum":"d6d01ffa7ad0942c94f73be1956626da8817f786","tarball":"https://registry.npmjs.org/k-medoids/-/k-medoids-1.0.8.tgz","fileCount":20,"unpackedSize":16392,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDSroo+nyZqlx943DE+cuAZWTFi6mv06zhZ2rMV9zvlNAiEAs8o1WLPa0i5MABuuoYUS8U3lUKaKV0IQLmSQWKghzq4="}]},"_npmUser":{"name":"stewart-r","email":"stewartrobertson1979@googlemail.com"},"directories":{},"maintainers":[{"name":"stewart-r","email":"stewartrobertson1979@googlemail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/k-medoids_1.0.8_1755726013717_0.8920778004342833"},"_hasShrinkwrap":false}},"time":{"created":"2018-01-16T20:10:20.868Z","modified":"2025-08-20T21:40:14.064Z","1.0.0":"2018-01-16T20:10:20.868Z","1.0.1":"2018-01-17T07:10:45.615Z","1.0.2":"2018-01-17T08:06:15.907Z","1.0.3":"2018-01-17T08:10:39.729Z","1.0.4":"2018-01-24T21:51:20.468Z","1.0.6":"2019-06-10T15:56:46.062Z","1.0.7":"2023-10-08T14:26:57.962Z","1.0.8":"2025-08-20T21:40:13.896Z"},"bugs":{"url":"https://github.com/stewart-r/k-medoids/issues"},"author":{"name":"Stewart Robertson","email":"stewart_robertson@sky.com"},"license":"MIT","homepage":"https://github.com/stewart-r/k-medoids#readme","keywords":["k-medoids","kmedoids","clustering","cluster","partition","partitioning","medoid"],"repository":{"type":"git","url":"git+https://github.com/stewart-r/k-medoids.git"},"description":"Implementation of the k-mediods clustering algorithm","maintainers":[{"name":"stewart-r","email":"stewartrobertson1979@googlemail.com"}],"readme":"[![Build Status](https://travis-ci.org/stewart-r/k-medoids.svg?branch=master)](https://travis-ci.org/stewart-r/k-medoids)\n\n# k-medoids\nAn implementation of the k-medoid Partitioning Around Medoids (PAM) algorithm ([wikipedia entry](https://en.wikipedia.org/wiki/K-medoids))\n\n## Example Usage\n\n### Simple Example (Uses Euclidean Distance Function by default)\n\nTypeScript:\n``` typescript\n\nimport { Cluster, Clusterer } from \"k-medoids\";\n\nconst k = 2;\nconst myData = [\n    [1, 2],\n    [1, 3],\n    [-1, 2.5],\n    [0, 0],\n    [510, 203],\n    [-100, 120],\n];\n\nconst clusterer = Clusterer.getInstance(myData, 2);\nconst clusteredData = clusterer.getClusteredData();\nclusteredData\n\n```\n\nJavaScript:\n``` javascript\n\nconst kmeds = require(\"k-medoids\");\n\nconst k = 2;\nconst myData = [\n    [1, 2],\n    [1, 3],\n    [-1, 2.5],\n    [0, 0],\n    [510, 203],\n    [-100, 120],\n];\n\nconst clusterer = kmeds.Clusterer.getInstance(myData, 2);\nconst clusteredData = clusterer.getClusteredData();\nclusteredData\n\n```\n\noutputs:\n``` json\n\n[\n    [\n        [510,203]\n    ],\n    [\n        [1,2],[1,3],[-1,2.5],[0,0],[-100,120]\n    ]\n]\n\n```\n\n### Using a Custom Distance Function\n``` typescript\n\nconst myFunkyDistanceFn = (a: number[], b: number[]) => {\n    return Math.abs(a[1] - b[1]);\n};\n\nconst myClusterer = Clusterer.getInstance(myData, 2, myFunkyDistanceFn);\nconst data = myClusterer.getClusteredData();\ndata\n\n```\noutputs:\n``` json\n[\n    [\n        [510,203],\n        [-100,120]\n    ],\n    [\n        [1,2],\n        [1,3],\n        [-1,2.5],\n        [0,0]\n    ]\n]\n```\n\n### Clustering custom objects\n\nWe can cluster any object type as long as we provide a distance function to give the distance between them.\n\nFor example with a set of \"widgets\" like this:\n``` typescript\nconst myWidgets = [\n    {\n        Name: \"DoHickey\",\n        Weight: 10,\n    },\n    {\n        Name: \"Thingy\",\n        Weight: 10.5,\n    },\n    {\n        Name: \"Whatsit\",\n        Weight: 9.5,\n    },\n    {\n        Name: \"Bohemoth\",\n        Weight: 120,\n    },\n    {\n        Name: \"Goliath\",\n        Weight: 125,\n    },\n];\n```\n\nwe might consider items to be similar by weight, and thus:\n\n``` typescript\nconst myWidgetClusterer = Clusterer.getInstance(myWidgets, 2, (a, b) => {\n    return Math.abs(a.Weight - b.Weight);\n});\nconst groupedWidgets = myWidgetClusterer.getClusteredData();\ngroupedWidgets\n```\n\ngives us:\n\n``` json\n[\n    [\n        {\"Name\":\"Bohemoth\",\"Weight\":120},\n        {\"Name\":\"Goliath\",\"Weight\":125}\n    ],\n    [\n        {\"Name\":\"DoHickey\",\"Weight\":10},\n        {\"Name\":\"Thingy\",\"Weight\":10.5},\n        {\"Name\":\"Whatsit\",\"Weight\":9.5}]\n    ]\n]\n```\n\n","readmeFilename":"README.md"}