| | 08.09.2021

Использование случайности - важная часть настройки и оценки алгоритмов машинного обучения.

От случайной инициализации весов в искусственной нейронной сети до разделения данных на случайные наборы обучающих и тестовых данных, до случайного перемешивания обучающего набора данных при стохастическом градиентном спуске, генерация случайных чисел и использование случайности являются обязательными навыками.

В этом руководстве вы узнаете, как генерировать случайные числа и работать со случайными числами в Python.

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

  • Эта случайность может применяться в программах с помощью генераторов псевдослучайных чисел.
  • Как генерировать случайные числа и использовать случайность через стандартную библиотеку Python.
  • Как сгенерировать массивы случайных чисел через библиотеку NumPy.

Начните свой проектс моей новой книги «Статистика для машинного обучения», включающей пошаговые руководства и файлы исходного кода Python для всех примеров.

Давайте начнем.

Как сгенерировать случайные числа в Python

Фотография Харольда Литвилера, некоторые права защищены.

Обзор учебного пособия

Этот учебник разделен на 3 части; они есть:

  1. Генераторы псевдослучайных чисел
  2. Случайные числа со стандартной библиотекой Python
    1. Seed Генератор случайных чисел
    2. Случайные значения с плавающей запятой
    3. Случайные целые числа
    4. Случайные гауссовские значения
    5. Случайный выбор из списка
    6. Случайная подвыборка из списка
    7. Перемешать список в случайном порядке
    1. Seed Генератор случайных чисел
    2. Массив случайных значений с плавающей запятой
    3. Массив случайных целочисленных значений
    4. Массив случайных гауссовских значений
    5. Перемешать массив NumPy

    1. Генераторы псевдослучайных чисел.

    Источником случайности, который мы вводим в наши программы и алгоритмы, является математический трюк, называемый генератором псевдослучайных чисел.

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

    Перестановка данных и инициализация коэффициентов случайными значениями используют генераторы псевдослучайных чисел. Эти маленькие программы часто представляют собой функцию, которую вы можете вызвать и которая вернет случайное число. При повторном вызове они вернут новое случайное число. Часто также доступны функции обертки, которые позволяют получить случайность в виде целого числа с плавающей запятой, в пределах определенного распределения, в пределах определенного диапазона и т. Д.

    Номера генерируются последовательно. Последовательность детерминирована и засевается начальным номером. Если вы не указали явно генератор псевдослучайных чисел, он может использовать текущее системное время в секундах или миллисекундах в качестве начального числа.

    Ценность семени не имеет значения. Выбирайте все, что пожелаете. Важно то, что одно и то же заполнение процесса приведет к одной и той же последовательности случайных чисел.

    Давайте конкретизируем это на нескольких примерах.

    2. Случайные числа со стандартной библиотекой Python

    Стандартная библиотека Python предоставляет модуль random, который предлагает набор функций для генерации случайных чисел.

    Python использует популярный и надежный генератор псевдослучайных чисел под названием Mersenne Twister.

    В этом разделе мы рассмотрим ряд вариантов использования для генерации и использования случайных чисел и случайности с помощью стандартного API Python.

    Нужна помощь со статистикой для машинного обучения?

    Пройдите мой бесплатный 7-дневный ускоренный курс по электронной почте (с образцом кода).

    Нажмите, чтобы зарегистрироваться, а также получите бесплатную электронную версию курса в формате PDF.

    Seed Генератор случайных чисел

    Генератор псевдослучайных чисел - это математическая функция, которая генерирует последовательность почти случайных чисел.

    Для начала последовательности требуется параметр, называемый семенем. Функция является детерминированной, что означает, что при одном и том же начальном значении она каждый раз будет выдавать одну и ту же последовательность чисел. Выбор посевного материала значения не имеет.

    Функция seed () будет заполнять генератор псевдослучайных чисел, принимая целочисленное значение в качестве аргумента, например 1 или 7. Если функция seed () не вызывается до использования случайности, по умолчанию используется текущее системное время в миллисекунды от эпохи (1970).

    Пример ниже демонстрирует заполнение генератора псевдослучайных чисел, генерирует некоторые случайные числа и показывает, что повторное заполнение генератора приведет к созданию той же последовательности чисел.