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

У меня есть вектор метки столбца 1D, (200,), который имеет 2 класса (1, -1), классы случайным образом распределены в векторе (-1; 1; 1; -1; ...; 1) ^ T.

Я бы хотел перевернуть метки с вероятностью 20%. Таким образом, шанс перевернуть метку от 1 до -1 составит 20%, и наоборот.

Спасибо за ваши ответы

1 Ответ

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

Попробуйте следующее:

 import random

 n = len(labels)
 percent = 0.2

 partly_flipped = [ -1*labels[i] if i in random.sample(list(range(n)),int(percent*n)) else labels[i] for i in range(n) ]
...