UNPKG

@astermind/astermind-elm

Version:

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

29 lines (28 loc) 901 B
export interface KNNDataPoint { vector: number[]; label: string; } export interface KNNResult { label: string; weight: number; } export type KNNMetric = "cosine" | "euclidean"; export declare class KNN { /** * Compute cosine similarity between two numeric vectors. */ static cosineSimilarity(vec1: number[], vec2: number[]): number; /** * Compute Euclidean distance between two numeric vectors. */ static euclideanDistance(vec1: number[], vec2: number[]): number; /** * Find k nearest neighbors. * @param queryVec - Query vector * @param dataset - Dataset to search * @param k - Number of neighbors * @param topX - Number of top results to return * @param metric - Similarity metric */ static find(queryVec: number[], dataset: KNNDataPoint[], k?: number, topX?: number, metric?: KNNMetric): KNNResult[]; }