UNPKG

entropyx

Version:

A simple data mining library, written in TypeScript

37 lines 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Hierarchical = void 0; const distance_1 = require("@/base/distance"); const ml_hclust_1 = require("ml-hclust"); class Hierarchical { constructor(options = {}) { this.options = { clusters: options.clusters ?? 2, linkage: options.linkage ?? 'complete', distance: options.distance ?? distance_1.Distance.euclidean, }; } fit(data) { return new Promise((resolve) => { const { clusters, linkage, distance } = this.options; const dendrogram = (0, ml_hclust_1.agnes)(data, { method: linkage, distanceFunction: distance, }); const partition = dendrogram.cut(clusters); const clusterMap = new Map(); partition.forEach(({ index }, i) => { if (!clusterMap.has(index)) { clusterMap.set(index, []); } clusterMap.get(index).push(data[i]); }); const finalClusters = [...clusterMap.values()]; resolve({ clusters: finalClusters, }); }); } } exports.Hierarchical = Hierarchical; //# sourceMappingURL=hierarchical.js.map