Una guia completa per potenciar els algoritmes d’aprenentatge automàtic



Aquest bloc es centra completament en el funcionament de l’aprenentatge automàtic i com es pot implementar per augmentar l’eficiència dels models d’aprenentatge automàtic.

Amb tants avenços en el camp de la salut, el màrqueting, els negocis, etc., s’ha convertit en una necessitat de desenvolupar-se més avançats i complexos . L’impuls de l’aprenentatge automàtic és una d’aquestes tècniques que es pot utilitzar per resoldre problemes del món real complexos, basats en dades. Aquest bloc està centrat completament en el funcionament de l’aprenentatge automàtic i com es pot implementar per augmentar l’eficiència dels models d’aprenentatge automàtic.

Per obtenir un coneixement en profunditat de la Intel·ligència Artificial i l’aprenentatge automàtic, podeu inscriure-us per viure per Edureka amb assistència les 24 hores del dia, els 7 dies de la setmana i accés permanent.





Aquí teniu una llista de temes que es tractaran en aquest bloc:

  1. Per què s’utilitza Boosting?
  2. Què és potenciar?
  3. Com funciona l'algorisme d'impuls?
  4. Tipus d’impuls
  5. Demostració

Per què s’utilitza Boosting?

Per resoldre problemes complicats necessitem tècniques més avançades. Suposem que, donat un conjunt de dades d’imatges que contenen imatges de gats i gossos, se us va demanar que construís un model que pugui classificar aquestes imatges en dues classes diferents. Com qualsevol altra persona, començareu identificant les imatges mitjançant algunes regles, com les que es donen a continuació:



  1. La imatge té les orelles punxegudes: Cat

  2. La imatge té ulls en forma de gat: gat

  3. La imatge té extremitats més grans: Gos



  4. La imatge té unes urpes esmolades: Cat

  5. La imatge té una estructura de boca més ampla: Gos

Totes aquestes regles ens ajuden a identificar si una imatge és un gos o un gat, però, si classifiquem una imatge en funció d’una regla individual (única), la predicció seria defectuosa. Cadascuna d’aquestes regles, individualment, s’anomena aprenents febles perquè aquestes regles no són prou fortes per classificar una imatge com a gat o gos.

Per tant, per assegurar-nos que la nostra predicció sigui més precisa, podem combinar la predicció de cadascun d’aquests aprenents febles mitjançant la regla de la majoria o la mitjana ponderada. Això fa un model d’aprenent fort.

A l'exemple anterior, hem definit 5 estudiants febles i la majoria d'aquestes regles (és a dir, 3 de cada 5 estudiants prediuen la imatge com a gat) ens donen la predicció que la imatge és un gat. Per tant, la nostra producció final és un gat.

ms tutorials sql per a principiants

Això ens porta a la pregunta,

Què és potenciar?

L’augment és una tècnica d’aprenentatge en conjunt que utilitza un conjunt d’algoritmes d’aprenentatge automàtic per convertir els estudiants febles en estudiants forts per augmentar la precisió del model.

What-Is-Boosting-Boosting-Machine-Learning-Edureka

Què és impulsar - Impulsar l'aprenentatge automàtic - Edureka

Com he esmentat, Boosting és un mètode d'aprenentatge conjunt, però què és exactament l'aprenentatge conjunt?

Què és el conjunt en aprenentatge automàtic?

L’aprenentatge de conjunts és un mètode que s’utilitza per millorar el rendiment del model d’aprenentatge automàtic combinant diversos estudiants. En comparació amb un model únic, aquest tipus d’aprenentatge crea models amb una eficiència i precisió millorades. Aquesta és exactament la raó per la qual s’utilitzen mètodes de conjunt per guanyar competicions líders en el mercat, com ara la recomanació de Netflix, les competicions Kaggle, etc.

Què és l'aprenentatge de conjunts - Impuls de l'aprenentatge automàtic - Edureka

A continuació també he comentat la diferència entre Boosting i Bagging.

Potenciació contra l’ensacament

L’aprenentatge de conjunts es pot realitzar de dues maneres:

  1. Conjunt seqüencial, conegut popularment com potenciant , aquí els estudiants febles es produeixen seqüencialment durant la fase d'entrenament. El rendiment del model es millora assignant un pes més alt a les mostres anteriors classificades incorrectament. Un exemple de reforç és l’algorisme AdaBoost.

  2. Conjunt paral·lel , conegut popularment com ensacat , aquí els aprenents febles es produeixen paral·lelament durant la fase d'entrenament. El rendiment del model es pot augmentar formant paral·lelament un nombre d’aprenents febles en conjunts de dades inicialitzats. Un exemple d’ensacament és el Random Forest algorisme.

En aquest bloc, em centraré en el mètode Boosting, de manera que a la secció següent es comprèn el funcionament de l’algoritme boosting.

Com funciona l'algorisme d'impuls?

El principi bàsic darrere del funcionament de l'algoritme de reforç és generar múltiples aprenents febles i combinar les seves prediccions per formar una regla forta. Aquestes regles febles es generen aplicant algoritmes bàsics d’aprenentatge automàtic a diferents distribucions del conjunt de dades. Aquests algoritmes generen regles febles per a cada iteració. Després de múltiples iteracions, els estudiants febles es combinen per formar un alumne fort que predirà un resultat més precís.

Com funciona l'algorisme de reforç - Impuls de l'aprenentatge automàtic - Edureka

A continuació s’explica com funciona l’algorisme:

Pas 1: L’algorisme base llegeix les dades i assigna el mateix pes a cada observació de mostra.

Pas 2: S'identifiquen prediccions falses realitzades per l'estudiant base. A la següent iteració, aquestes falses prediccions s’assignen al següent alumne base amb un pes més alt d’aquestes prediccions incorrectes.

Pas 3: Repetiu el pas 2 fins que l'algorisme pugui classificar correctament la sortida.

Per tant, l’objectiu principal de Boosting és per centrar-se més en prediccions no classificades.

Ara que ja sabem com funciona l’algorisme d’augment, comprenem els diferents tipus de tècniques d’augment.

Tipus d’impuls

Hi ha tres formes principals de dur a terme l’impuls:

  1. Adaptive Boosting o AdaBoost

  2. Augment del gradient

  3. XGBoost

Parlaré dels conceptes bàsics darrere de cadascun d’aquests tipus.

Potenciació adaptativa

  • AdaBoost s’implementa combinant diversos estudiants febles en un sol alumne fort.

  • Els estudiants dèbils d’AdaBoost tenen en compte una única característica d’entrada i dibuixen un únic arbre de decisió dividit anomenat monyó de decisions. Cada observació es pesa per igual mentre es traça la primera soca de decisió.

  • S’analitzen els resultats de la primera decisió i, si es classifiquen injustificadament observacions, se’ls assigna pesos més elevats.

  • Després d’això, es dibuixa un nou toc de decisió considerant les observacions amb pesos més elevats com a més significatives.

  • Una vegada més, si es classifiquen malament les observacions, se’ls dóna més pes i aquest procés continua fins que totes les observacions cauen en la classe adequada.

  • Adaboost es pot utilitzar tant per a problemes de classificació com de regressió, tot i que s’utilitza més habitualment amb finalitats de classificació.

Augment del gradient

L’augment de gradient també es basa en l’aprenentatge seqüencial de conjunt. Aquí els estudiants base es generen de manera seqüencial de manera que l’alumne base actual sempre és més eficaç que l’anterior, és a dir, el model general millora seqüencialment amb cada iteració.

La diferència d’aquest tipus d’augment és que els pesos dels resultats mal classificats no s’incrementen, en canvi, el mètode Gradient Boosting intenta optimitzar la funció de pèrdua de l’alumne anterior afegint un nou model que afegeix estudiants febles per tal de reduir la funció de pèrdua.

La idea principal aquí és superar els errors de les prediccions de l’alumne anterior. Aquest tipus de reforç té tres components principals:

  1. Funció de pèrdua això s’ha de millorar.

  2. Aprenent feble per computar prediccions i formar aprenents forts.

  3. An Model additiu que regularitzarà la funció de pèrdua.

Igual que AdaBoost, Gradient Boosting també es pot utilitzar tant per a problemes de classificació com de regressió.

XGBoost

XGBoost és una versió avançada del mètode Gradient Boosting, literalment significa eXtreme Gradient Boosting. XGBoost, desenvolupat per Tianqi Chen, pertany a la categoria de Distributed Machine Learning Community (DMLC).

què és un desenvolupador de iOS

L’objectiu principal d’aquest algorisme és augmentar la velocitat i l’eficiència del càlcul. L'algoritme Gradient Descent Boosting calcula la sortida a un ritme més lent ja que analitzen seqüencialment el conjunt de dades, per tant XGBoost s'utilitza per augmentar o augmentar extremadament el rendiment del model.

XGBoost - Impuls de l’aprenentatge automàtic - Edureka

XGBoost està dissenyat per centrar-se en la velocitat de càlcul i l'eficiència del model. Les principals característiques que proporciona XGBoost són:

com implementar una llista enllaçada al c
  • Paral·lelament crea arbres de decisió.

  • Implementació de mètodes de computació distribuïda per avaluar models grans i complexos.

  • Utilitzar la informàtica fora del nucli per analitzar grans conjunts de dades.

  • Implementació d’optimització de memòria cau per aprofitar al màxim els recursos.

Així van serels diferents tipus d’algoritmes d’aprenentatge automàtic d’impuls. Per fer les coses interessants, a la secció següent farem una demostració per veure com es poden implementar algorismes d’augment a Python.

Impulsar l’aprenentatge automàtic a Python

