Random Forest Regression ir daudzpusīga mašīnmācīšanās metode skaitlisko vērtību prognozēšanai. Tas apvieno vairāku lēmumu koku prognozes, lai samazinātu pārmērību un uzlabotu precizitāti. Python's mašīnmācība bibliotēkas ļauj viegli ieviest un optimizēt šo pieeju.
Ansambļa mācības
Ansambļa mācīšanās ir mašīnmācīšanās paņēmiens, kas apvieno prognozes no vairākiem modeļiem, lai izveidotu precīzāku un stabilāku prognozi. Tā ir pieeja, kas izmanto vairāku modeļu kolektīvo intelektu, lai uzlabotu mācību sistēmas vispārējo veiktspēju.
Ansambļa metožu veidi
Ir dažādi ansambļa mācību metožu veidi, tostarp:
- Iepakošana maisos (sāknēšanas datu apkopošana): Šī metode ietver vairāku modeļu apmācību uz nejaušām apmācības datu apakškopām. Pēc tam atsevišķo modeļu prognozes tiek apvienotas, parasti aprēķinot vidējo.
- Paaugstināšana: Šī metode ietver modeļu secības apmācību, kur katrs nākamais modelis koncentrējas uz iepriekšējā modeļa pieļautajām kļūdām. Prognozes tiek apvienotas, izmantojot svērto balsošanas shēmu.
- Sakraušana: Šī metode ietver vienas modeļu kopas prognožu izmantošanu kā cita modeļa ievades līdzekļus. Galīgo prognozi veic otrā līmeņa modelis.
Nejaušais mežs
Nejaušs mežs ir ansambļa mācīšanās metode, kas apvieno prognozes no vairākiem lēmumu kokiem, lai iegūtu precīzāku un stabilāku prognozi. Tas ir uzraudzīta mācību algoritma veids, ko var izmantot gan klasifikācijas, gan regresijas uzdevumiem.
Katrs lēmumu koks ir liela dispersija, bet, ja mēs tos visus apvienojam paralēli, tad iegūtā dispersija ir maza, jo katrs lēmumu koks tiek lieliski apmācīts uz konkrēto izlases datiem, un tādējādi izvade nav atkarīga no viena lēmumu koka, bet gan no vairākiem lēmumu kokiem. Klasifikācijas problēmas gadījumā gala rezultāts tiek iegūts, izmantojot vairākuma balsojuma klasifikatoru. Regresijas problēmas gadījumā galīgais rezultāts ir visu rezultātu vidējais lielums. Šo daļu sauc Apkopošana .

