La regressió forestal aleatòria és una tècnica versàtil d'aprenentatge automàtic per predir valors numèrics. Combina les prediccions de múltiples arbres de decisió per reduir el sobreajust i millorar la precisió. de Python aprenentatge automàtic les biblioteques faciliten la implementació i l'optimització d'aquest enfocament.
Aprenentatge conjunt
L'aprenentatge conjunt és una tècnica d'aprenentatge automàtic que combina les prediccions de diversos models per crear una predicció més precisa i estable. És un enfocament que aprofita la intel·ligència col·lectiva de múltiples models per millorar el rendiment global del sistema d'aprenentatge.
Tipus de mètodes de conjunt
Hi ha diversos tipus de mètodes d'aprenentatge conjunt, entre els quals destaquen:
- Embolcall (agregació Bootstrap): Aquest mètode implica entrenar diversos models en subconjunts aleatoris de dades d'entrenament. A continuació, es combinen les prediccions dels models individuals, normalment mitjançant la mitjana.
- Potenciació: Aquest mètode implica entrenar una seqüència de models, on cada model posterior se centra en els errors comesos pel model anterior. Les prediccions es combinen mitjançant un esquema de votació ponderada.
- Apilament: Aquest mètode implica utilitzar les prediccions d'un conjunt de models com a característiques d'entrada per a un altre model. La predicció final la fa el model de segon nivell.
Bosc aleatori
Un bosc aleatori és un mètode d'aprenentatge conjunt que combina les prediccions de múltiples arbres de decisió per produir una predicció més precisa i estable. És un tipus d'algorisme d'aprenentatge supervisat que es pot utilitzar tant per a tasques de classificació com de regressió.
Cada arbre de decisions té una gran variància, però quan les combinem totes en paral·lel, la variància resultant és baixa, ja que cada arbre de decisió s'entrena perfectament en aquestes dades de mostra en particular i, per tant, la sortida no depèn d'un arbre de decisió sinó de múltiples arbres de decisió. En el cas d'un problema de classificació, la sortida final s'obté utilitzant el classificador de vot majoritari. En el cas d'un problema de regressió, la sortida final és la mitjana de totes les sortides. Aquesta part es diu Agregació .

