UNPKG

brain.js

Version:

Neural networks in JavaScript

70 lines 4.26 kB
import { INeuralNetworkBinaryTestResult, INeuralNetworkState, INeuralNetworkTestResult } from './neural-network-types'; export declare type InitClassifier<TrainOptsType, JsonType, DatumType> = () => IClassifier<TrainOptsType, JsonType, DatumType>; export interface IClassifier<TrainOptsType, JsonType, DatumType> { trainOpts: TrainOptsType; toJSON: () => JsonType; fromJSON: (json: JsonType) => this; train: (data: DatumType[], options?: Partial<TrainOptsType>) => INeuralNetworkState; test: (data: DatumType[]) => INeuralNetworkTestResult | INeuralNetworkBinaryTestResult; initialize: () => void; } export declare type ICrossValidateJSON<JsonType> = ICrossValidateStats<JsonType> | ICrossValidateBinaryStats<JsonType>; export interface ICrossValidateStatsAverages { trainTime: number; testTime: number; iterations: number; error: number; } export interface ICrossValidateStats<JsonType> { avgs: ICrossValidateStatsAverages; stats: ICrossValidateStatsResultStats; sets: Array<ICrossValidationTestPartitionResults<JsonType>>; } export interface ICrossValidateBinaryStats<NetworkType> { avgs: ICrossValidateStatsAverages; stats: ICrossValidateStatsResultBinaryStats; sets: Array<ICrossValidationTestPartitionBinaryResults<NetworkType>>; } export interface ICrossValidateStatsResultStats { total: number; testSize: number; trainSize: number; } export interface ICrossValidateStatsResultBinaryStats extends ICrossValidateStatsResultStats { total: number; truePos: number; trueNeg: number; falsePos: number; falseNeg: number; precision: number; recall: number; accuracy: number; } export interface ICrossValidationTestPartitionResults<JsonType> extends INeuralNetworkTestResult { trainTime: number; testTime: number; iterations: number; network: JsonType; total: number; } export declare type ICrossValidationTestPartitionBinaryResults<JsonType> = INeuralNetworkBinaryTestResult & ICrossValidationTestPartitionResults<JsonType>; export default class CrossValidate<InitClassifierType extends InitClassifier<ReturnType<InitClassifierType>['trainOpts'], ReturnType<ReturnType<InitClassifierType>['toJSON']>, Parameters<ReturnType<InitClassifierType>['train']>[0][0]>> { initClassifier: InitClassifierType; json: ICrossValidateJSON<ReturnType<ReturnType<InitClassifierType>['toJSON']>>; constructor(initClassifier: InitClassifierType); testPartition(trainOpts: Parameters<ReturnType<InitClassifierType>['train']>[1], trainSet: Parameters<ReturnType<InitClassifierType>['train']>[0], testSet: Parameters<ReturnType<InitClassifierType>['train']>[0]): ICrossValidationTestPartitionResults<ReturnType<ReturnType<InitClassifierType>['toJSON']>> | ICrossValidationTestPartitionBinaryResults<ReturnType<ReturnType<InitClassifierType>['toJSON']>>; /** * Randomize array element order in-place. * Using Durstenfeld shuffle algorithm. * source: http://stackoverflow.com/a/12646864/1324039 */ shuffleArray<K>(array: K[]): K[]; static isBinaryStats: (stats: ICrossValidateStatsResultStats | ICrossValidateStatsResultBinaryStats) => stats is ICrossValidateStatsResultBinaryStats; static isBinaryResults: <JsonType>(stats: ICrossValidateStats<JsonType> | ICrossValidateBinaryStats<JsonType>) => stats is ICrossValidateBinaryStats<JsonType>; static isBinaryPartitionResults: <JsonType>(stats: ICrossValidationTestPartitionResults<JsonType> | ICrossValidationTestPartitionBinaryResults<JsonType>) => stats is ICrossValidationTestPartitionBinaryResults<JsonType>; train(data: Array<Parameters<ReturnType<InitClassifierType>['train']>[0][0]>, trainOpts?: Partial<Parameters<ReturnType<InitClassifierType>['train']>[1]>, k?: number): ICrossValidateStats<ReturnType<InitClassifierType>['toJSON']>; toNeuralNetwork(): ReturnType<InitClassifierType>; toJSON(): ICrossValidateJSON<ReturnType<ReturnType<InitClassifierType>['toJSON']>> | null; fromJSON(crossValidateJson: ICrossValidateJSON<ReturnType<ReturnType<InitClassifierType>['toJSON']>>): ReturnType<InitClassifierType>; } //# sourceMappingURL=cross-validate.d.ts.map