Partial shared lengthscale #2070
-
I'm working with spatiotemporal data, so my input values are 3D: latitude, longitude, and time. Obviously, the lengthscale for space (lat/long) may be very different than the lengthscale for time. Using |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
Follow-up question: it's possible to specify constraints on the lengthscale, and it's possible to learn a different lengthscale for each dimension, but is it possible to specify constraints on the lengthscale separately for each dimension? |
Beta Was this translation helpful? Give feedback.
-
One possible solution I've come up with: instead of using a single kernel, I could use a combination of 2 kernels like so: RBFKernel(active_dims=[0, 1]) + RBFKernel(active_dims=[2]) This allows the model to learn a single lengthscale for lat/long and a separate lengthscale for time. It also allows you to specify different constraints for each. Marking this as "the answer" but let me know if this is not recommended or there is a better approach. |
Beta Was this translation helpful? Give feedback.
-
A behavior close to ARD would be So, |
Beta Was this translation helpful? Give feedback.
A behavior close to ARD would be
RBFKernel(active_dims=[0, 1]) * RBFKernel(active_dims=[2])
because ARD is mathematically a multiplication of similar or different kernels applied on each feature.So,
RBFKernel(ard_num_dims=3)
is mathematically equivalent toRBFKernel(active_dims=[0]) * RBFKernel(active_dims=[1]) * RBFKernel(active_dims=[2])
. I am using word "mathematically" here because computationallyRBFKernel(ard_num_dims=3)
would be more efficient as discussed in #1806.