Создать случайные данные, которые увеличиваются к определенной точке - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь создать случайные данные между двумя точками данных. Я хочу в целом усиливающуюся тенденцию к определенной точке. Я примерно нарисовал то, что я хочу на диаграмме ниже:

enter image description here

Я опробовал несколько решений, включая усеченное нормальное распределение, но, похоже, не могу этого добиться.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Вы можете добавить белый шум к данным. Он работает лучше в сочетании с другими показанными методами, но также может использоваться сам по себе, если вам не нужно иметь много структуры в вашем шуме:

x = np.linspace(0, x_max, n_points)
y = np.linspace(0, y_max, n_points) + np.random.normal(size=n_points)

Если вы хотите, чтобы конечные точки были зафиксированы, вы должны держать их постоянными:

y = np.linspace(0, y_max, n_points)
y[1:-1] += np.random.normal(size=n_points - 2)
0 голосов
/ 20 января 2019

Еще один способ сделать это - создать отрезок, который начинается и заканчивается в нужных позициях. Затем возьмите его середину и переместите случайное количество вверх или вниз. Теперь возьмите средние точки двух вновь созданных отрезков и переместите их случайным образом вверх или вниз. Повторяйте этот процесс до тех пор, пока вы не достигнете нужного разрешения.

Это называется алгоритмом смещения средней точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...