@astermind/astermind-elm
Version:
JavaScript Extreme Learning Machine (ELM) library for browser and Node.js.
64 lines (63 loc) • 2.11 kB
TypeScript
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 {};