Vijesti o Tehnologiji, Recenzije i Savjeti!

Kako vizualizirati slučajnu šumu s prilagođenim parametrima?

Napomena: Sljedeći članak će vam pomoći: Kako vizualizirati slučajnu šumu s prilagođenim parametrima?

Nasumična šuma ili šuma nasumičnog odlučivanja metoda je skupnog učenja temeljena na stablu za klasifikaciju i regresiju u području znanosti o podacima. Postoje različita područja poput bankarstva i e-trgovine u kojima se algoritam slučajne šume može primijeniti za donošenje odluka i predviđanje ponašanja i ishoda.

Osnovni koncept koji stoji iza algoritama slučajnih šuma sastoji se od različitih klasifikatora u jednom algoritmu. Tamo gdje se nasumična šuma sastoji od mnogih stabala odlučivanja u sebi, a stabla odlučivanja se pripremaju tehnikom koja se zove bagging ili bootstrap aggregating. Bagging ili bootstrap aggregating skupni je metaalgoritam koji poboljšava točnost algoritama strojnog učenja.

Iz gornjeg odlomka možemo pretpostaviti da izvedba nasumične šume ovisi o uvježbanosti stabala odlučivanja prikazanih ispod nje. Točnost nasumične šume generira se uzimanjem prosjeka ili srednje vrijednosti točnosti koju pruža svako stablo odlučivanja.

Povećanje broja stabala pod šumom može povećati točnost cijelog algoritma. Tamo gdje se nasumična šuma temelji na stablu odlučivanja, s druge strane, ona uklanja ograničenja stabla odlučivanja kao što smanjuje problem pretjeranog prilagođavanja modela. Scikit-learn pruža algoritam za implementaciju algoritma slučajne šume s manjim brojem konfiguracija.

Kako radi algoritam slučajne šume?

Prije nego krenemo u rad slučajne šume, od nas se traži da znamo o stablu odlučivanja. Zato što su stabla odlučivanja građevni blokovi nasumične šume. Kao što naziv sugerira, stablo odlučivanja temelji se na algoritmu gdje tvori strukturu sličnu stablu.

Dakle, u strukturi stabla odlučivanja tri glavne komponente sudjeluju u formiranju strukture nalik stablu.

    Čvor odluke. Čvor lista. Čvor korijena.

Kada algoritam stabla odlučivanja radi na podacima, on dijeli podatke u različite grane, a također se grana dijeli na različite grane. Ova segregacija se nastavlja do čvora lista. I konačni čvor lista ne može se dalje odvajati.

Slika ispod može predstavljati blok strukturu stabla odlučivanja.

Izvor slike

Na slici čvorovi predstavljaju značajke podataka koji će se koristiti za izradu predviđanja, a strelice predstavljaju grane i čvorove odluke povezane s lisnim čvorovima. Listni čvor sastoji se od rezultata koji je napravljen pomoću uzorka iz podataka.

Entropija i dobivanje informacija osnovne su funkcije stabla odlučivanja koje pomažu u izgradnji blokova stabla odlučivanja. Oni su također dio teorije informacija. Osnovno razumijevanje entropije i dobitka informacija pomoći će u pregledu stabla odlučivanja.

Entropija označava izračun nesigurnosti gdje je dobitak informacija mjera nesigurnosti uklonjene iz ciljne varijable.

U osnovi, dobivanje informacija koristi nezavisnu varijablu za dobivanje informacija o ciljanoj varijabli. Kako bi se procijenio dobitak informacija, algoritam izračunava entropiju nezavisne varijable i uvjetnu entropiju kada je nezavisna varijabla dana s zavisnom varijablom. U ovom slučaju, uvjetna entropija nezavisne varijable oduzima se od entropije nezavisne varijable.

Entropija i dobitak informacija važni su za razdvajanje grana u stablu odlučivanja.

Kasnije uzimamo primjer bilo kojeg proizvoda u supermarketu gdje korisnik kupuje artikle ovisno o značajkama i upotrebljivosti artikla. Dakle, ako ga uzmemo u stablo odlučivanja, značajke i upotrebljivost predstavljaju korijenski čvor i čvor odlučivanja. Konačna odluka hoće li ga korisnik kupiti ili neće predstavlja lisni čvor ili konačni čvor. Odluka ovisi o cijeni, upotrebljivosti i roku trajanja. Tada će izgledati stablo odlučivanja

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 1

Slučajna šuma

Kao što smo spomenuli, nasumična šuma se sastoji od različitih stabala odluka u njoj. A slučajna šuma koristi metodu pakiranja ili pokretanja za generiranje rezultata. Bagging je meta-algoritam ansambla koji uključuje odabir uzoraka podataka nasumično iz prostora podataka. Koji se zatim šalje različitim stablima odlučivanja i ta stabla odlučivanja proizvode različite rezultate. Najviše rangirani izlaz odabire se kao konačni izlaz.

Pakiranje

