KernelFunctions.jl icon indicating copy to clipboard operation
KernelFunctions.jl copied to clipboard

Multi-output kernel naming & consistency

Open st-- opened this issue 4 years ago • 9 comments

Currently there are several different multi-output kernels:

IndependentMOKernel, LatentFactorMOKernel, IntrinsicCoregionMOKernel, LinearMixingModelKernel.

There was some debate about renaming

LinearMixingModelKernel
LinearMixingMOKernel

because

  • A kernel is not a model so we should drop the Model.
  • Currently the majority of MO kernels have the MO in the name, and we should be consistent.

The discussion did not belong on that PR, so teased out into its own issue here.

st-- avatar Jul 08 '21 14:07 st--

I'm pro- LinearMixingMOKernel for the reasons that you state.

willtebbutt avatar Jul 08 '21 14:07 willtebbutt

I am for removing the MO from all kernels and the Model from LinearMixingModelKernel for consistency.

devmotion avatar Jul 08 '21 15:07 devmotion

One issue with this @devmotion is that things like IndependentMOKernel would become IndependentKernel, which is quite ambiguous.

willtebbutt avatar Jul 08 '21 16:07 willtebbutt

My impression was that we don't really want IndependentMOKernel in its current form (https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/issues/325), so we might want to choose a different more descriptive name anyway. Apart from that, I think the naming would still be consistent if it is called e.g. IndependentMultiOutputKernel and MO is dropped from all other kernels that clearly are kernels for multiple outputs and where there is no need to disambiguate them from a corresponding single output version.

devmotion avatar Jul 08 '21 16:07 devmotion

Fair enough. I'm very happy to bow to whatever the consensus is on this as I don't have particularly strong feelings either way.

willtebbutt avatar Jul 08 '21 17:07 willtebbutt

I don't like abbreviations used in programming so I'm in favor of removing the MO from the concrete types' names and using MultiOutput whenever there is ambiguity.

Off-topic: Is it too much to ask for renaming ColVecs to ColumnVectors and RowVecs to RowVectors? :pleading_face: :sweat_smile:

david-vicente avatar Jul 08 '21 19:07 david-vicente

Is it too much to ask for renaming ColVecs to ColumnVectors and RowVecs to RowVectors? 🥺 😅

Not at all! I would be very much in favour of that.

willtebbutt avatar Jul 08 '21 19:07 willtebbutt

I'd be happy with spelling out IndependentMultiOutputKernel but why would you keep it there but not for e.g. LinearMixingMultiOutputKernel?

st-- avatar Jul 09 '21 10:07 st--

Oops, must not have seen this when I made a similar issue 😅

thomasgudjonwright avatar Jul 13 '21 09:07 thomasgudjonwright