Πώς να δημιουργήσετε τυχαίους αριθμούς από τη διανομή Beta στο Numpy

1
Πώς να δημιουργήσετε τυχαίους αριθμούς από τη διανομή Beta στο Numpy

Σε αυτό το σεμινάριο, θα μάθουμε πώς να δημιουργείτε τυχαίους αριθμούς από τη διανομή Beta στην Python χρησιμοποιώντας το Numpy. Θα χρησιμοποιήσουμε το αντικείμενο Random Generator του Numpy με. Η συνάρτηση beta() της τυχαίας μονάδας για τη δημιουργία τυχαίων αριθμών από τη διανομή beta.

Θα ξεκινήσουμε μαθαίνοντας τα βασικά της διανομής Beta. Στη συνέχεια θα μάθουμε πώς να δημιουργήσουμε έναν απλό τυχαίο αριθμό, έναν 1_D πίνακα τυχαίων αριθμών και έναν 2-D πίνακα ή πίνακα τυχαίων αριθμών από τη διανομή Beta χρησιμοποιώντας τη συνάρτηση beta() του Numpy.

Τι είναι η Beta Distribution

Η κατανομή βήτα είναι μια συνεχής κατανομή πιθανότητας που ορίζεται στο διάστημα [0, 1] και χρησιμοποιείται συνήθως για τη μοντελοποίηση της πιθανότητας επιτυχίας σε μια διωνυμική διαδικασία (δηλαδή, μια σειρά από ανεξάρτητα συμβάντα δύο αποτελεσμάτων). Παραμετροποιείται από δύο παραμέτρους σχήματος, την άλφα και τη βήτα, οι οποίες ελέγχουν το σχήμα της κατανομής.

Η διανομή beta είναι χρήσιμη/δημοφιλής για μερικούς λόγους. Αφού ορίζεται στο διάστημα [0, 1], είναι πολύ κατάλληλο για πιθανότητες μοντελοποίησης. Επίσης, ανάλογα με τις τιμές του άλφα και του βήτα, είναι ευέλικτο να αλλάζει το σχήμα της διανομής Βήτα. Ακολουθεί ένα παράδειγμα διαφορετικών σχημάτων t κατανομής βήτα και των αντίστοιχων παραμέτρων τους.

Σχήματα κατανομής Βήτα και οι παράμετροί τους
Σχήματα κατανομής Βήτα και οι παράμετροί τους

Ας ξεκινήσουμε με τη φόρτωση του Numpy.


import numpy as np

Η βασική σύνταξη της δημιουργίας τυχαίων αριθμών στο Numpy είναι αυτή, όπου a, b είναι οι παράμετροι άλφα και βήτα και ελέγχει το σχήμα της κατανομής βήτα.


random.Generator.beta(a, b, size=None)

Δημιουργία τυχαίου αριθμού από διανομή beta

Θα δημιουργήσουμε έναν τυχαίο αριθμό από τρία διαφορετικά σετ παραμέτρων άλφα (α) και βήτα (β).

Αρχικά ας ορίσουμε το αντικείμενο τυχαίας γεννήτριας στιγμιαίας δημιουργίας χρησιμοποιώντας τη συνάρτηση default_rng() με έναν σπόρο.


rng = np.random.default_rng(2022)

Μπορούμε να δημιουργήσουμε έναν τυχαίο αριθμό με a = 2 και b = 2


rng.beta(a=2, b=2)

0.1706219925464454

Εδώ δημιουργούμε έναν τυχαίο αριθμό με a = 1 και b = 5 χρησιμοποιώντας τη συνάρτηση beta() του Numpy.


rng.beta(a=1, b=5)

0.19496266482763683

Εδώ δημιουργούμε έναν τυχαίο αριθμό με a = 5 και b = 1 χρησιμοποιώντας τη συνάρτηση beta() του Numpy.


rng.beta(a=5, b=1)

0.9043150823003117

Δημιουργία ενός μονοδιάστατου πίνακα τυχαίων αριθμών από τη διανομή Beta

Εδώ χρησιμοποιούμε τις ίδιες παραμέτρους σχήματος a και b όπως πριν, αλλά αυτή τη φορά καθορίζουμε το όρισμα size=10 για να δημιουργήσουμε 10 τυχαίους αριθμούς από τη διανομή βήτα.


rng.beta(a=2, b=2,  size=10)

array([0.57780648, 0.35569291, 0.41385092, 0.60801077, 0.68471871,
       0.5471684 , 0.91006246, 0.60178419, 0.78839202, 0.37842288])

Εδώ ο πίνακας 1-d με τυχαίους αριθμούς από τη διανομή βήτα δημιουργείται χρησιμοποιώντας a =5 και b=1.


rng.beta(a=5, b=1,  size=10)

array([0.92888649, 0.97324572, 0.98370505, 0.8273475 , 0.90235001,
       0.82462658, 0.97997441, 0.9662021 , 0.81329731, 0.92557757])

Εδώ ο πίνακας 1-d με τυχαίους αριθμούς από διανομή βήτα δημιουργείται χρησιμοποιώντας a =1 και b=5.


rng.beta(a=1, b=5,  size=10)

array([0.06307234, 0.18047868, 0.00069429, 0.30016567, 0.16456846,
       0.06142862, 0.10499444, 0.0668597 , 0.24838117, 0.0554329 ])

Και στα δύο παραπάνω παραδείγματα μπορούμε να δούμε ξεκάθαρα την τάση της λοξής προς το 1 και το 0 είναι ξεκάθαρη.

Δημιουργία ενός δισδιάστατου πίνακα τυχαίων αριθμών από τη διανομή Beta

Σε αυτά τα παραδείγματα παρακάτω, δείχνουμε πώς να δημιουργήσετε έναν πίνακα διαστάσεων 3×3 με δείγματα τυχαίων αριθμών από διανομή βήτα.

Πρώτον, χρησιμοποιούμε a=1 και b=5 ως παραμέτρους σχήματος για να δημιουργήσουμε τυχαίους αριθμούς μεταξύ 0 και 1, αλλά λοξούς προς το 0 με τη συνάρτηση beta() του Numpy.


rng.beta(a=1, b=5,  size=(3,3))

array([[0.09601718, 0.22013485, 0.3938391 ],
       [0.13066181, 0.03355825, 0.13609113],
       [0.07612266, 0.05309854, 0.12993868]])

Πρώτον, χρησιμοποιούμε a=5 και b=1 ως παραμέτρους σχήματος για τη δημιουργία τυχαίων αριθμών μεταξύ 0 και 1, αλλά λοξοί προς το 1 με τη συνάρτηση beta() του Numpy.


rng.beta(a=5, b=1,  size=(3,3))
array([[0.54353228, 0.69803459, 0.98964326],
       [0.91476447, 0.85729941, 0.61320125],
       [0.95792108, 0.95349669, 0.80066977]])

Schreibe einen Kommentar