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