This is a generalization of the doAxisProjectionMutation
.
A subset Q⊆P (each point selected with independent
probability pm
) is selected. Next, a random intercept β0∈[0,1]
is sampled. In a subsequent step a slope β1 is sampled uniformly at random from
[0,3] (if β0<0.5) and [−3,0] (if β0≥0.5). This heuristic
distinction of cases ensures that with high probability the resulting linear function
β0+β1x runs inside the bounding-box [0,1]2 at least partially. Finally, all
points p∈Q are modified by setting p2=β0+β1p1.
Additionally, with probability p.jitter
, Gaussian noise with mean zero
and standard deviation jitter.sd
is added to the second coordinate.
doLinearProjectionMutation(coords, pm = 0.1, p.jitter = 0, jitter.sd = 0, ...)
coords | [ |
---|---|
pm | [ |
p.jitter | [ |
jitter.sd | [ |
... | [any] |
[matrix
] Mutated coordinates.