Darbojas izlases meža regresijas modelis
Kas ir izlases meža regresija?
Meža nejaušā regresija mašīnmācībā ir tehniskais komplekts spēj izpildīt abus regresija un klasifikācija uzdevumi, izmantojot vairākus lēmumu kokus un paņēmienu, ko sauc par sāknēšanas un apkopošanu, ko parasti sauc par iepakošana maisos . Pamatideja ir apvienot vairākus lēmumu kokus, nosakot galīgo rezultātu, nevis paļauties uz atsevišķiem lēmumu kokiem.
Random Forest ir vairāki lēmumu koki kā mācību bāzes modeļi. Mēs nejauši veicam rindu izlasi un funkciju izlasi no datu kopas, veidojot datu kopu paraugus katram modelim. Šo daļu sauc par Bootstrap.
Mums ir jāpieiet Random Forest regresijas tehnikai tāpat kā jebkurai citai mašīnmācība tehnika.
- Izveidojiet konkrētu jautājumu vai datus un iegūstiet avotu, lai noteiktu nepieciešamos datus.
- Pārliecinieties, vai dati ir pieejamā formātā, pretējā gadījumā konvertējiet tos vajadzīgajā formātā.
- Norādiet visas pamanāmās anomālijas un trūkstošos datu punktus, kas var būt nepieciešami, lai iegūtu nepieciešamos datus.
- Izveidojiet mašīnmācības modeli.
- Iestatiet bāzes modeli, kuru vēlaties sasniegt
- Apmāciet datu mašīnmācīšanās modeli.
- Sniedziet ieskatu modelī ar testa datiem
- Tagad salīdziniet gan testa datu, gan modeļa prognozēto datu veiktspējas rādītājus.
- Ja tas neatbilst jūsu cerībām, varat mēģināt attiecīgi uzlabot savu modeli vai datēt datus, vai izmantot citu datu modelēšanas paņēmienu.
- Šajā posmā jūs interpretējat iegūtos datus un attiecīgi ziņojat.
Nejauša meža regresija Python valodā
Mēs izmantosim līdzīgu parauga paņēmienu zemāk esošajā piemērā. Zemāk ir soli pa solim izlases meža regresijas ieviešanas paraugs datu kopā, kuru var lejupielādēt šeit - https://bit.ly/417n3N5
Python bibliotēkas ļauj mums ļoti viegli apstrādāt datus un veikt tipiskus un sarežģītus uzdevumus, izmantojot vienu koda rindiņu.
- Pandas - Šī bibliotēka palīdz ielādēt datu rāmi 2D masīva formātā, un tai ir vairākas funkcijas, lai veiktu analīzes uzdevumus vienā piegājienā.
- Neskaidrs - Numpy masīvi ir ļoti ātri un var veikt lielus aprēķinus ļoti īsā laikā.
- Matplotlib / Seaborn – Šī bibliotēka tiek izmantota vizualizāciju zīmēšanai.
- Sklearn — šis modulis satur vairākas bibliotēkas ar iepriekš ieviestām funkcijām, lai veiktu uzdevumus no datu pirmapstrādes līdz modeļa izstrādei un novērtēšanai.
- RandomForestRegressor – Šis ir regresijas modelis, kura pamatā ir Random Forest modelis vai ansambļa mācīšanās, ko izmantosim šajā rakstā, izmantojot sklearn bibliotēku.
- sklearn: Šī bibliotēka ir Python mašīnmācīšanās galvenā bibliotēka. Tas nodrošina plašu rīku klāstu mašīnmācīšanās modeļu pirmapstrādei, modelēšanai, novērtēšanai un izvietošanai.
- LabelEncoder: Šo klasi izmanto, lai kodētu kategoriskos datus skaitliskās vērtībās.
- KNNIMuter: Šī klase tiek izmantota, lai pieskaitītu trūkstošās vērtības datu kopā, izmantojot k-tuvāko kaimiņu pieeju.
- train_test_split: Šī funkcija tiek izmantota, lai sadalītu datu kopu apmācības un testēšanas kopās.
- Standarta mērogotājs: Šī klase tiek izmantota, lai standartizētu līdzekļus, noņemot vidējo un mērogojot līdz vienību dispersijai.
- f1_score: Šo funkciju izmanto, lai novērtētu klasifikācijas modeļa veiktspēju, izmantojot F1 rādītāju.
- RandomForestRegressor: Šī klase tiek izmantota, lai apmācītu izlases meža regresijas modeli.
- cross_val_score: Šī funkcija tiek izmantota, lai veiktu k-kārtīgu savstarpēju validāciju, lai novērtētu modeļa veiktspēju
1. darbība: importējiet bibliotēkas
Šeit mēs importējam visas nepieciešamās bibliotēkas.
Python3
import> pandas as pd> import> matplotlib.pyplot as plt> import> seaborn as sns> import> sklearn> import> warnings> from> sklearn.preprocessing>import> LabelEncoder> from> sklearn.impute>import> KNNImputer> from> sklearn.model_selection>import> train_test_split> from> sklearn.preprocessing>import> StandardScaler> from> sklearn.metrics>import> f1_score> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.model_selection>import> cross_val_score> warnings.filterwarnings(>'ignore'>)> |
>
>
2. darbība: importējiet datu kopu
Tagad ielādēsim datu kopu pandas datu rāmī. Labākai datu apstrādei un parocīgo funkciju izmantošanai sarežģītu uzdevumu veikšanai vienā piegājienā.
len no masīva java
Python3
df>=> pd.read_csv(>'Salaries.csv'>)> print>(df)> |
>
>
Izvade:
Position Level Salary 0 Business Analyst 1 45000 1 Junior Consultant 2 50000 2 Senior Consultant 3 60000 3 Manager 4 80000 4 Country Manager 5 110000 5 Region Manager 6 150000 6 Partner 7 200000 7 Senior Partner 8 300000 8 C-level 9 500000 9 CEO 10 1000000>
Šeit ir.info()>metode sniedz ātru pārskatu par datu kopas struktūru, datu veidiem un atmiņas lietojumu.
Python3
df.info()> |
>
>
Izvade:
RangeIndex: 10 entries, 0 to 9 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Position 10 non-null object 1 Level 10 non-null int64 2 Salary 10 non-null int64 dtypes: int64(2), object(1) memory usage: 372.0+ bytes>
3. darbība: Datu sagatavošana
Šeit kods izvilks divas datu apakškopas no datu kopas un saglabās tās atsevišķos mainīgajos.
- Izvilkšanas funkcijas: Tas izvelk līdzekļus no DataFrame un saglabā tos mainīgajā ar nosaukumu
X>. - Mērķa mainīgā izvilkšana: Tas iegūst mērķa mainīgo no DataFrame un saglabā to mainīgajā ar nosaukumu
y>.
Python3
# Assuming df is your DataFrame> X>=> df.iloc[:,>1>:>2>].values>#features> y>=> df.iloc[:,>2>].values># Target variable> |
>
šķēle java masīvu
>
4. darbība: izlases meža regresora modelis
Kods apstrādā kategoriskos datus, tos kodējot skaitliski, apvieno apstrādātos datus ar skaitliskiem datiem un apmāca izlases meža regresijas modeli, izmantojot sagatavotos datus.
Python3
import> pandas as pd> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.preprocessing>import> LabelEncoder> >Check>for> and> handle categorical variables> label_encoder>=> LabelEncoder()> x_categorical>=> df.select_dtypes(include>=>[>'object'>]).>apply>(label_encoder.fit_transform)> x_numerical>=> df.select_dtypes(exclude>=>[>'object'>]).values> x>=> pd.concat([pd.DataFrame(x_numerical), x_categorical], axis>=>1>).values> # Fitting Random Forest Regression to the dataset> regressor>=> RandomForestRegressor(n_estimators>=>10>, random_state>=>0>, oob_score>=>True>)> # Fit the regressor with x and y data> regressor.fit(x, y)> |
>
>
5. darbība: veiciet prognozes un novērtējiet
Kods novērtē apmācīto izlases meža regresijas modeli:
- out-of-bag (OOB) rezultāts, kas novērtē modeļa vispārināšanas veiktspēju.
- Veic prognozes, izmantojot apmācīto modeli, un saglabā tās “prognožu” masīvā.
- Novērtē modeļa veiktspēju, izmantojot vidējās kvadrātiskās kļūdas (MSE) un R kvadrāta (R2) metriku.
Out of Bag Score RandomForest
Bag score vai OOB rezultāts ir validācijas metodes veids, ko galvenokārt izmanto iepakošanas algoritmos, lai apstiprinātu iepakošanas algoritmu. Šeit neliela daļa no validācijas datiem tiek ņemta no datu galvenās plūsmas, un tiek veiktas prognozes par konkrētiem validācijas datiem un salīdzinātas ar citiem rezultātiem.
Galvenā priekšrocība, ko piedāvā OOB rezultāts, ir tā, ka šajā gadījumā iepakošanas algoritms neredz validācijas datus, un tāpēc OOB rezultāta rezultāti ir patiesie rezultāti, kas liecināja par iepakošanas algoritma faktisko veiktspēju.
Lai iegūtu konkrētā Random Forest algoritma OOB punktu skaitu, algoritmā OOB_Score parametram ir jāiestata vērtība True.
Python3
# Evaluating the model> from> sklearn.metrics>import> mean_squared_error, r2_score> # Access the OOB Score> oob_score>=> regressor.oob_score_> print>(f>'Out-of-Bag Score: {oob_score}'>)> # Making predictions on the same data or new data> predictions>=> regressor.predict(x)> # Evaluating the model> mse>=> mean_squared_error(y, predictions)> print>(f>'Mean Squared Error: {mse}'>)> r2>=> r2_score(y, predictions)> print>(f>'R-squared: {r2}'>)> |
>
attēlu izlīdzināšana css
>
Izvade:
Out-of-Bag Score: 0.644879832593859 Mean Squared Error: 2647325000.0 R-squared: 0.9671801245316117>
6. darbība: vizualizācija
Tagad vizualizēsim rezultātus, kas iegūti, mūsu algu datu kopā izmantojot RandomForest regresijas modeli.
- Izveido prognožu punktu režģi, kas aptver objekta vērtību diapazonu.
- Reālos datu punktus attēlo kā zilās izkliedes punktus.
- Prognozējamās vērtības tiek attēlotas kā zaļa līnija.
- Sižetam pievieno etiķetes un nosaukumu, lai nodrošinātu labāku izpratni.
Python3
import> numpy as np> X_grid>=> np.arange(>min>(X),>max>(X),>0.01>)> X_grid>=> X_grid.reshape(>len>(X_grid),>1>)> > plt.scatter(X,y, color>=>'blue'>)>#plotting real points> plt.plot(X_grid, regressor.predict(X_grid),color>=>'green'>)>#plotting for predict points> > plt.title(>'Random Forest Regression Results'>)> plt.xlabel(>'Position level'>)> plt.ylabel(>'Salary'>)> plt.show()> |
>
>
Izvade:

