@astermind/astermind-elm
Version:
JavaScript Extreme Learning Machine (ELM) library for browser and Node.js.
29 lines (28 loc) • 901 B
TypeScript
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[];
}