Представление только подмножества условий - PullRequest
0 голосов
/ 29 октября 2018

У меня есть простой эксперимент с 3 блоками. Вместо того, чтобы помещать стимулы (слова) в три разных файла, я помещаю их в один файл и хочу использовать «выбранные строки», чтобы назначать их различным задачам (блокам). Ниже поток.

[selected rows: np.random.choice(15, size = 5, replace = False)]

enter image description here

Проблема в том, что после 5 попыток (первое условие уровня блока) все слова будут переставлены, так что слова, появившиеся в блоке 1, могут также появиться в блоке 2 / блоке 3.

Существуют ли какие-либо решения для достижения этого, если слово использовалось в блоке, то оно не будет появляться снова в следующих блоках? Большое спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

Проблема, вероятно, возникает из-за того, что вы эффективно рандомизируете несколько раз: как с выбором подмножества строк, так и с рандомизацией самих циклов.т.е. ваши циклы должны быть установлены на sequential, а не random, потому что вы сами обрабатываете рандомизацию, выбирая подмножество строк.

Даже если вы это сделаете, у вас теперь есть вторая проблема:если вы выберете подмножество из 5 строк для каждого блока с помощью np.random.choice(), эти выборки будут независимыми, и поэтому весьма вероятно, что некоторое переменное число строк будет выбрано несколько раз.Итак, вам нужно убедиться, что строки выбраны без замены во всем эксперименте.

Я бы предложил, чтобы вы случайным образом перемешали все 15 индексов строк в списке, а затем применили подмножества этого списка вкаждый блок.Таким образом, вы можете быть уверены, что не будет множественного выбора строк.Например:

row_order = range(15)
np.random.shuffle(row_order)

Затем в каждом из трех блоков вы будете использовать эти подмножества:

row_order[0:5]
row_order[5:10]
row_order[10:15]

Это дает вам случайный выбор в каждом блоке, но без дублирования строк.

...