import { RegressorBase } from '../base'; import { Params } from '../base/estimator'; import { KernelConfig, KernelMatrix, KernelType, SVRSolution } from './smo'; export interface SVRProps { kernel?: KernelType; degree?: number; /** 'scale' = 1/(n_features * Var(X)) like sklearn; 'auto' = 1/n_features */ gamma?: number | 'scale' | 'auto'; coef0?: number; tol?: number; C?: number; /** half-width of the epsilon-insensitive tube (no penalty for |f(x)-y| <= epsilon) */ epsilon?: number; /** hard limit on SMO pair updates; -1 (default) = run until convergence */ maxIter?: number; } /** * epsilon-Support Vector Regression solved in the dual with SMO on the * libsvm 2n-variable formulation (alpha and alpha* pairs, maximal-violating- * pair working-set selection). The fitted model is * f(x) = sum_k dualCoef_k K(sv_k, x) + intercept with dualCoef = alpha - alpha*. */ export declare class SVR extends RegressorBase { protected kernel: KernelType; protected degree: number; protected gamma: number | 'scale' | 'auto'; protected coef0: number; protected tol: number; protected C: number; protected epsilon: number; protected maxIter: number; protected gammaValue: number; /** support-vector rows (copies of the training samples with nonzero dual coef) */ protected svX: number[][]; /** training-set indices of the support vectors */ protected supportIndices: number[]; /** signed dual coefficients alpha_k - alpha*_k, aligned with svX */ protected dualCoef: number[]; protected intercept: number; protected fitted: boolean; constructor(props?: SVRProps); getParams(): Params; protected kernelConfig(): KernelConfig; /** solve the regression dual; overridden by NuSVR */ protected solveDual(K: KernelMatrix, y: number[]): SVRSolution; fit(trainX: number[][], trainY: number[]): void; protected checkFitted(): void; predict(testX: number[][]): number[]; /** sorted training-set indices of the support vectors (sklearn's support_) */ getSupportVectors(): number[]; }