@astermind/astermind-elm
Version:
JavaScript Extreme Learning Machine (ELM) library for browser and Node.js.
70 lines (69 loc) • 2.27 kB
TypeScript
export interface PerClassMetrics {
label: string | number;
support: number;
tp: number;
fp: number;
fn: number;
tn: number;
precision: number;
recall: number;
f1: number;
}
export interface ClassificationAverages {
accuracy: number;
macroPrecision: number;
macroRecall: number;
macroF1: number;
microPrecision: number;
microRecall: number;
microF1: number;
weightedPrecision: number;
weightedRecall: number;
weightedF1: number;
logLoss?: number;
topKAccuracy?: number;
}
export interface ClassificationReport {
confusionMatrix: number[][];
perClass: PerClassMetrics[];
averages: ClassificationAverages;
}
export interface RegressionPerOutput {
index: number;
mse: number;
rmse: number;
mae: number;
r2: number;
}
export interface RegressionReport {
perOutput: RegressionPerOutput[];
mse: number;
rmse: number;
mae: number;
r2: number;
}
export declare function confusionMatrixFromIndices(yTrueIdx: number[], yPredIdx: number[], C?: number): number[][];
export declare function logLoss(yTrue: number[] | number[][], yPredProba: number[] | number[][]): number;
export declare function topKAccuracy(yTrueIdx: number[], yPredProba: number[][], k?: number): number;
export interface BinaryCurve {
thresholds: number[];
tpr?: number[];
fpr?: number[];
precision?: number[];
recall?: number[];
auc: number;
}
export declare function binaryROC(yTrue01: number[], yScore: number[]): BinaryCurve;
export declare function binaryPR(yTrue01: number[], yScore: number[]): BinaryCurve;
/**
* Evaluate multi-class classification.
* - yTrue can be indices (N) or one-hot (N x C)
* - yPred can be indices (N) or probabilities (N x C)
* - If yPred are probabilities, we also compute logLoss and optional topK.
*/
export declare function evaluateClassification(yTrue: number[] | number[][], yPred: number[] | number[][], opts?: {
labels?: Array<string | number>;
topK?: number;
}): ClassificationReport;
export declare function evaluateRegression(yTrue: number[] | number[][], yPred: number[] | number[][]): RegressionReport;
export declare function formatClassificationReport(rep: ClassificationReport): string;