Funcionament del model de regressió forestal aleatòria
Què és la regressió forestal aleatòria?
La regressió forestal aleatòria en l'aprenentatge automàtic és una conjunt tècnic capaç de realitzar les dues coses regressió i classificació tasques amb l'ús de múltiples arbres de decisió i una tècnica anomenada Bootstrap i agregació, comunament coneguda com embolcall . La idea bàsica darrere d'això és combinar múltiples arbres de decisió per determinar el resultat final en lloc de confiar en arbres de decisió individuals.
Random Forest té múltiples arbres de decisió com a models d'aprenentatge bàsic. Realitzem de manera aleatòria un mostreig de fila i un mostreig de funcions del conjunt de dades formant conjunts de dades de mostra per a cada model. Aquesta part s'anomena Bootstrap.
Hem d'apropar-nos a la tècnica de regressió del bosc aleatori com qualsevol altra aprenentatge automàtic tècnica.
- Dissenyeu una pregunta o dades específiques i obteniu la font per determinar les dades requerides.
- Assegureu-vos que les dades estiguin en un format accessible, sinó convertiu-les al format requerit.
- Especifiqueu totes les anomalies notables i els punts de dades que falten que es puguin requerir per aconseguir les dades requerides.
- Crear un model d'aprenentatge automàtic.
- Establiu el model de referència que voleu aconseguir
- Entrenar el model d'aprenentatge automàtic de dades.
- Proporcioneu una visió del model amb dades de prova
- Ara compareu les mètriques de rendiment tant de les dades de prova com de les dades previstes del model.
- Si no satisfà les vostres expectatives, podeu provar de millorar el vostre model en conseqüència o datar les vostres dades o utilitzar una altra tècnica de modelització de dades.
- En aquesta etapa, interpreteu les dades obtingudes i informeu en conseqüència.
Regression forestal aleatòria en Python
Utilitzarem una tècnica de mostra similar a l'exemple següent. A continuació es mostra una implementació de mostra pas a pas de la regressió forestal aleatòria, al conjunt de dades que es pot descarregar aquí: https://bit.ly/417n3N5
Python Les biblioteques ens faciliten molt el maneig de les dades i la realització de tasques típiques i complexes amb una única línia de codi.
- Pandes – Aquesta biblioteca ajuda a carregar el marc de dades en un format de matriu 2D i té múltiples funcions per realitzar tasques d'anàlisi d'una vegada.
- Numpy – Les matrius Numpy són molt ràpides i poden realitzar grans càlculs en molt poc temps.
- Matplotlib / Seaborn – Aquesta biblioteca s'utilitza per dibuixar visualitzacions.
- Sklearn: aquest mòdul conté diverses biblioteques amb funcions prèviament implementades per realitzar tasques des del preprocessament de dades fins al desenvolupament i avaluació de models.
- RandomForestRegressor – Aquest és el model de regressió que es basa en el model Random Forest o l'aprenentatge conjunt que utilitzarem en aquest article mitjançant la biblioteca sklearn.
- sklearn: Aquesta biblioteca és la biblioteca bàsica d'aprenentatge automàtic de Python. Proporciona una àmplia gamma d'eines per preprocessar, modelar, avaluar i desplegar models d'aprenentatge automàtic.
- LabelEncoder: Aquesta classe s'utilitza per codificar dades categòriques en valors numèrics.
- KNNImputer: Aquesta classe s'utilitza per imputar els valors que falten en un conjunt de dades mitjançant un enfocament de k-veïns més propers.
- train_test_split: Aquesta funció s'utilitza per dividir un conjunt de dades en conjunts d'entrenament i de prova.
- StandardScaler: Aquesta classe s'utilitza per estandarditzar característiques eliminant la mitjana i escalant a la variància de la unitat.
- puntuació_f1: Aquesta funció s'utilitza per avaluar el rendiment d'un model de classificació mitjançant la puntuació F1.
- RandomForestRegressor: Aquesta classe s'utilitza per entrenar un model de regressió forestal aleatòria.
- cross_val_score: Aquesta funció s'utilitza per realitzar una validació creuada de k-fold per avaluar el rendiment d'un model
Pas 1: importa les biblioteques
Aquí estem important totes les biblioteques necessàries necessàries.
Python 3
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'>)> |
>
>
Pas 2: importa el conjunt de dades
Ara carreguem el conjunt de dades al marc de dades del panda. Per a un millor maneig de dades i aprofitar les funcions útils per realitzar tasques complexes d'una vegada.
len de matriu en java
Python 3
df>=> pd.read_csv(>'Salaries.csv'>)> print>(df)> |
>
>
Sortida:
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>
Aquí el.info()>El mètode proporciona una visió general ràpida de l'estructura, els tipus de dades i l'ús de memòria del conjunt de dades.
Python 3
df.info()> |
>
>
Sortida:
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>
Pas-3: Preparació de dades
Aquí el codi extreu dos subconjunts de dades del conjunt de dades i les emmagatzemarà en variables separades.
- Característiques d'extracció: Extreu les característiques del DataFrame i les emmagatzema en una variable anomenada
X>. - Extracció de la variable objectiu: Extreu la variable objectiu del DataFrame i l'emmagatzema en una variable anomenada
y>.
Python 3
# Assuming df is your DataFrame> X>=> df.iloc[:,>1>:>2>].values>#features> y>=> df.iloc[:,>2>].values># Target variable> |
>
tallar la matriu java
>
Pas 4: model regressor forestal aleatori
El codi processa dades categòriques codificant-les numèricament, combina les dades processades amb dades numèriques i entrena un model de regressió forestal aleatòria utilitzant les dades preparades.
Python 3
java cast char a cadena
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)> |
>
>
Pas 5: fer prediccions i avaluació
El codi avalua el model de regressió forestal aleatòria entrenat:
- puntuació fora de la bossa (OOB), que estima el rendiment de generalització del model.
- Fa prediccions utilitzant el model entrenat i les emmagatzema a la matriu de 'prediccions'.
- Avalua el rendiment del model mitjançant les mètriques d'Error quadrat mitjà (MSE) i R-quadrat (R2).
Puntuació fora de la bossa a RandomForest
Puntuació de la bossa o Puntuació OOB és el tipus de tècnica de validació que s'utilitza principalment en els algorismes d'embolcall per validar l'algoritme d'embolcall. Aquí una petita part de les dades de validació s'agafa del corrent principal de les dades i es fan les prediccions sobre les dades de validació particulars i es comparen amb els altres resultats.
El principal avantatge que ofereix la puntuació OOB és que aquí les dades de validació no es veuen per l'algoritme d'embossat i per això els resultats de la puntuació OOB són els veritables resultats que indiquen el rendiment real de l'algoritme d'embossament.
Per obtenir la puntuació OOB de l'algorisme del bosc aleatori en particular, cal establir el valor True per al paràmetre OOB_Score de l'algorisme.
Python 3
# 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}'>)> |
>
>
Sortida:
Out-of-Bag Score: 0.644879832593859 Mean Squared Error: 2647325000.0 R-squared: 0.9671801245316117>
Pas 6: Visualització
Ara visualitzem els resultats obtinguts mitjançant el model de regressió RandomForest al nostre conjunt de dades de salaris.
- Crea una graella de punts de predicció que cobreix l'interval dels valors de les característiques.
- Representa els punts de dades reals com a punts de dispersió blaus.
- Representa els valors predits per a la graella de predicció com una línia verda.
- Afegeix etiquetes i un títol a la trama per a una millor comprensió.
Python 3
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()> |
>
>
Sortida:

