Работая с машинным обучением или глубоким обучением, мы все, должно быть, сталкивались с модным словом «NumPy». Итак, что такое NumPy?

Согласно SciPy.org, NumPy - это фундаментальный пакет для научных вычислений на Python. Это библиотека Python, которая предоставляет объект многомерного массива, различные производные объекты (такие как маскированные массивы и матрицы) и набор процедур для быстрых операций с массивами, включая математические, логические, манипуляции с формами, сортировку, выбор, ввод-вывод. и т.п.

В машинном обучении и науке о данных иногда приходится работать со случайно сгенерированными данными. В этом блоге я расскажу о том, что делает NumPy.random.seed (который также называется np.random.seed или numpy.random.seed). Итак, приступим.

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

Что такое псевдослучайное число?

Как следует из названия, псевдослучайное число - это в значительной степени число, которое кажется случайным, но это не так. Непонятно, правда?

Хорошо. Это и есть. Префикс «псевдо» используется, чтобы отличить его от «истинного» случайного числа.

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

Насколько это вообще важно?

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

Если вход одинаковый, то и выход будет таким же.

ТАК РАБОТАЮТ КОМПЬЮТЕРЫ.

Тогда как мы можем генерировать случайные результаты с помощью компьютера?

Нам на помощь приходят псевдослучайные числа. Ученые-информатики создали набор алгоритмов для создания псевдослучайных чисел, названных генераторами псевдослучайных чисел.

Эти алгоритмы могут быть выполнены на компьютере.

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

Все, что вам нужно знать о Numpy.random.seed ()….

Теперь, когда вы знаете о псевдослучайных числах, я думаю, вы готовы работать с Numpy.random.seed (). Как обсуждалось ранее, генераторы псевдослучайных чисел помогают нам справиться с ограничением компьютеров, которые являются детерминированными. Один из таких способов - использовать библиотеку NumPy.

np.random.seed () используется для генерации случайных чисел. Функция np.random.seed предоставляет входные данные для генератора псевдослучайных чисел в Python. Это позволяет нам предоставить «начальное» значение генератору случайных чисел NumPy.

Синтаксис:

Чаще всего используется следующий синтаксис:

Здесь «np» означает NumPy.

«random» - это имя функции.

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

При использовании этого синтаксиса следует помнить, что «np» означает NumPy, а мы используем аббревиатуру NumPy. Но для этого нам нужно импортировать NumPy с кодом «import numpy as np».

Они действительно генерируют случайные числа?

Здесь я обсуждал, что np.random.seed () используется для генерации случайных чисел на компьютере, что само по себе является детерминированным. Но псевдослучайные генераторы полностью детерминированы. Они работают по алгоритму.

От чего зависит этот алгоритм? Начальное значение.

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

Примеры:

  1. Для правильного запуска функции сначала нам нужно сократить имя «NumPy».

2. Здесь мы собираемся использовать NumPy для генерации случайного целого числа. Для этого мы собираемся использовать функцию NumPy random randint (AKA, np.random.randint).

ВЫХОД:

Если мы запустим код еще раз, то получим тот же результат. Идите и проверьте это сейчас.

Итак, что именно мы должны поместить в качестве случайного числа?

В принципе, это не имеет значения.

Мы можем использовать numpy.random.seed(101), numpy.random.seed(4) или любое другое число.

Единственный важный момент, который нам нужно понять, это то, что использование разных семян приведет к тому, что NumPy будет создавать разные псевдослучайные числа. Вывод функции numpy.random будет зависеть от используемого вами начального числа.

Как np.random.seed () помогает в машинном обучении или глубоком обучении?

Машинное обучение и глубокое обучение требуют разделения наборов данных для обучения и тестирования.

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

В этом заключается важность np.random.seed () в ML / DL.

ЗАКЛЮЧЕНИЕ:

Короче говоря, важность numpy-функций в глубоком обучении и машинном обучении огромна. Я только что коснулся некоторых тем np.random.seed (). Если мы действительно хотим знать о NumPy, нам нужно знать множество функций. Это одна из них.

Планирую подробно рассказать и о других функциях.

А пока желаю приятного чтения ...