En aquest article, veurem com construir un Classificador de boscos aleatori utilitzant el Biblioteca Scikit-Learn de Llenguatge de programació Python i per fer-ho, fem servir el Conjunt de dades IRIS que és un conjunt de dades força comú i famós.
Bosc aleatori
El Bosc aleatori o Random Decision Forest és un algorisme d'aprenentatge automàtic supervisat que s'utilitza per a la classificació, la regressió i altres tasques mitjançant arbres de decisió. Els boscos aleatoris són especialment adequats per manejar conjunts de dades grans i complexos, tractar espais de característiques d'alta dimensió i proporcionar informació sobre la importància de les característiques. La capacitat d'aquest algorisme de mantenir una alta precisió predictiva alhora que minimitza el sobreajust el converteix en una opció popular en diversos dominis, com ara finances, sanitat i anàlisi d'imatges, entre d'altres.
Classificador de boscos aleatori
El classificador de bosc aleatori crea a conjunt de arbres de decisió d'un subconjunt seleccionat aleatòriament del conjunt d'entrenament. És un conjunt d'arbres de decisió (DT) d'un subconjunt seleccionat aleatòriament del conjunt d'entrenament i després recull els vots de diferents arbres de decisió per decidir la predicció final.
Classificador de boscos aleatori
algorisme de 'prim'
A més, el classificador de boscos aleatori pot gestionar tant tasques de classificació com de regressió, i la seva capacitat per proporcionar puntuacions d'importància de les característiques el converteix en una eina valuosa per entendre la importància de diferents variables del conjunt de dades.
Com funciona la classificació forestal aleatòria
La classificació forestal aleatòria és una tècnica d'aprenentatge conjunta dissenyada per millorar la precisió i la robustesa de les tasques de classificació. L'algoritme crea una multitud d'arbres de decisió durant l'entrenament i produeix el classe aquest és el mode de les classes de classificació. Cada arbre de decisió del bosc aleatori es construeix utilitzant un subconjunt de dades d'entrenament i un subconjunt de característiques aleatòries que introdueixen diversitat entre els arbres, fent que el model sigui més robust i menys propens a sobreajustar-se.
L'algorisme forestal aleatori utilitza una tècnica anomenada embolcall (Bootstrap Aggregating) per crear aquests subconjunts diversos.
Durant la fase de formació, cadascun arbre es construeix particionant recursivament les dades en funció de les característiques. A cadascun dividir, l'algoritme selecciona la millor característica del subconjunt aleatori, optimitzant el guany d'informació o la impuresa de Gini. El procés continua fins que es compleix un criteri d'aturada predefinit, com arribar a una profunditat màxima o tenir un nombre mínim de mostres a cada node foliar.
Un cop s'ha entrenat el bosc aleatori, pot fer prediccions, utilitzant cada arbre que vota una classe, i la classe amb més vots es converteix en la classe prevista per a les dades d'entrada.
Selecció de funcions als boscos aleatoris
Selecció de funcions a Random Forests està inherentment integrat en la construcció d'arbres de decisió individuals i en el procés d'agregació.
Durant la fase d'entrenament, cada arbre de decisió es construeix utilitzant un subconjunt aleatori de característiques, contribuint a la diversitat entre els arbres. El procés, conegut com a embolcall de funcions, ajuda a prevenir el domini de qualsevol característica i promou un model més robust.
L'algoritme avalua diversos subconjunts de característiques a cada punt de divisió, seleccionant la millor característica per a la divisió de nodes en funció de criteris com ara el guany d'informació o la impuresa de Gini. En conseqüència, els boscos aleatoris incorporen de manera natural una forma de selecció de característiques, assegurant que el conjunt es beneficiï d'un conjunt divers de característiques per millorar la generalització i reduir el sobreajust.
Classificador de boscos aleatoris en aprenentatge automàtic
Pas 1: Carregant el conjunt de dades
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()> |
>
>
Pas 2: comprovació del contingut del conjunt de dades i dels noms de les característiques que hi ha.
python3
print>(iris.target_names)> |
>
>
Sortida:
[‘setosa’ ‘versicolor’ ‘virginica’]>
python3
on són la configuració del navegador
print>(iris.feature_names)> |
>
>
Sortida:
[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]>
Pas 3: Divisió de la prova del tren
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>)> |
>
>
Pas 4: importa el mòdul de classificador de boscos aleatori.
python3
host linux
# 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})> |
>
>
Visió general del conjunt de dades
python3
# printing the top 5 datasets in iris dataset> print>(data.head())> |
>
>
Sortida:
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>
Pas 5: Entrenament del model
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))> |
mysql canvia el tipus de columna
>
>
Sortida:
ACCURACY OF THE MODEL: 0.9238095238095239>
Pas 6: Prediccions
Python 3
# predicting which type of flower it is.> clf.predict([[>3>,>3>,>2>,>2>]])> |
>
>
Sortida:
array([0])>
Això implica que ho és sedós tipus de flor, ja que hem obtingut les tres espècies o classes del nostre conjunt de dades: Setosa, Versicolor i Virginia.
Comproveu les característiques importants
Ara també descobrirem les característiques importants o la selecció de funcions del conjunt de dades IRIS mitjançant les següents línies de codi.
python3
# 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> |
>
l'actor ranbir kapoor edat
>
Sortida:
petal length (cm) 0.440050 petal width (cm) 0.423437 sepal length (cm) 0.103293 sepal width (cm) 0.033220 dtype: float64>
Boscos aleatoris a Python Scikit-Learn biblioteca vénen amb un conjunt de hiperparàmetres que permeten ajustar el comportament del model. Entendre i seleccionar els hiperparàmetres adequats és crucial per optimitzar el rendiment del model.
Paràmetres del classificador de boscos aleatoris
- n_estimadors: Nombre d'arbres al bosc.
- Més arbres generalment condueixen a un millor rendiment, però a costa del temps de càlcul.
- Comenceu amb un valor de 100 i augmenteu segons sigui necessari.
- profunditat_max: Profunditat màxima de cada arbre.
- Els arbres més profunds poden capturar patrons més complexos, però també corren el risc de sobreajustar-se.
- Experimenteu amb valors entre 5 i 15 i considereu valors més baixos per a conjunts de dades més petits.
- max_features: Nombre de característiques considerades per dividir a cada node.
- Un valor comú és 'sqrt' (arrel quadrada del nombre total de característiques).
- Ajusteu-lo segons la mida del conjunt de dades i la importància de les funcions.
- criteri: Funció que s'utilitza per mesurar la qualitat dividida ('gini' o 'entropia').
- La impuresa de Gini és sovint una mica més ràpida, però ambdues són generalment similars en rendiment.
- min_samples_split: Les mostres mínimes necessàries per dividir un node.
- Valors més alts poden evitar un sobreajustament, però massa alts poden dificultar la complexitat del model.
- Comenceu amb 2 i ajusteu segons sigui necessari.
- min_samples_leaf: Les mostres mínimes necessàries per estar en un node de fulla.
- Similar a min_samples_split, però centrat en els nodes fulla.
- Comenceu amb 1 i ajusteu-lo segons sigui necessari.
- bootstrap: Si s'utilitza el mostreig d'arrencada quan es construeixen arbres (vertader o fals).
- L'arrencada pot millorar la variància i la generalització del model, però pot augmentar lleugerament el biaix.
Avantatges del classificador de boscos aleatori
- La naturalesa conjunta de Random Forests, que combina diversos arbres, fa que siguin menys propensos a sobreajustar-se en comparació amb els arbres de decisió individuals.
- Eficaç en conjunts de dades amb un gran nombre de funcions i pot gestionar bé variables irrellevants.
- Random Forests pot proporcionar informació sobre la importància de les característiques, ajudant a seleccionar les característiques i entendre el conjunt de dades.
Desavantatges del classificador de boscos aleatori
- Els boscos aleatoris poden ser computacionalment costosos i poden requerir més recursos a causa de la construcció de múltiples arbres de decisió.
- La naturalesa del conjunt fa que sigui difícil interpretar el raonament darrere de les prediccions individuals en comparació amb un únic arbre de decisions.
- En conjunts de dades desequilibrats, els boscos aleatoris poden estar esbiaixats cap a la classe majoritària, afectant el rendiment predictiu de les classes minoritàries.
Conclusió
En conclusió, Random Forests, amb el seu conjunt d'arbres de decisió, destaquen com una solució robusta per a diverses tasques d'aprenentatge automàtic, mostrant la seva versatilitat i eficàcia.
Preguntes freqüents (FAQ)
P. Què és el classificador forestal aleatori?
Random Forest Classifier és un mètode d'aprenentatge conjunt que utilitza múltiples arbres de decisió per a tasques de classificació, millorant la precisió. Sobresurt en la gestió de dades complexes, la mitigació de l'excés d'adaptació i la prestació de prediccions sòlides amb importància de les funcions.
P. Es pot utilitzar el bosc aleatori per a la regressió?
Random Forest es pot utilitzar tant per a tasques de regressió com de classificació, el que el converteix en un algorisme d'aprenentatge automàtic versàtil.
P. Quin és el principi del bosc aleatori?
Random Forest crea múltiples arbres de decisió utilitzant subconjunts aleatoris del conjunt de dades i combina les seves sortides per millorar la precisió.
P. Quines són les aplicacions del bosc aleatori?
Les aplicacions reals inclouen:
- Diagnòstic mèdic: Identificació de malalties a partir de les dades dels pacients.
- Finances: Scoring creditici per a l'avaluació del risc en préstecs.