mubu.knn and scaling

#1

Dear all,

I have some questions regarding mubu.knn and scaling, related with each other: basically, how are the axes normalized with respect to each other in the multidimensional space? I bet it depends on scaling, but as far as I understand, scaling only concerns the scaling of the input values, not of the corpus itself.

Let me try to be more clear: Let’s say for instance, a matrix consists of two columns, frequency (between 0 and 20000 Hz), and level (between -90 dB and 0 dB). If scaling is set to “off”, does it mean that axes are not normalized (which would mean, frequency has much more weight than level)?

And: if the axes of the corpus are indeed normalized with respect to each other (either with max-min or with std), is the input scaled accordingly?

Or (second hypothesis), the axes are always normalized (for instance with std), but then, what’s the function of the “scaling” argument? I mean, I’d like to compare frequencies with frequencies and levels with levels (and not with normalized frequencies and levels).

Last question: if I want to simulate the “radius” mode from catart, I guess I should set the “k” argument to a very high value, then set the radius, and then take one of the outputs randomly, correct?

Best

Alexis

#2

Hi Alexis,

lookup is always normalised by each dimension’s sigma: distance = (corpus - target)^2 / sigma^2, with sigma = stddev / weight.
The input scaling is to hook up a controller easily (0…1 is mapped to min…max or mean…mean+std).

if I want to simulate the “radius” mode from catart, I guess I should set the “k” argument to a very high value, then set the radius, and then take one of the outputs randomly, correct?

k = 0 should give you all in radius (lest there is a bug). See also camu.random: https://github.com/Ircam-RnD/catart-mubu/tree/master/patches/lib

Best regards…
…Diemo