UNPKG

@astermind/astermind-elm

Version:

JavaScript Extreme Learning Machine (ELM) library for browser and Node.js.

64 lines (63 loc) 2.11 kB
import { Activation } from '../core/ELMConfig'; type MetricsGate = { rmse?: number; mae?: number; accuracy?: number; f1?: number; crossEntropy?: number; r2?: number; }; export interface RefinerELMOptions { /** REQUIRED: input vector length for numeric mode */ inputSize: number; /** REQUIRED: hidden units for the ELM */ hiddenUnits: number; /** Optional activation (defaults to 'relu') */ activation?: Activation; /** Optional initial categories; can be overridden on train() */ categories?: string[]; /** Optional logging */ log?: { modelName?: string; verbose?: boolean; toFile?: boolean; level?: 'info' | 'debug'; }; /** Optional export name */ exportFileName?: string; /** Optional regularization / init knobs */ ridgeLambda?: number; dropout?: number; weightInit?: 'uniform' | 'xavier' | 'he'; /** Optional metric thresholds (set on the ELM instance, not in config) */ metrics?: MetricsGate; } export declare class RefinerELM { private elm; constructor(opts: RefinerELMOptions); /** Train from feature vectors + string labels. */ train(inputs: number[][], labels: string[], opts?: { reuseWeights?: boolean; sampleWeights?: number[]; categories?: string[]; }): void; /** Full probability vector aligned to `this.elm.categories`. */ predictProbaFromVector(vec: number[]): number[]; /** Top-K predictions ({label, prob}) for a single vector. */ predict(vec: number[], topK?: number): Array<{ label: string; prob: number; }>; /** Batch top-K predictions for an array of vectors. */ predictBatch(vectors: number[][], topK?: number): Array<Array<{ label: string; prob: number; }>>; /** Hidden-layer embedding(s) — useful for chaining. */ embed(vec: number[]): number[]; embedBatch(vectors: number[][]): number[][]; /** Persistence passthroughs */ loadModelFromJSON(json: string): void; saveModelAsJSONFile(filename?: string): void; } export {};