Slučajni šumski algoritam daje podatke stablima bootstrap agregacijom ili pakiranjem. Kao što naziv sugerira, pakiranje je tehnika u kojoj se podaci ponovno uzorkuju u manje vrećice kako bi se obučavao učenik stabla. Iz danih podataka s ovisnim i nezavisnim varijablama, bagging odabire nasumične uzorke i uklapa stabla u uzorke.

Za b = 1…, B:

    Uzorak, sa zamjenom, n primjera obuke iz X, Y; nazovite ih Xb, Yb. Uvježbajte klasifikacijsko ili regresijsko stablo fb na Xb, Yb.

Nakon obuke, predviđanja za nevidljive uzorke x’ mogu se napraviti usrednjavanjem predviđanja iz svih pojedinačnih regresijskih stabala na x’:

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 2

ili uzimanjem većine glasova u slučaju klasifikacijskih stabala.

Budući da pakiranje u vreću smanjuje varijancu modela bez povećanja težine, povećava izvedbu modela. U usporedbi s jednim stablom odlučivanja gdje stablo postaje vrlo osjetljivo zbog buke u skupu za obuku, nasumična šuma uzima prosječnu izvedbu mnogih stabala.

Većina nasumičnih stabala slijedi proceduru koja se naziva označavanje značajki. Razlog zašto se naziva značajka bootstrapping je taj što distribuira važne značajke skupa podataka na većinu stabala tako da kombinirani rezultati koje daje stablo mogu postati korelirani s rezultatima drugog stabla.

Preporuča se da se √p značajke mogu koristiti za obuku nasumičnog šumskog klasifikatora u svakoj podjeli i p/3 značajke se mogu koristiti za obuku slučajne šumske regresije u svakom razdvajanju ako je broj značajki p.

U pythonu, scikit-learn pruža implementaciju nasumičnih šumskih klasifikatora i regresije.

Možete jednostavno implementirati model pomoću sljedećeg koda.

model = RandomForestClassifier()

U koje možete uklopiti sljedeće parametre. Ovdje raspravljam o nekim važnim parametrima, za više informacija o parametrima možete otići na ovu vezu

    n_estimators: broj stabala koje želite stvoriti ispod šume, mora biti cjelobrojna vrijednost.criterion: ovaj parametar mjeri kvalitetu podjele. Možete koristiti “gini” za gini nečistoću ili možete koristiti “entropiju” za informacijski dobitak. max_depth: ovo definira dubinu stabla što znači dubinu od korijenskog čvora do lisnog čvora. Može biti cijeli broj ili float vrijednost random_state: koristimo ga za kontrolu slučajnosti postupka pakiranja u vrećice i uzorkovanja značajki. mora biti cjelobrojna vrijednost.

Implementirao sam nasumični šumski klasifikator u scikit learnu danom skupu podataka o raku dojke u Wisconsinu u kojem imamo sljedeće dvije klase:

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 3

I sljedeće karakteristike.

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 4

Glavna briga o bilo kojoj slučajnoj šumi dolazi kada želimo znati nešto o modelu. Nakon što smo dobro definirali sve stvari prema podacima, samo želimo znati više o modelu i kako je funkcionirao u pozadini. Kako su različita stabla istrenirana i ako stablo ima bolje rezultate, kako ga možemo izdvojiti iz nasumične šume?

U ovoj situaciji možemo koristiti export_graphviz iz biblioteke sklearn.tree za vizualizaciju šume i stabla. Vizualizacijom ćemo dobiti sve odgovore na svoja pitanja. Neke od vizualizacija koje sam implementirao su sljedeće.

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 5

Ovdje možemo vidjeti 4 drveće iz naše slučajne šume. Veličina slike je toliko velika da nije jasna u članku čitatelj može pristupiti ovoj poveznici za bolju vizualizaciju grafikona.

Također možemo izdvojiti stabla iz nasumične šume. Rezultat ekstrakcije stabla je sljedeći.

Kako vizualizirati slučajnu šumu s prilagođenim parametrima? 6

Ovdje možemo vidjeti sliku jednog stabla odlučivanja iz nasumične šume.

U bilo kojoj situaciji, ako zahtijevamo najbolje rezultate korištenjem nasumično odabranih uzoraka iz skupa podataka, ovom vizualizacijom možemo znati koje stablo ima dobre rezultate i s kojim uzorkom podataka.

I može lako izdvojiti stablo pomoću sljedećeg koda.

rf = RandomForestClassifier() # prvo stablo odlučivanja Rf.estimators_[0]

Ovdje u ovom članku vidjeli smo kako nasumična šuma skuplja stablo odluke i agregaciju pokretačkog sustava sa sobom. a vizualizirajući ih upoznali smo model. Ponekad u testiranju postaje vrlo važno znati o pozadini procesa ako se dogodi bilo koji kvar. Algoritmi u hrpi algoritama ili programa kojima se ne može pristupiti u trenutku obrade nazivaju se algoritm crne kutije, u našem slučaju, stablo odlučivanja je bio primjer algoritma crne kutije kojem smo pristupili i vidjeli kako radi. Potičem čitatelje da koriste postupke u svojim problemima iz stvarnog života kako bi se bolje upoznali s algoritmom slučajne šume.

Reference: