Random Forest Clasifier: prezentare generală, cum funcționează, avantaje și dezavantaje

Publicat: 2021-06-18

Te-ai întrebat vreodată cum alege Netflix un film pe care să ți-l recomande? Sau cum alege Amazon produsele pentru a le afișa în feedul tău?

Toți folosesc sisteme de recomandare, o tehnologie care utilizează clasificatorul de pădure aleatoriu.

Clasificatorul de pădure aleatoriu este printre cei mai populari algoritmi de clasificare. Astăzi, vom afla despre acest algoritm robust de învățare automată și vom vedea cum funcționează. Veți afla, de asemenea, despre implementarea sa, deoarece vom împărtăși un tutorial pas cu pas despre cum să utilizați clasificatorul de pădure aleatoriu într-o problemă din viața reală.

Vom acoperi avantajele și dezavantajele sklearn-ului forestier aleatoriu și multe altele în punctele următoare.

Cuprins

Random Forest Clasifier: o introducere

Clasificatorul de pădure aleatoriu este un algoritm de învățare supravegheată pe care îl puteți utiliza pentru probleme de regresie și clasificare. Este printre cei mai populari algoritmi de învățare automată datorită flexibilității sale ridicate și ușurinței de implementare.

De ce clasificatorul de pădure aleatoriu este numit pădure aleatoare?

Asta pentru că constă din copaci de decizie multipli, așa cum o pădure are mulți copaci. În plus, folosește aleatoriu pentru a-și îmbunătăți acuratețea și pentru a combate supraadaptarea, ceea ce poate fi o problemă uriașă pentru un algoritm atât de sofisticat. Acești algoritmi fac arbori de decizie pe baza unei selecții aleatorii de mostre de date și obțin predicții din fiecare arbore. După aceea, ei selectează cea mai bună soluție viabilă prin voturi.

Are numeroase aplicații în viața noastră de zi cu zi, cum ar fi selectoare de caracteristici, sisteme de recomandare și clasificatoare de imagini. Unele dintre aplicațiile sale din viața reală includ detectarea fraudelor, clasificarea cererilor de împrumut și predicția bolilor. Acesta formează baza algoritmului Boruta, care alege caracteristici vitale dintr-un set de date.

Cum functioneazã?

Presupunând că setul de date are „m” caracteristici, pădurea aleatoare va alege aleatoriu „k” caracteristici unde k < m. Acum, algoritmul va calcula nodul rădăcină dintre cele k caracteristici prin alegerea unui nod care are cel mai mare câștig de informații.

După aceea, algoritmul împarte nodul în noduri copil și repetă acest proces de „n” ori. Acum ai o pădure cu n copaci. În cele din urmă, veți efectua bootstrapping, adică combinați rezultatele tuturor arborilor de decizie prezenți în pădurea dvs.

Este cu siguranță unul dintre cei mai sofisticați algoritmi, deoarece se bazează pe funcționalitatea arborilor de decizie.

Din punct de vedere tehnic, este un algoritm de ansamblu. Algoritmul generează arbori de decizie individuali printr-o indicație de selecție a atributelor. Fiecare copac se bazează pe un eșantion aleator independent. Într-o problemă de clasificare, fiecare copac votează și cea mai populară clasă este rezultatul final. Pe de altă parte, într-o problemă de regresie, veți calcula media tuturor rezultatelor arborelui și acesta ar fi rezultatul final.

O implementare Python de pădure aleatoare este mult mai simplă și robustă decât alți algoritmi neliniari utilizați pentru probleme de clasificare.

Următorul exemplu vă va ajuta să înțelegeți cum utilizați clasificatorul de pădure aleatoriu în viața de zi cu zi:

Exemplu

Să presupunem că vrei să cumperi o mașină nouă și îi ceri recomandărilor celui mai bun prieten Supratik. Te-ar întreba despre preferințele tale, bugetul și cerințele tale și, de asemenea, ar împărtăși experiențele sale anterioare cu mașina lui pentru a-ți oferi o recomandare.

Aici, Supratik folosește metoda Decision Tree pentru a vă oferi feedback pe baza răspunsului dvs. După sugestiile lui, vă simțiți nesigur în privința sfatului său, așa că îl întrebați pe Aditya despre recomandările sale și el vă întreabă, de asemenea, despre preferințele dvs. și alte cerințe.

Să presupunem că repeți acest proces și le pui prietenilor această întrebare. Acum aveți mai multe mașini din care să alegeți. Strângi toate voturile de la prieteni și decizi să cumperi mașina care are cele mai multe voturi. Acum ați folosit metoda pădurii aleatoare pentru a alege o mașină de cumpărat.

Cu toate acestea, cu cât veți repeta mai mult acest proces, cu atât sunteți mai predispus la supraadaptare. Asta pentru că setul tău de date din arborii de decizie va deveni în continuare mai specific. Pădurea aleatorie combate această problemă prin utilizarea aleatoriei.

Avantaje și dezavantaje ale random Forest Classifier

Fiecare algoritm de învățare automată are avantajele și dezavantajele sale. Următoarele sunt avantajele și dezavantajele algoritmului de clasificare aleatorie a pădurilor:

Avantaje

  • Algoritmul forestier aleatoriu este semnificativ mai precis decât majoritatea clasificatorilor neliniari.
  • Acest algoritm este, de asemenea, foarte robust, deoarece folosește mai mulți arbori de decizie pentru a ajunge la rezultatul său.
  • Clasificatorul forestier aleatoriu nu se confruntă cu problema supraadaptarii, deoarece ia media tuturor predicțiilor, anulând distorsiunile și, astfel, reparând problema supraadaptarii.
  • Puteți utiliza acest algoritm atât pentru probleme de regresie, cât și pentru probleme de clasificare, făcându-l un algoritm extrem de versatil.
  • Pădurile aleatorii nu lasă valorile lipsă să provoace probleme. Ei pot folosi valori medii pentru a înlocui variabilele continue sau pot calcula media ponderată în funcție de proximitate a valorilor lipsă pentru a rezolva această problemă.
  • Acest algoritm vă oferă o importanță relativă a caracteristicilor care vă permite să selectați cu ușurință cele mai contributive caracteristici pentru clasificatorul dvs.

Dezavantaje

  • Acest algoritm este substanțial mai lent decât alți algoritmi de clasificare, deoarece utilizează mai mulți arbori de decizie pentru a face predicții. Când un clasificator aleatoriu de pădure face o predicție, fiecare copac din pădure trebuie să facă o predicție pentru aceeași intrare și să voteze pentru aceeași. Acest proces poate consuma foarte mult timp.
  • Din cauza ritmului său lent, clasificatoarele aleatorii ale pădurilor pot fi nepotrivite pentru predicții în timp real.
  • Modelul poate fi destul de dificil de interpretat în comparație cu un arbore de decizie, deoarece puteți face o selecție urmând calea arborelui. Cu toate acestea, acest lucru nu este posibil într-o pădure aleatorie, deoarece are mai mulți arbori de decizie.

Diferența dintre pădurea aleatorie și copacii de decizie

Un arbore de decizie, așa cum sugerează și numele, este o organigramă asemănătoare unui arbore cu ramuri și noduri. Algoritmul împarte datele pe baza caracteristicilor de intrare la fiecare nod și generează mai multe ramuri ca ieșire. Este un proces iterativ și crește numărul de ramuri create (ieșire) și diferențierea datelor. Acest proces se repetă până când este creat un nod în care aproape toate datele aparțin aceleiași clase și nu sunt posibile mai multe ramuri sau divizări.

Pe de altă parte, o pădure aleatoare folosește mai mulți arbori de decizie, deci numele de „pădure”. Adună voturi din diferiții arbori de decizie pe care i-a folosit pentru a face predicția necesară.

Prin urmare, diferența principală dintre un clasificator de pădure aleatoriu și un arbore de decizie este că primul folosește o colecție a celui de-al doilea. Iată câteva diferențe suplimentare între cele două:

  • Arborii de decizie se confruntă cu problema supraadaptării, dar pădurile aleatorii nu. Acest lucru se datorează faptului că clasificatorii de pădure aleatorii folosesc subseturi aleatorii pentru a contracara această problemă.
  • Copacii de decizie sunt mai rapizi decât pădurile aleatorii. Pădurile aleatorii folosesc mai mulți arbori de decizie, ceea ce necesită multă putere de calcul și, prin urmare, mai mult timp.
  • Arborii de decizie sunt mai ușor de interpretat decât pădurile aleatorii și le puteți converti cu ușurință pe primele conform regulilor, dar este destul de dificil să faceți același lucru cu cele din urmă.

Construirea algoritmului (Random Forest Sklearn)

În exemplul următor, am realizat o implementare aleatorie Python de pădure utilizând biblioteca scikit-learn. Puteți urma pașii acestui tutorial pentru a construi un clasificator de pădure aleatoriu.

În timp ce 80% din orice activitate de știință a datelor necesită optimizarea datelor, care include curățarea datelor, curățarea, remedierea valorilor lipsă și multe altele. Cu toate acestea, în acest exemplu, ne vom concentra numai pe implementarea algoritmului nostru.

Primul pas: importați bibliotecile și încărcați setul de date

În primul rând, va trebui să importăm bibliotecile necesare și să încărcăm setul de date într-un cadru de date.

Intrare:

#Importul bibliotecilor necesare

importa panda ca pd

import numpy ca np

import matplotlib.pyplot ca plt

#Importarea setului de date

din sklearn.datasets import load_iris
set de date = load_iris ()

Al doilea pas: Împărțiți setul de date într-un set de antrenament și un set de testare

După ce am importat bibliotecile necesare și am încărcat datele, trebuie să ne împărțim setul de date într-un set de antrenament și un set de testare. Setul de antrenament ne va ajuta să antrenăm modelul, iar setul de testare ne va ajuta să stabilim cât de precis este de fapt modelul nostru.

Intrare:

# Potriviți clasificatorul la setul de antrenament

din sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier (criteriu = 'entropie' , splitter = 'cel mai bun' , stare_aleatorie = 0)

model.fit(X_train, y_train)

Ieșire:

DecisionTreeClassifier(class_weight=None, criterion='entropie' , max_depth=None,
max_features=Niciuna, max_leaf_nodes=Niciuna,
min_impurity_decrease=0,0, min_impurity_split=Niciunul,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False, random_state=0,

splitter='cel mai bun')

Al treilea pas: Creați un clasificator de pădure aleatoriu

Acum, vom crea clasificatorul nostru aleatoriu de pădure utilizând Python și scikit-learn.

Intrare:

#Ajustarea clasificatorului la setul de antrenament

din sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(n_estimators=100, criterion-'entropie', random_state = 0)

model.fit(X_train, y_train)

Ieșire:

RandomForestClassifier(bootstrap=True, class_weight=Niciuna, criteriu='entropie',

max_depth=Niciuna, max_features='auto', max_leaf_nodes=Niciuna,

min_impurity_decrease=0,0, min_impurity_split=Niciunul,

min_samples_leaf=1, min_samples_split=2,

min_weight_fraction_leaf=0,0, n_estimators=100, n_jobs=Niciunul,

oob_score=Fals, random_state=0, verbose=0, warm_start=False)

Al patrulea pas: Preziceți rezultatele și faceți matricea de confuzie

Odată ce ne-am creat clasificatorul, putem prezice rezultatele utilizându-l pe setul de testare și facem matricea de confuzie și obținem scorul de precizie pentru model. Cu cât scorul este mai mare, cu atât modelul nostru este mai precis.

Intrare:

#Prevede rezultatele setului de testare

y_pred = mode.predict(X_test)

#Creează matricea de confuzie

din sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_test, y_pred)

cm

Ieșire :

matrice ([[16, 0, 0]

[0, 17, 1]

[0, 0, 11]])

Intrare :

#Obțineți scorul pentru modelul dvs

model.score(X_test, y_test)

Ieșire :

0,977777777777777

Concluzie

Clasificatoarele aleatorii de pădure au multe aplicații. Sunt printre cei mai robusti algoritmi de învățare automată și sunt indispensabili pentru orice profesionist în AI și ML.

Dacă sunteți interesat să aflați mai multe despre inteligența artificială, consultați programul Executive PG de la IIIT-B și upGrad în învățare automată și AI, care este conceput pentru profesioniști care lucrează și oferă peste 450 de ore de formare riguroasă, peste 30 de studii de caz și sarcini, IIIT -B Statut de absolvenți, peste 5 proiecte practice practice și asistență la locul de muncă cu firme de top.

Ce este Random Forest în învățarea automată?

Random Forest este o metodă de învățare prin ansamblu care poate oferi predicții mai precise decât majoritatea altor algoritmi de învățare automată. Este folosit în mod obișnuit în învățarea arborelui de decizie. O pădure este creată folosind arbori de decizie, fiecare arbore de decizie este un clasificator puternic în sine. Acești arbori de decizie sunt folosiți pentru a crea o pădure de clasificatori puternici. Această pădure de clasificatori puternici oferă o predicție mai bună decât arborii de decizie sau alți algoritmi de învățare automată.

Care sunt diferențele dintre pădurea aleatoare și arborii de decizie?

Un arbore de decizie este o organigramă care descrie procesul de analiză pentru o anumită problemă. Tindem să le folosim cel mai frecvent pentru probleme de clasificare. Un arbore de decizie descrie procesul de eliminare necesar pentru a face o clasificare. Spre deosebire de arborele de decizie, pădurea aleatoare se bazează pe un ansamblu de copaci și multe studii demonstrează că este mai puternic decât arborele de decizie în general. În plus, pădurea aleatorie este mai rezistentă la supraadaptare și este mai stabilă atunci când lipsesc date.

Care sunt dezavantajele pădurii aleatorii?

Random Forest este un model ușor complex. Nu este un model cutie neagră și nu este ușor de interpretat rezultatele. Este mai lent decât alte modele de învățare automată. Este nevoie de un număr mare de caracteristici pentru a obține o precizie bună. Pădurile aleatorii sunt un tip de metodă de învățare prin ansamblu, ca și alte metode de ansamblu, cum ar fi ambalarea, amplificarea sau stivuirea. Aceste metode tind să fie instabile, ceea ce înseamnă că dacă datele de antrenament se modifică ușor, modelul final se poate schimba drastic.