UNPKG

@astermind/astermind-elm

Version:

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

74 lines (73 loc) 2.07 kB
import { ELM } from '../core/ELM'; import { KernelELM, KernelSpec } from '../core/KernelELM'; import { OnlineELM } from '../core/OnlineELM'; import { Activation } from '../core/ELMConfig'; export interface TrainPair { input: string; label: string; } type Engine = 'elm' | 'kernel' | 'online'; export interface KernelOptions { type?: KernelSpec['type']; gamma?: number; degree?: number; coef0?: number; m?: number; strategy?: 'uniform' | 'kmeans++' | 'preset'; seed?: number; preset?: { points?: number[][]; indices?: number[]; }; whiten?: boolean; jitter?: number; } interface AutoCompleteOptions { activation?: Activation; topK?: number; inputElement: HTMLInputElement; outputElement: HTMLElement; metrics?: { rmse?: number; mae?: number; accuracy?: number; top1Accuracy?: number; crossEntropy?: number; }; verbose?: boolean; exportFileName?: string; augmentationOptions?: { suffixes?: string[]; prefixes?: string[]; includeNoise?: boolean; }; engine?: Engine; hiddenUnits?: number; ridgeLambda?: number; weightInit?: 'uniform' | 'xavier' | 'he'; kernel?: KernelOptions; } type AnyModel = ELM | KernelELM | OnlineELM; export declare class AutoComplete { model: AnyModel; private encoder; categories: string[]; activation: Activation; engine: Engine; topKDefault: number; private trainPairs; constructor(pairs: TrainPair[], options: AutoCompleteOptions); train(): void; predict(input: string, topN?: number): { completion: string; prob: number; }[]; getModel(): AnyModel; loadModelFromJSON(json: string): void; saveModelAsJSONFile(filename?: string): void; top1Accuracy(pairs: TrainPair[]): number; crossEntropy(pairs: TrainPair[]): number; /** Internal CE via W/b/β (only for classic ELM); others fall back to external CE. */ internalCrossEntropy(verbose?: boolean): number; } export {};