V tem članku bomo videli, kako zgraditi a Naključni gozdni klasifikator uporabljati Knjižnica Scikit-Learn od Programski jezik Python in za to uporabljamo Nabor podatkov IRIS kar je precej pogost in znan nabor podatkov.
Naključni gozd
The Naključni gozd ali Random Decision Forest je nadzorovan algoritem strojnega učenja, ki se uporablja za klasifikacijo, regresijo in druga opravila z uporabo odločitvenih dreves. Naključni gozdovi so še posebej primerni za ravnanje z velikimi in zapletenimi nabori podatkov, obravnavanje visokodimenzionalnih prostorov funkcij in zagotavljanje vpogleda v pomembnost funkcij. Zaradi zmožnosti tega algoritma, da ohranja visoko napovedno natančnost in hkrati zmanjša prekomerno opremljanje, je priljubljena izbira na različnih področjih, vključno s financami, zdravstvenim varstvom in analizo slik, med drugim.
Naključni gozdni klasifikator
Klasifikator naključnega gozda ustvari a set od odločitvena drevesa iz naključno izbrane podmnožice učnega nabora. To je niz dreves odločanja (DT) iz naključno izbrane podmnožice učnega nabora, nato pa zbira glasove različnih dreves odločanja, da se odloči o končni napovedi.
Naključni gozdni klasifikator
Poleg tega lahko naključni gozdni klasifikator obravnava naloge klasifikacije in regresije, njegova zmožnost zagotavljanja rezultatov pomembnosti lastnosti pa je dragoceno orodje za razumevanje pomena različnih spremenljivk v naboru podatkov.
Kako deluje naključna klasifikacija gozdov
Naključna klasifikacija gozdov je tehnika učenja v skupini, zasnovana za izboljšanje natančnosti in robustnosti nalog klasifikacije. Algoritem med usposabljanjem zgradi množico odločitvenih dreves in izpiše razred to je način klasifikacijskih razredov. Vsako odločitveno drevo v naključnem gozdu je sestavljeno z uporabo podmnožice podatkov o usposabljanju in naključne podmnožice funkcij, ki uvajajo raznolikost med drevesi, zaradi česar je model bolj robusten in manj nagnjen k prekomernemu opremljanju.
Algoritem naključnega gozda uporablja tehniko, imenovano bagging (Bootstrap Aggregating), da ustvari te raznolike podmnožice.
V fazi usposabljanja vsak drevo je zgrajen z rekurzivnim razdelitvijo podatkov na podlagi funkcij. Pri vsakem razcep, algoritem izbere najboljšo lastnost iz naključne podmnožice in optimizira pridobitev informacij ali nečistočo Gini. Postopek se nadaljuje, dokler ni izpolnjen vnaprej določeni kriterij zaustavitve, kot je doseganje največje globine ali najmanjše število vzorcev v vsakem vozlišču lista.
shweta tiwari igralec
Ko je naključni gozd usposobljen, lahko naredi napovedi, pri čemer uporabi glasove vsakega drevesa za razred in razred z največ glasovi postane predvideni razred za vhodne podatke.
Izbira funkcij v naključnih gozdovih
Izbira funkcije v Random Forests je neločljivo vgrajen v konstrukcijo posameznih odločitvenih dreves in proces združevanja.
Med fazo usposabljanja je vsako drevo odločitev zgrajeno z uporabo naključne podmnožice funkcij, kar prispeva k raznolikosti med drevesi. Postopek, znan kot vrečanje funkcij, pomaga preprečiti prevlado katere koli posamezne funkcije in spodbuja bolj robusten model.
Algoritem oceni različne podmnožice funkcij na vsaki delilni točki in izbere najboljšo funkcijo za razdelitev vozlišča na podlagi meril, kot sta pridobivanje informacij ali nečistoča Gini. Posledično naključni gozdovi naravno vključujejo obliko izbire funkcij, ki zagotavljajo, da ima skupina koristi od raznolikega nabora funkcij za izboljšanje posploševanja in zmanjšanje prekomernega opremljanja.
Naključni gozdni klasifikator v strojnem učenju
1. korak: nalaganje nabora podatkov
python3
# importing required libraries> # importing Scikit-learn library and datasets package> from> sklearn>import> datasets> # Loading the iris plants dataset (classification)> iris>=> datasets.load_iris()> |
>
>
2. korak: Preverjanje vsebine nabora podatkov in imen funkcij, ki so v njem.
python3
print>(iris.target_names)> |
jsp javatpoint
>
>
Izhod:
[‘setosa’ ‘versicolor’ ‘virginica’]>
python3
print>(iris.feature_names)> |
>
>
Izhod:
[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]>
3. korak: Testna delitev vlaka
python3
# dividing the datasets into two parts i.e. training datasets and test datasets> X, y>=> datasets.load_iris( return_X_y>=> True>)> # Splitting arrays or matrices into random train and test subsets> from> sklearn.model_selection>import> train_test_split> # i.e. 70 % training dataset and 30 % test datasets> X_train, X_test, y_train, y_test>=> train_test_split(X, y, test_size>=> 0.30>)> |
>
>
4. korak: uvozite modul Random Forest Classifier.
python3
programiranje v nizih c
# importing random forest classifier from assemble module> from> sklearn.ensemble>import> RandomForestClassifier> import> pandas as pd> # creating dataframe of IRIS dataset> data>=> pd.DataFrame({>'sepallength'>: iris.data[:,>0>],>'sepalwidth'>: iris.data[:,>1>],> >'petallength'>: iris.data[:,>2>],>'petalwidth'>: iris.data[:,>3>],> >'species'>: iris.target})> |
>
>
Pregled nabora podatkov
python3
# printing the top 5 datasets in iris dataset> print>(data.head())> |
>
>
'zidarska formula'
Izhod:
sepallength sepalwidth petallength petalwidth species 0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0>
5. korak: Usposabljanje modela
python3
# creating a RF classifier> clf>=> RandomForestClassifier(n_estimators>=> 100>)> # Training the model on the training dataset> # fit function is used to train the model using the training sets as parameters> clf.fit(X_train, y_train)> # performing predictions on the test dataset> y_pred>=> clf.predict(X_test)> # metrics are used to find accuracy or error> from> sklearn>import> metrics> print>()> # using metrics module for accuracy calculation> print>(>'ACCURACY OF THE MODEL:'>, metrics.accuracy_score(y_test, y_pred))> |
>
>
Izhod:
ACCURACY OF THE MODEL: 0.9238095238095239>
6. korak: Napovedi
Python3
# predicting which type of flower it is.> clf.predict([[>3>,>3>,>2>,>2>]])> |
>
>
Izhod:
array([0])>
To pomeni, da je svilnata tip cveta, saj smo v našem naboru podatkov dobili tri vrste ali razrede: Setosa, Versicolor in Virginia.
Preverite pomembne funkcije
Zdaj bomo z uporabo naslednjih vrstic kode odkrili tudi pomembne funkcije ali funkcije izbire v naboru podatkov IRIS.
python3
kaj je 10 od 60
# using the feature importance variable> import> pandas as pd> feature_imp>=> pd.Series(clf.feature_importances_, index>=> iris.feature_names).sort_values(ascending>=> False>)> feature_imp> |
>
>
Izhod:
petal length (cm) 0.440050 petal width (cm) 0.423437 sepal length (cm) 0.103293 sepal width (cm) 0.033220 dtype: float64>
Naključni gozdovi v Pythonu Scikit-Learn knjižnici priložen komplet hiperparametri ki vam omogočajo natančno nastavitev obnašanja modela. Razumevanje in izbira ustreznih hiperparametrov je ključnega pomena za optimizacijo delovanja modela.
Parametri naključnega gozdnega klasifikatorja
- n_ocenjevalcev: Število dreves v gozdu.
- Več dreves na splošno vodi do boljše zmogljivosti, vendar za ceno računskega časa.
- Začnite z vrednostjo 100 in jo po potrebi povečajte.
- max_depth: Največja globina vsakega drevesa.
- Globlja drevesa lahko zajamejo bolj zapletene vzorce, vendar tvegajo tudi prekomerno opremljanje.
- Eksperimentirajte z vrednostmi med 5 in 15 in razmislite o nižjih vrednostih za manjše nabore podatkov.
- max_features: Število funkcij, ki se obravnavajo za razdelitev na vsakem vozlišču.
- Skupna vrednost je 'sqrt' (kvadratni koren skupnega števila funkcij).
- Prilagodite glede na velikost nabora podatkov in pomembnost lastnosti.
- merilo: Funkcija, ki se uporablja za merjenje kakovosti razdelitve ('gini' ali 'entropija').
- Nečistoča Gini je pogosto nekoliko hitrejša, vendar sta oba na splošno podobna.
- min_samples_split: Minimalni vzorci, potrebni za razdelitev vozlišča.
- Višje vrednosti lahko preprečijo prekomerno opremljanje, previsoke pa lahko ovirajo kompleksnost modela.
- Začnite z 2 in po potrebi prilagodite.
- min_samples_leaf: Minimalni vzorci morajo biti na listnem vozlu.
- Podobno kot min_samples_split, vendar osredotočeno na listna vozlišča.
- Začnite z 1 in po potrebi prilagodite.
- bootstrap: Ali naj se uporabi zagonsko vzorčenje pri gradnji dreves (True ali False).
- Bootstrapping lahko izboljša varianco modela in posplošitev, vendar lahko nekoliko poveča pristranskost.
Prednosti naključnega gozdnega klasifikatorja
- Ansambelska narava naključnih gozdov, ki združuje več dreves, jih naredi manj nagnjene k prekomernemu opremljanju v primerjavi s posameznimi odločitvenimi drevesi.
- Učinkovit pri naborih podatkov z velikim številom funkcij in lahko dobro obravnava nepomembne spremenljivke.
- Naključni gozdovi lahko zagotovijo vpogled v pomembnost funkcij, pomagajo pri izbiri funkcij in razumevanju nabora podatkov.
Slabosti naključnega gozdnega klasifikatorja
- Naključni gozdovi so lahko računsko dragi in lahko zahtevajo več virov zaradi konstrukcije več odločitvenih dreves.
- Zaradi ansambelske narave je težko razlagati razloge za posamezne napovedi v primerjavi z enim odločitvenim drevesom.
- V neuravnoteženih naborih podatkov so lahko naključni gozdovi pristranski k večinskemu razredu, kar vpliva na napovedno delovanje za manjšinske razrede.
Zaključek
Skratka, naključni gozdovi s svojo skupino odločitvenih dreves izstopajo kot robustna rešitev za različne naloge strojnega učenja, ki prikazujejo njihovo vsestranskost in učinkovitost.
Pogosto zastavljena vprašanja (FAQ)
V. Kaj je klasifikator naključnega gozda?
Random Forest Classifier je učna metoda ansambla, ki uporablja več odločitvenih dreves za naloge razvrščanja, kar izboljša natančnost. Odličen je pri obdelavi kompleksnih podatkov, zmanjševanju prekomernega opremljanja in zagotavljanju zanesljivih napovedi s pomembnostjo funkcij.
V. Ali se lahko naključni gozd uporabi za regresijo?
Random Forest se lahko uporablja tako za naloge regresije kot klasifikacije, zaradi česar je vsestranski algoritem strojnega učenja.
V. Kakšno je načelo naključnega gozda?
Random Forest zgradi več odločitvenih dreves z uporabo naključnih podmnožic nabora podatkov in združi njihove rezultate za izboljšano natančnost.
V. Kakšne so aplikacije naključnega gozda?
Prave aplikacije vključujejo:
- Medicinska diagnoza: Prepoznavanje bolezni na podlagi podatkov o bolniku.
- Finance: Bonitetno točkovanje za oceno tveganja pri kreditiranju.