Pas-7: Visualització d'un arbre de decisió únic a partir del model forestal aleatori
El codi visualitza un dels arbres de decisió del model Random Forest entrenat. Traça l'arbre de decisió seleccionat, mostrant el procés de presa de decisions d'un únic arbre dins del conjunt.
Python 3
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()> |
>
>
jocs de missatges amb Android
Sortida:
Aplicacions de la regressió forestal aleatòria
La regressió forestal aleatòria té una àmplia gamma de problemes del món real, que inclouen:
- Predicció de valors numèrics continus: Predicció dels preus de l'habitatge, dels preus de les accions o del valor de vida del client.
- Identificació dels factors de risc: Detecció de factors de risc de malalties, crisis financeres o altres esdeveniments negatius.
- Tractament de dades d'alta dimensió: Anàlisi de conjunts de dades amb un gran nombre de funcions d'entrada.
- Captura de relacions complexes: Modelització de relacions complexes entre les característiques d'entrada i la variable objectiu.
Avantatges de la regressió forestal aleatòria
- És fàcil d'utilitzar i menys sensible a les dades d'entrenament en comparació amb l'arbre de decisions.
- És més precís que el arbre de decisions algorisme.
- És eficaç per gestionar grans conjunts de dades que tenen molts atributs.
- Pot gestionar les dades que falten, atípics , i característiques sorolloses.
Inconvenients de la regressió forestal aleatòria
- El model també pot ser difícil d'interpretar.
- Aquest algorisme pot requerir una mica d'experiència en el domini per triar els paràmetres adequats, com ara el nombre d'arbres de decisió, la profunditat màxima de cada arbre i el nombre de característiques a tenir en compte a cada divisió.
- És car computacionalment, especialment per a grans conjunts de dades.
- Pot patir sobreajustament si el model és massa complex o el nombre d'arbres de decisió és massa elevat.
Conclusió
La regressió forestal aleatòria s'ha convertit en una potent eina per a tasques de predicció contínua, amb avantatges sobre els arbres de decisió tradicionals. La seva capacitat per gestionar dades d'alta dimensió, capturar relacions complexes i reduir el sobreajust l'ha convertit en una opció popular per a una varietat d'aplicacions. La biblioteca scikit-learn de Python permet la implementació, optimització i avaluació de models de regressió forestal aleatòria, la qual cosa la converteix en una tècnica accessible i eficaç per als professionals de l'aprenentatge automàtic.
Preguntes freqüents (FAQ)
1. Què és Random Forest Regression Python?
Random Forest Regression Python és un mètode d'aprenentatge conjunt que utilitza múltiples arbres de decisions per fer prediccions. És un algorisme potent i versàtil que és molt adequat per a tasques de regressió.
2. Per a què serveix la regressió forestal aleatòria?
La regressió forestal aleatòria es pot utilitzar per predir una varietat de variables objectiu, com ara preus, vendes, rotació de clients i molt més. És un algorisme robust que no s'adapta fàcilment, el que el converteix en una bona opció per a aplicacions del món real.
3. Quina diferència hi ha entre el bosc aleatori i la regressió?
Random Forest és un mètode d'aprenentatge conjunt, mentre que la regressió és un tipus d'algorisme d'aprenentatge supervisat. Random Forest utilitza múltiples arbres de decisions per fer prediccions, mentre que la regressió utilitza un sol model per fer prediccions.
4. Com ajusteu els hiperparàmetres de la regressió forestal aleatòria?
Hi ha diversos mètodes per ajustar els hiperparàmetres de la regressió forestal aleatòria, com ara:
- Cerca a la graella: La cerca en quadrícula implica provar sistemàticament diferents combinacions de valors d'hiperparàmetres per trobar la millor combinació.
- Cerca aleatòria: La cerca aleatòria mostra aleatòriament diferents combinacions de valors d'hiperparàmetres per trobar una bona combinació.
5. Per què és millor el bosc aleatori que la regressió?
Random Forest és generalment més precís i robust que la regressió. També és menys propens a sobreajustar-se, la qual cosa significa que és més probable que es generalitzi bé a dades noves.
Aplicacions de la regressió forestal aleatòria