В първата публикация на тази минисерия обяснихме защо трябва да генерираме произволни набори от данни, за да обучим нашите модели за машинно обучение. В днешната публикация ще видим 5 различни начина да го направим с Python.

всеки

Случайен модул

В модула случайни От стандартната библиотека на Python можем да намерим набор от функции, които позволяват получаване на случайни числа (за да бъдат строги, те всъщност са „псевдослучайни“), по различни начини.

За целта използва генератор на псевдослучайни числа (PRNG), известен като Mersenne Twister. Генерира произволно число от друго дадено число като входна или начална стойност. Става въпрос за a детерминиран генератор, тъй като от едно и също семе винаги се получава един и същ резултат.

В предишната публикация вече коментирахме, че тези псевдослучайни числа са напълно валидни за повечето от проблемите, които моделираме с помощта на алгоритми за машинно обучение. Те обаче не са полезни за работа в криптография и среда за сигурност. В тези случаи се използва модулът „тайни“, който позволява генерирането на наистина случайни числа (генератори на истински случайни числа (TRNG).

5 различни начина за генериране на произволни числа

  • randint (): връща цяло число между посочените стойности. Долната и горната граници също могат да се появят между върнатите стойности. За десетични числа (float) се използва функцията uniform ()
  • randrange (): връща цели числа между начална и крайна стойност, разделени със специфична стойност "стъпка"
  • choice () и choices (), ви позволяват да избирате произволно стойности от списък. Те вземат списък като аргумент и произволно избират стойност (или стойности в случай на избор ()). Също така може да се приложи матрица с тегла, за да се увеличи вероятността да бъде избрана определена стойност.
  • shuffle (): "разбърква" списък. Тази функция 'смесва' или произволно променя реда на елементите в списък, преди да избере един от тях
  • gauss (): генерира набор от случайни числа, чието разпределение на вероятностите е Гаусово или нормално разпределение (много често в реалния свят). Има подобни функции за други различни дистрибуции.

Практически примери

Нека да видим няколко прости примера за приложение на предишните функции. В ръководството на Python можете да намерите цялата информация за тези и другите функции на произволния модул.

Ние помним, че както при всички библиотеки, преди да използвате функция, функцията или цялата библиотека трябва да бъдат импортирани.

Функция Randint ()

Функцията randint (a, b) връща цяло число между a и b включително. a трябва да е по-малко или равно на b. Например, за да генерираме произволно число от 1 до 10, ще сложим:

Функция Randrange ()

Функцията randrange () поддържа до три аргумента (начало, край, стъпка). Например.

Функции за избор (), избор ()

Тези функции ви позволяват да изберете един (или повече) елементи от списък. Също така, както в този пример, той позволява работа със символни низове (низове)

Ако искаме един от елементите да има по-голяма вероятност да бъде избран, прилагаме матрица „тежест“. В този пример искаме да вземете 10 комбинации от 3 цвята и синият цвят да е 5 пъти по-вероятно от останалите:

Функция разбъркване ()

С функция Разбъркване, „Декове“ или произволно преместване на елементите от всеки списък.

Функция на Гаус ()

Функцията gauss () използва средно и стандартно отклонение като аргументи за генериране на произволни стойности, които следват нормално разпределение. В този пример генерираме набор от (псевдо) -случайни числа, които следват разпределение на Гаус, със средно 0 и стандартно отклонение 1.

Ако искаме да видим графиката, например за 1000 стойности,

Ако искате да опитате да внедрите свой собствен генератор на случайни числа колкото е възможно по-вярно Raspberry Pi, не пропускайте тази друга публикация.

За да сте в крак с LUCA, посетете нашия уебсайт, абонирайте се за LUCA Data Speaks или ни следвайте в Twitter, LinkedIn и YouTube.