Bevezetés a véletlenszám-generátorba R
Az R-ben szereplő véletlenszám-generátor fontos elem az adattudományban és a statisztika véletlenszerű számokat generál, vagy véletlenszerű elemeket generál. Például véletlenszerű emberek kiválasztása a népesség adatkeretéből az adatok elemzése és betekintés céljából. A véletlen számok előállításának egyszerű módja a függvények használata. A véletlen számok különféle területeken hasznosak, mint például a modellezés, az adattudomány és a mintavétel (statisztika). A hálózat bővítésével a véletlenszám-generátorban végzett kutatás fejlesztése szükségesnek tűnik. A véletlen számok kulcsszerepet játszanak a biztonsági rendszerekben, és kifinomult rendszert biztosítanak a hálózat biztonságának szigorításához.
Az alábbiakban bemutatunk egy példát az 50 és 1 és 99 közötti érték előállítására és kinyomtatására a runif () függvény használatával.
Kód
RandomNum <- runif(50, 1, 99)
RandomNum
Kimenet:
A véletlenszám-generátor segítséget nyújt számjegyek olyan sorozatának elkészítésében, amely menthető funkcióként, és később felhasználható a műveletek során. A véletlenszám-generátor valójában nem állít elő véletlenszerű értékeket, mivel ehhez SEED-nek nevezett kiindulási értéket igényel. A véletlenszám-generáció a SET.SEED () funkciókkal vezérelhető. A SET.SEED () parancs egész számot használ a véletlen generációk számának elindításához. Ezenkívül a generált véletlenszám-sorozat menthető és később felhasználható.
Például, a kódot 10 mintavételhez használjuk, amelyek száma 1 és 100 között van, és megismételjük párszor.
A SET.SEED () első alkalommal a vetőmagnál 5-nél kezdődik, másodszor pedig a 12-es vetőmag. Tíz véletlenszámot generáltak minden iterációhoz.
Kód
set.seed(5) # random number will generate from 5
TenRandomNumbers <- sort(sample.int(100, 10))
TenRandomNumbers
Kimenet:
Kód:
set.seed(12) # random number will generate from 12
TenRandomNumbers <- sort(sample.int(100, 10))
TenRandomNumbers
Kimenet:
Véletlenszám-generátor funkciói
Az R-ben beépített funkciók vannak, amelyek véletlen számok halmazát generálják a standard eloszlásokból, mint a normál, egyenletes, binomiális eloszlások stb. A következő szakaszban különféle funkciókat fogunk látni, például runif (), rnorm (), rbinom () és rexp () véletlen számok előállításához.
1. Egyenletesen eloszlatott véletlen számok
Az egyenletes eloszlású véletlenszám előállításához a runif () -et használjuk. Alapértelmezett tartomány: 0–1. Először meg kell adnunk a létrehozandó számot. Ezenkívül meg lehet határozni az eloszlás tartományát a max és min argumentum segítségével.
Kód
# To get 5 uniformly distributed Random Numbers
runif(5)
Kimenet:
Kód
# Get 5 random Numbers from 5 to 99
runif(5, min=5, max=99)
Kimenet:
Kód
#To generate 5 integers from 0 to 100
floor(runif(5, min=0, max=101))
Kimenet:
Kód
# Generating integers without replacement
sample(1:100, 5, replace=FALSE)
Kimenet:
2. Normál eloszlású véletlen számok
A normál eloszlásból számok előállításához az rnorm () értéket kell használni. Ahol az átlag 0 és a szórás 1. Először meg kell határoznunk a létrehozandó számot. Ezen túlmenően az átlag és az SD (szórás) argumentumok is meghatározhatók.
Kód
rnorm(5)
Kimenet:
Kód
# using a different mean and standard deviation
rnorm(4, mean=70, sd=10)
Kimenet:
Kód
# histogram of the numbers to verify the distribution
X <- rnorm(400, mean=70, sd=10)
hist(X)
Kimenet:
Az rnorm () segítségével normál eloszlott véletlen számot állíthatunk elő
3. Binomális véletlen számok
A binomiális véletlen számok véletlen számok diszkrét halmaza. A binomiális szám kiszámításához n értékét a kívánt kísérleti számra változtatjuk. Például az 5. próba, ahol n = 5
Kód:
n= 5
p=.5
rbinom(1, n, p)
# 1 success in 5 trails
n= 5
p=.5
rbinom(19, n, p) # 10 binomial numbers
Kimenet:
4. Exponenciálisan eloszlott véletlen számok
Az exponenciális eloszlást az elektromos alkatrészek élettartamának leírására használják. Például egy elektromos lámpa átlagos élettartama 1500 óra.
Kód:
x=rexp(100, 1/1500)
hist(x, probability=TRUE, col= gray(.9), main="exponential mean=1500")
curve(dexp(x, 1/1500), add= T)
Kimenet:
Egész szám és lebegőpontos szám generálása
Most megtanuljuk, hogyan lehet véletlenszerű számokat generálni az R-ben elérhető két típusú számhoz. Egész szám és lebegőpontos vagy lebegőpontos szám. R automatikusan felismeri a két kategóriát, és szükség szerint átmegy rajtuk. Az R egész szám az egész számból áll, amely lehet pozitív vagy negatív, míg a lebegőpontos szám valós számot tartalmaz. Olyan értékből áll, amely meghatározza a legközelebbi számjegyet a tizedes pontból. Az érték binárisan van megadva, és a jelzés elérhető az áthelyezhető bináris helyek számán. Véletlen egész számok előállításához a beépített minta () függvény megbízható és gyors. Az üzleti igények megkövetelik az adatok mintájának elemzését. A minta kiválasztásához R minta () funkcióval rendelkezik. Az 5 és 20 közötti véletlen egész számok előállításához a minta funkciókódját használjuk.
Kód
rn = sample(5:20, 5)
rn
Kimenet:
Az 5 véletlenszerű mintát generáljuk
A fenti példában öt értéket állítottunk elő az érvelés szerint. Láttuk, hogyan lehet kiválasztani egy véletlenszerű értékek alcsoportját R-ben. Valósidejű helyzetben véletlenszerű mintát kell létrehoznia egy meglévő adatkeretből. Az adatmérnökök mindennapi munkájuk során megválasztják az adatmintát megfigyelés céljából egy nagy adatkészletből.
Kód
Height_Weight_Data <- read.csv("test.csv") # to test this please download csv file
Height_Weight_Data
# Height_Weight_Data sample data frame; selecting a random subset in r
Sample <- Height_Weight_Data(sample(nrow(Height_Weight_Data), 5), ) # pick 5 random rows from dataset
Sample
Kimenet:
Véletlenszerű minta előállítása az adatkeretnevekből Height_Weight_Data formátumban
Néhány dolgot meg kell emlékezni a lebegőpontos számokra vonatkozóan.
- Bináris jellegűek.
- A képviselt valós szám korlátozott.
Most lássuk, hogyan generálható véletlenszerűen lebegő szám -10 és 10 között
Kód
Random <- runif(n=10, min=-10, max=10)
Random
Kimenet:
Véletlenszerű lebegőpontos számok generálása
A Runif () a véletlenszerű egységet jelenti. A fenti példában 10 véletlenszerűen elosztott számot derítettünk ki (-10: 10) között
Következtetés
Ebben a cikkben megvitattuk a véletlenszám-generátort R-ben és láthattuk, hogy a SET.SEED funkció hogyan használja a véletlenszám-generáció vezérlését. Láttuk, hogy a SEED használható reprodukálható véletlen számokhoz, amelyek képesek véletlen számok sorozatát előállítani, és egy véletlenszám-vetőmag-generátort beállítani a SET.SEED () segítségével. Az elemzés során alkalmanként a véletlenszerű számok előállítását igénylő statisztikai módszert alkalmazzák. Az R több funkcióval van felszerelve, például egységes, normál, binomiális, Poisson, exponenciális és gamma funkcióval, amely lehetővé teszi a leggyakoribb valószínűség-eloszlás szimulálását.
Ajánlott cikkek
Ez egy útmutató az R véletlenszám-generátorhoz. Itt tárgyaljuk a véletlenszám-generátor bevezetését és funkcióit az R-ben, a megfelelő példával együtt. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Lineáris regresszió R-ben
- Binomiális eloszlás R-ben
- Logisztikus regresszió R-ben
- Vonalas grafikon R-ben
- Útmutató a véletlenszám-generátorhoz Pythonban
- Véletlenszám-generátor C # -ben
- Véletlenszám-generátor a PHP-ben