Я пытаюсь проверить вероятность случайной случайной кластеризации данных. Мощным способом это является симуляция Монте-Карло, в которой ассоциации между данными и группами случайным образом переназначаются много раз (например, 10 000), а метрика кластеризации используется для сравнения фактических данных с имитациями для определения ap значение.
У меня есть большая часть этой работы, с указателями, сопоставляющими группировку с элементами данных, поэтому я планирую случайное переназначение указателей на данные. ВОПРОС: что такое быстрый способ выборки без замены, чтобы каждый указатель был случайным образом переназначен в реплицированных наборах данных?
Например (эти данные являются просто упрощенным примером):
Данные (n = 12 значений) - Группа A: 0,1, 0,2, 0,4/Группа B: 0,5, 0,6, 0,8/Группа C: 0,4, 0,5/Группа D: 0,2, 0,2, 0,3, 0,5
Для каждого реплицированного набора данных я бы имел одинаковые размеры кластеров (A = 3, B = 3, C = 2, D = 4) и значения данных, но переназначил значения для кластеров.
Чтобы сделать это, я мог генерировать случайные числа в диапазоне 1-12, назначить первый элемент группы A, затем генерировать случайные числа в диапазоне 1-11 и назначать второй элемент в группе A и т.д. Переустановка указателя выполняется быстро, и я буду предварительно распределять все структуры данных, но выборка без замены кажется проблемой, которая могла быть решена много раз раньше.
Предпочитаемая логика или псевдокод.