Может ли кто-нибудь проверить мое понимание этого кода в numpy.random.rand? - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь понять эту строку кода.Который пытается сгенерировать набор тестов / поездов.

msk = np.random.rand(len(df)) < 0.8

Насколько я понимаю, numpy.random.rand(len(df)) возвращает массив чисел между [0,1) равномерного распределения и теми, которые удовлетворяют <0,8. </p>

что каждый номер представляет в массиве?например: 0,001.0.888, это процентиль данных?поэтому 0,001 => эти данные меньше 0,001 процента от набора данных?

После этого мы получаем массив логических объектов, а затем создаем наборы тестов и наборов.cdf - более простой фрейм данных.

train = cdf[msk]
test = cdf[~msk]

в этом коде для каждого столбца в cdf соответствует ли он каждому логическому объекту в массиве msk, и если он равен True, он берет эту строку и помещает ее в набор поездов?и если ложно в тестовом наборе?

Я хочу знать, правильно ли мое понимание.Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2019

numpy.random.rand(len(df)) случайным образом генерирует len(df) числа из равномерного (0, 1) распределения, а не из нормального распределения!

Кроме этого, вы в значительной степени получили его.

msk - логический массив, где msk[i] равно True, если i-е значение, случайно сгенерированное np.random.rand, меньше 0.8.msk[i] равно False, если i-е значение, сгенерированное np.random.rand, больше или равно 0.8.

Если вам все еще трудно понять это, я бы рекомендовал сначала создатьслучайные числа rands = np.random.rand(len(df)) и, взглянув на них, затем создадим маску msk = rands < 0.8.Сравнивая rands и msk, вы должны четко видеть их соотношение.

~msk переворачивает True на False и наоборот, так что да, значения cdf гдеmsk is True назначены массиву train, а значения, где msk False, присвоены test.

При такой настройке вы ожидаете около 80% ваших данных, cdf, содержится в train, а остальные ~ 20% содержатся в test.

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