Una petita exempció de responsabilitat: faré servir Python per executar aquesta demostració, de manera que, si no coneixeu Python, podeu consultar els blocs següents:

  1. Com aprendre Python 3 de Scratch: una guia per a principiants

Ara toca embrutar-se les mans i començar a codificar.

Plantejament del problema: Per estudiar un conjunt de dades de bolets i construir un model d’aprenentatge automàtic que pugui classificar un bolet com a verinós o no, analitzant-ne les característiques.

Descripció del conjunt de dades: Aquest conjunt de dades proporciona una descripció detallada de mostres hipotètiques d’acord amb 23 espècies de bolets branquiats. Cada espècie es classifica com a bolets comestibles o no comestibles (verinosos).

Lògica: Construir un model d’aprenentatge automàtic mitjançant un dels algoritmes Boosting per predir si un bolet és comestible o no.

Pas 1: importeu els paquets necessaris

de sklearn.ensemble import AdaBoostClassifier de sklearn.preprocessing import LabelEncoder de sklearn.tree import DecisionTreeClassifier importació de pandes com pd # Importació train_test_split funció de sklearn.model_selection import train_test_split #Import scikit-learn metrics module

Pas 2: importeu el conjunt de dades

# Carrega al conjunt de dades = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

Pas 3: processament de dades

#Define the column names dataset.columns = ['target', 'cap-shape', 'cap-surface', 'cap-color', 'moratones', 'olor', 'branch-attachment', 'gill-spacing ',' mida branquial ',' color branquial ',' forma de tija ',' arrel de tija ',' superfície de la tija sobre l'anell ',' superfície de la tija sota l'anell ',' color de la tija -a dalt de l'anell ',' color de la tija per sota de l'anell ',' tipus de vel ',' color de vel ',' número d'anell ',' tipus d'anell ',' color d'impressió d'espores ',' població ',' habitat '] for label in dataset.columns: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Display information about the data set print (dataset.info ( )) Int64Index: 8124 entrades, 6074 a 686 columnes de dades (total de 23 columnes): objectiu 8124 int32 sense forma de tapa 8124 int32 sense superfície de capçalera 8124 int32 no nul·la de color de capçalera 8124 hematomes int32 no nuls de 8124 olor int32 no nul 8124 int32 branca int32 no branca 8124 espai branca int32 no branca 8124 int32 branca mida branca 8124 int32 null branca color 8124 int32 no null forma de tija 8124 int32 no nul stalk-root 8124 int32 no nul tija-superfície-sobre-anell 8124 no nul int32 tija-superfície-sota-anell 8124 no nul int32 tija-color-sobre-anell 8124 no nul int32 tija-color-sota-anell 8124 vel int32 no nul- tipus 8124 no-nul int32 de color de vel 8124 no-nul int32 número d'anell 8124 no-nul int32 tipus d'anell 8124 no-nul int32 spore-print-color 8124 no-nul int32 població 8124 no-nul int32 hàbitat 8124 no- Tipus nuls int32: int32 (23) ús de memòria: 793,4 KB

Pas 4: Combinació de dades

X = dataset.drop (['target'], axis = 1) Y = dataset ['target'] X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)

Pas 5: creeu el model

model = DecisionTreeClassifier (criteri = 'entropia', màx_depth = 1) AdaBoost = AdaBoostClassifier (base_estimator = model, n_estimators = 400, learning_rate = 1)

Al fragment de codi anterior, hem implementat l'algorisme AdaBoost. La funció 'AdaBoostClassifier' té tres paràmetres importants:

  • base_estimator: l'estimador base (aprenent feble) és Arbres de decisió per defecte
  • n_estimator: aquest camp especifica el nombre d'aprenents bàsics que s'utilitzaran.
  • learning_rate: aquest camp especifica la taxa d’aprenentatge, que hem definit com a valor predeterminat, és a dir, 1.
#Encaixa el model amb dades de formació boostmodel = AdaBoost.fit (X_train, Y_train)

Pas 6: Avaluació del model

# Avaluar la precisió del model y_pred = boostmodel.predict (X_test) predictions = metrics.accuracy_score (Y_test, y_pred) #Calculing the precision in percentual print ('La precisió és:', prediccions * 100, '%') és: 100,0%

Hem rebut una precisió del 100%, que és perfecte.

Així, amb això, arribem al final d’aquest bloc d’aprenentatge automàtic d’impuls. Si voleu obtenir més informació sobre l'aprenentatge automàtic, podeu llegir aquests blocs:

Si voleu inscriure-us a un curs complet d’Intel·ligència Artificial i Aprenentatge Automàtic, Edureka disposa d’un programa especialitzat que us farà dominar tècniques com l'aprenentatge supervisat, l'aprenentatge sense supervisió i el processament del llenguatge natural. Inclou formació sobre els darrers avenços i enfocaments tècnics en intel·ligència artificial i aprenentatge automàtic, com ara aprenentatge profund, models gràfics i aprenentatge de reforç.