7. darbība: Viena lēmuma koka vizualizācija no izlases meža modeļa
Kods vizualizē vienu no lēmumu kokiem no apmācītā Random Forest modeļa. Atzīmē atlasīto lēmumu koku, attēlojot viena koka lēmumu pieņemšanas procesu ansamblī.
Python3
seriāls postgres
from> sklearn.tree>import> plot_tree> import> matplotlib.pyplot as plt> # Assuming regressor is your trained Random Forest model> # Pick one tree from the forest, e.g., the first tree (index 0)> tree_to_plot>=> regressor.estimators_[>0>]> # Plot the decision tree> plt.figure(figsize>=>(>20>,>10>))> plot_tree(tree_to_plot, feature_names>=>df.columns.tolist(), filled>=>True>, rounded>=>True>, fontsize>=>10>)> plt.title(>'Decision Tree from Random Forest'>)> plt.show()> |
>
>
Izvade:
Meža izlases regresijas pielietojumi
Nejaušajai meža regresijai ir plašs reālās pasaules problēmu klāsts, tostarp:
- Nepārtrauktu skaitlisko vērtību prognozēšana: Mājokļu cenu, akciju cenu vai klienta dzīves vērtības prognozēšana.
- Riska faktoru identificēšana: Slimību, finanšu krīžu vai citu negatīvu notikumu riska faktoru noteikšana.
- Augstas dimensijas datu apstrāde: Datu kopu analīze ar lielu skaitu ievades funkciju.
- Sarežģītu attiecību fiksēšana: Sarežģītu attiecību modelēšana starp ievades pazīmēm un mērķa mainīgo.
Nejaušas meža regresijas priekšrocības
- Tas ir viegli lietojams un mazāk jutīgs pret apmācības datiem, salīdzinot ar lēmumu koku.
- Tas ir precīzāks nekā lēmumu koks algoritms.
- Tas ir efektīvs, apstrādājot lielas datu kopas, kurām ir daudz atribūtu.
- Tā var apstrādāt trūkstošos datus, novirzes , un trokšņainas funkcijas.
Nejaušas meža regresijas trūkumi
- Arī modeli var būt grūti interpretēt.
- Šim algoritmam var būt nepieciešamas noteiktas domēna zināšanas, lai izvēlētos atbilstošos parametrus, piemēram, lēmumu koku skaitu, katra koka maksimālo dziļumu un pazīmju skaitu, kas jāņem vērā katrā sadalījumā.
- Tas ir skaitļošanas ziņā dārgs, īpaši lielām datu kopām.
- Tas var ciest no pārmērīga pielāgošana ja modelis ir pārāk sarežģīts vai lēmumu koku skaits ir pārāk liels.
Secinājums
Meža izlases veida regresija ir kļuvusi par spēcīgu rīku nepārtrauktiem prognozēšanas uzdevumiem, kam ir priekšrocības salīdzinājumā ar tradicionālajiem lēmumu kokiem. Tā spēja apstrādāt augstas dimensijas datus, uztvert sarežģītas attiecības un samazināt pārmērīgu pielāgošanu ir padarījusi to par populāru izvēli dažādām lietojumprogrammām. Python scikit-learn bibliotēka ļauj ieviest, optimizēt un novērtēt izlases meža regresijas modeļus, padarot to par pieejamu un efektīvu tehniku mašīnmācības praktiķiem.
Bieži uzdotie jautājumi (FAQ)
1. Kas ir Random Forest Regression Python?
Random Forest Regression Python ir ansambļa mācīšanās metode, kas prognožu veikšanai izmanto vairākus lēmumu kokus. Tas ir spēcīgs un daudzpusīgs algoritms, kas ir labi piemērots regresijas uzdevumiem.
2. Kāda ir gadījuma meža regresijas izmantošana?
Nejaušo meža regresiju var izmantot, lai prognozētu dažādus mērķa mainīgos lielumus, tostarp cenas, pārdošanu, klientu skaitu un citus. Tas ir izturīgs algoritms, kas nav viegli pārbūvējams, padarot to par labu izvēli reālās pasaules lietojumprogrammām.
3. Kāda ir atšķirība starp nejaušo mežu un regresiju?
Random Forest ir ansambļa mācīšanās metode, savukārt regresija ir uzraudzīta mācību algoritma veids. Random Forest prognožu veikšanai izmanto vairākus lēmumu kokus, savukārt regresijā prognožu veikšanai izmanto vienu modeli.
4. Kā jūs noregulējat izlases meža regresijas hiperparametrus?
Pastāv vairākas metodes, kā pielāgot nejaušās meža regresijas hiperparametrus, piemēram:
- Režģa meklēšana: Režģa meklēšana ietver sistemātisku dažādu hiperparametru vērtību kombināciju izmēģināšanu, lai atrastu labāko kombināciju.
- Nejauša meklēšana: Nejaušajā meklēšanā nejauši tiek atlasītas dažādas hiperparametru vērtību kombinācijas, lai atrastu labu kombināciju.
5. Kāpēc izlases mežs ir labāks par regresiju?
Random Forest parasti ir precīzāks un stabilāks nekā regresija. Tas ir arī mazāk pakļauts pārmērīgai pielāgošanai, kas nozīmē, ka tas, visticamāk, labi vispārinās ar jauniem datiem.
Meža izlases regresijas pielietojumi