UNPKG

582 BJavaScriptView Raw
1// Internal dependencies
2import LinAlg from '../math/linalg';
3import Kernel from './base';
4
5class GaussianKernel extends Kernel {
6 /**
7 * Constructor
8 *
9 * @param float sigmaSquared Optional. Normalization parameter for exponential
10 */
11 constructor(sigmaSquared = 1) {
12 super();
13
14 this.sigmaSquared = sigmaSquared;
15 }
16
17 /**
18 * @see jsmlt.Kernel.Kernel::apply()
19 */
20 apply(x, y) {
21 // Gaussian
22 const diff = LinAlg.sum(x, LinAlg.scale(y, -1));
23 return Math.exp(-LinAlg.dot(diff, diff) / (2 * this.sigmaSquared));
24 }
25}
26
27export default GaussianKernel;