@@ -8,7 +8,7 @@ At their core, Nadaraya--Watson estimators rely on some similarity kernel $\alph
88$$ \begin{aligned}
99\alpha(\mathbf{q}, \mathbf{k}) & = \exp\left(-\frac{1}{2} \|\mathbf{q} - \mathbf{k}\|^2 \right) && \textrm{Gaussian;} \\
1010\alpha(\mathbf{q}, \mathbf{k}) & = 1 \textrm{ if } \|\mathbf{q} - \mathbf{k}\| \leq 1 && \textrm{Boxcar;} \\
11- \alpha(\mathbf{q}, \mathbf{k}) & = \mathop{\mathrm{max}}\left(0, 1 - \|\mathbf{q} - \mathbf{k}\|\right) && \textrm{Epanechikov .}
11+ \alpha(\mathbf{q}, \mathbf{k}) & = \mathop{\mathrm{max}}\left(0, 1 - \|\mathbf{q} - \mathbf{k}\|\right) && \textrm{Triangular .}
1212\end{aligned}
1313$$
1414
@@ -77,25 +77,25 @@ def constant(x):
7777 return 1.0 + 0 * x
7878
7979if tab.selected('pytorch'):
80- def epanechikov (x):
80+ def triangular (x):
8181 return torch.max(1 - d2l.abs(x), torch.zeros_like(x))
8282if tab.selected('mxnet'):
83- def epanechikov (x):
83+ def triangular (x):
8484 return np.maximum(1 - d2l.abs(x), 0)
8585if tab.selected('tensorflow'):
86- def epanechikov (x):
86+ def triangular (x):
8787 return tf.maximum(1 - d2l.abs(x), 0)
8888if tab.selected('jax'):
89- def epanechikov (x):
89+ def triangular (x):
9090 return jnp.maximum(1 - d2l.abs(x), 0)
9191```
9292
9393``` {.python .input}
9494%%tab all
9595fig, axes = d2l.plt.subplots(1, 4, sharey=True, figsize=(12, 3))
9696
97- kernels = (gaussian, boxcar, constant, epanechikov )
98- names = ('Gaussian', 'Boxcar', 'Constant', 'Epanechikov ')
97+ kernels = (gaussian, boxcar, constant, triangular )
98+ names = ('Gaussian', 'Boxcar', 'Constant', 'Triangular ')
9999x = d2l.arange(-2.5, 2.5, 0.1)
100100for kernel, name, ax in zip(kernels, names, axes):
101101 if tab.selected('pytorch', 'mxnet', 'tensorflow'):
0 commit comments