Я пытаюсь повторно генерировать «случайные» последовательности Соболя, но получаю то же самое последовательность каждый раз. Прочитав документацию, я предположил, что повторные вызовы дадут мне другую последовательность («Чтобы продолжить существующий дизайн, дополнительные очки можно получить, снова вызвав random_base2».)
Вот мой код :
Код: Выделить всё
import scipy
engine2 = scipy.stats.qmc.Sobol(d=1, scramble=True)
sample_qmc1 = engine2.random_base2(m=14)
print(sample_qmc1)
sample_qmc2 = engine2.random_base2(m=14)
print(sample_qmc2)
Код: Выделить всё
[[0.2534843 ]
[0.884218 ]
[0.69113704]
...
[0.69106254]
[0.88420477]
[0.25347106]]
[[0.25342032]
[0.88416122]
[0.69107275]
...
[0.69111674]
[0.88426601]
[0.2535251 ]]
reset() не помогает, я получаю ту же последовательность. Переход на random() тоже не помогает. Использование выборки меньшего размера, похоже, работает.
Если я добавлю эту строку:
Код: Выделить всё
sample_qmc3 = engine2.random_base2(m=14)
Код: Выделить всё
ValueError: The balance properties of Sobol' points require n to be a power of 2. 24576 points have been previously generated, then: n=24576+2**14=40960. If you still want to do this, the function 'Sobol.random()' can be used.
Я использую scipy 1.14.1
У кого-нибудь есть идеи, как я могу генерировать уникальные последовательности Соболя?
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-in-scipy
Мобильная версия