Visaptverošs ceļvedis mašīnmācīšanās algoritmu uzlabošanai



Šis emuārs pilnībā koncentrējas uz to, kā darbojas mašīnmācīšanās, un kā to var ieviest, lai palielinātu mašīnmācīšanās modeļu efektivitāti.

Ņemot vērā tik daudzus sasniegumus veselības aprūpes, mārketinga, uzņēmējdarbības un tā tālāk, ir kļuvusi vajadzība attīstīt progresīvāku un sarežģītāku . Mašīnmācīšanās veicināšana ir viena no šādām metodēm, ko var izmantot, lai atrisinātu sarežģītas, uz datiem balstītas, reālās problēmas. Šis emuārs ir pilnībā koncentrēts uz to, kā darbojas mašīnmācīšanās, un kā to var ieviest, lai palielinātu mašīnmācīšanās modeļu efektivitāti.

Lai iegūtu padziļinātas zināšanas par mākslīgo intelektu un mašīnmācīšanos, varat reģistrēties tiešraidē autors Edureka ar diennakts atbalstu un piekļuvi mūža garumā.





Šeit ir saraksts ar tēmām, kuras tiks apskatītas šajā emuārā:

  1. Kāpēc tiek izmantota pastiprināšana?
  2. Kas ir Boosting?
  3. Kā darbojas uzlabojošais algoritms?
  4. Palielināšanas veidi
  5. Demonstrācija

Kāpēc tiek izmantots pastiprinājums?

Sarežģītu problēmu risināšanai mums ir nepieciešamas modernākas metodes. Pieņemsim, ka, ņemot vērā attēlu kopu ar kaķu un suņu attēliem, jums tika lūgts izveidot modeli, kas šos attēlus var klasificēt divās atsevišķās klasēs. Tāpat kā jebkura cita persona, arī jūs vispirms identificēsit attēlus, izmantojot dažus noteikumus, kas sniegti zemāk:



  1. Attēlam ir smailas ausis: kaķis

  2. Attēlam ir kaķa formas acis: kaķis

  3. Attēlam ir lielākas ekstremitātes: suns



  4. Attēlam ir saasināti nagi: Kaķis

  5. Attēlam ir plašāka mutes struktūra: suns

Visi šie noteikumi palīdz mums noteikt, vai attēls ir suns vai kaķis, tomēr, ja mēs klasificētu attēlu, pamatojoties uz individuālu (vienotu) likumu, prognoze būtu kļūdaina. Katru no šiem noteikumiem atsevišķi sauc par vājiem izglītojamajiem, jo ​​šie noteikumi nav pietiekami stingri, lai klasificētu attēlu kā kaķi vai suni.

Tāpēc, lai pārliecinātos, ka mūsu prognozes ir precīzākas, mēs varam apvienot katra no šiem vājiem izglītojamajiem paredzēto prognozi, izmantojot vairākuma likumu vai vidējo svērto vērtību. Tas padara spēcīgu izglītojamo modeli.

Iepriekš minētajā piemērā mēs esam definējuši 5 vājus izglītojamos, un lielākā daļa šo noteikumu (t.i., 3 no 5 izglītojamajiem prognozē kaķa tēlu) dod mums prognozi ka attēls ir kaķis. Tāpēc mūsu gala produkcija ir kaķis.

Tātad tas mūs noved pie jautājuma,

Kas ir Boosting?

Paaugstināšana ir kopīga mācīšanās tehnika, kas izmanto mašīnmācīšanās algoritmu kopumu, lai vāju izglītojamo pārvērstu par spēcīgiem, lai palielinātu modeļa precizitāti.

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

Kas ir uzlabošana - mašīnmācīšanās veicināšana - Edureka

Tāpat kā es minēju, Boosting ir ansambļa mācīšanās metode, bet kas īsti ir ansambļa mācīšanās?

Kas ir mašīnmācības ansamblis?

Ansambļa mācīšanās ir metode, ko izmanto, lai uzlabotu mašīnmācīšanās modeļa veiktspēju, apvienojot vairākus izglītojamos. Salīdzinot ar vienu modeli, šāda veida mācīšanās tiek veidota ar uzlabotu efektivitāti un precizitāti. Tieši tāpēc tiek izmantotas ansambļu metodes, lai uzvarētu tirgū vadošajos konkursos, piemēram, Netflix ieteikumu konkursā, Kaggle konkursos un tā tālāk.

Kas ir ansambļa mācīšanās - mašīnmācīšanās veicināšana - Edureka

Zemāk es arī apspriedu atšķirību starp Boosting un Bagging.

Palielināšana pret maisiņu

Ansambļa mācīšanos var veikt divējādi:

  1. Secīgs ansamblis, tautā pazīstams kā veicinot , šeit vājie izglītojamie tiek secīgi izveidoti apmācības posmā. Modeļa veiktspēja tiek uzlabota, piešķirot lielāku svērumu iepriekšējiem, nepareizi klasificētiem paraugiem. Paaugstināšanas piemērs ir AdaBoost algoritms.

  2. Paralēlais komplekts , tautā pazīstams kā soma , šeit vājie izglītojamie tiek apmācīti apmācības posmā. Modeļa veiktspēju var palielināt, paralēli apmācot vairākus vājus izglītojamos uz bootstrapped datu kopām. Maisīšanas piemērs ir Random Forest algoritms.

Šajā emuārā es koncentrēšos uz Boosting metodi, tāpēc zemāk esošajā sadaļā mēs sapratīsim, kā darbojas uzlabošanas algoritms.

Kā darbojas uzlabojošais algoritms?

Paaugstināšanas algoritma darbības pamatprincips ir radīt vairākus vājus izglītojamos un apvienot viņu prognozes, lai izveidotu vienu stingru likumu. Šie vājie noteikumi tiek ģenerēti, mašīnmācīšanās bāzes algoritmus piemērojot dažādiem datu kopas sadalījumiem. Šie algoritmi ģenerē vājus noteikumus katram atkārtojumam. Pēc vairākām atkārtojumiem vāji izglītojamie tiek apvienoti, veidojot spēcīgu izglītojamo, kurš prognozēs precīzāku rezultātu.

Kā darbojas algoritma palielināšana - mašīnmācīšanās veicināšana - Edureka

Lūk, kā darbojas algoritms:

1. darbība: Bāzes algoritms nolasa datus un katram novērojuma paraugam piešķir vienādu svaru.

2. darbība: Tiek identificētas kļūdainas prognozes, ko izteicis pamatmācītājs. Nākamajā atkārtojumā šīs nepatiesās prognozes tiek piešķirtas nākamajam bāzes izglītojamajam, kuram ir lielāks šo nepareizo pareģojumu svars.

3. solis: Atkārtojiet 2. darbību, līdz algoritms var pareizi klasificēt izvadi.

Tāpēc Boosting galvenais mērķis ir koncentrēties vairāk uz nepareizi klasificētām prognozēm.

Tagad, kad mēs zinām, kā darbojas palielināšanas algoritms, sapratīsim dažādus pastiprināšanas paņēmienu veidus.

Palielināšanas veidi

Ir trīs galvenie paņēmieni, kā veikt palielināšanu:

  1. Adaptīvā pastiprināšana vai AdaBoost

  2. Gradienta palielināšana

  3. XGBoost

Es apspriedīšu katra šāda veida pamatus.

Adaptīvā pastiprināšana

  • AdaBoost tiek īstenots, apvienojot vairākus vājus izglītojamos vienā spēcīgā izglītojamajā.

  • Vāji AdaBoost izglītojamie ņem vērā vienu ievades funkciju un izvelk vienu dalītu lēmumu koku, ko sauc par lēmuma celmu. Katrs novērojums tiek vienādi nosvērts, izvelkot pirmo lēmuma celmu.

  • Tiek analizēti pirmā lēmuma celma rezultāti un, ja kādi novērojumi ir nepareizi klasificēti, tiem tiek piešķirti lielāki svari.

  • Pēc tam tiek izlozēts jauns lēmums, uzskatot novērojumus ar lielāku svaru kā nozīmīgākus.

  • Atkal, ja kādi novērojumi tiek nepareizi klasificēti, tiem tiek piešķirts lielāks svars, un šis process turpinās, līdz visi novērojumi ietilpst pareizajā klasē.

  • Adaboost var izmantot gan klasifikācijai, gan uz regresiju balstītām problēmām, tomēr to biežāk izmanto klasifikācijas vajadzībām.

Gradienta palielināšana

Gradient Boosting pamatā ir arī secīga ansambļa mācīšanās. Šeit bāzes izglītojamie tiek ģenerēti secīgi tādā veidā, ka pašreizējais bāzes izglītojamais vienmēr ir efektīvāks par iepriekšējo, t.i., kopējais modelis secīgi uzlabojas ar katru atkārtojumu.

Atšķirība šāda veida uzlabošanā ir tā, ka nepareizi klasificētu rezultātu svars netiek palielināts, tā vietā gradienta palielināšanas metode mēģina optimizēt iepriekšējā izglītojamā zaudēšanas funkciju, pievienojot jaunu modeli, kas pievieno vājus izglītojamos, lai samazinātu zaudējumu funkciju.

Galvenā ideja šeit ir pārvarēt kļūdas iepriekšējā izglītojamā prognozēs. Šim pastiprināšanas veidam ir trīs galvenie komponenti:

  1. Zaudēšanas funkcija tas ir jāuzlabo.

  2. Vājš izglītojamais prognozes aprēķināšanai un spēcīgu izglītojamo veidošanai.

  3. An Piedevas modelis kas sakārtos zaudējumu funkciju.

Tāpat kā AdaBoost, arī Gradient Boosting var izmantot gan klasifikācijas, gan regresijas problēmu risināšanai.

XGBoost

XGBoost ir uzlabota gradienta palielināšanas metodes versija, tā burtiski nozīmē eXtreme Gradient Boosting. Tianqi Chen izstrādātais XGBoost ietilpst izplatītās mašīnmācīšanās kopienas (DMLC) kategorijā.

Šī algoritma galvenais mērķis ir palielināt skaitļošanas ātrumu un efektivitāti. Gradient Descent Boosting algoritms aprēķina izvadi lēnāk, jo tie secīgi analizē datu kopu, tāpēc XGBoost tiek izmantots, lai palielinātu vai ārkārtīgi palielinātu modeļa veiktspēju.

XGBoost - mašīnmācīšanās veicināšana - Edureka

java datu struktūras un algoritmi

XGBoost ir paredzēts, lai koncentrētos uz skaitļošanas ātrumu un modeļa efektivitāti. XGBoost galvenās funkcijas ir:

  • Paralēli rada lēmumu kokus.

  • Izplatītu skaitļošanas metožu ieviešana lielu un sarežģītu modeļu novērtēšanai.

  • Ārpus kodolskaitļošanas izmantošana milzīgu datu kopu analizēšanai.

  • Kešatmiņas optimizācijas ieviešana, lai pēc iespējas labāk izmantotu resursus.

Tātad šie bijadažādu mašīnmācīšanās algoritmu veidi. Lai padarītu lietas interesantas, zemāk esošajā sadaļā mēs palaidīsim demonstrāciju, lai redzētu, kā Python var ieviest uzlabojošus algoritmus.

Mašīnmācīšanās veicināšana Python

Īsa atruna: Es izmantošu Python, lai palaistu šo demonstrāciju, tādēļ, ja nezināt Python, varat apskatīt šādus emuārus:

  1. Kā iemācīties Python 3 no Scratch - ceļvedis iesācējiem

Tagad ir pienācis laiks sasmērēt rokas un sākt kodēšanu.

Problēmas izklāsts: Pētīt sēņu datu kopu un izveidot mašīnmācīšanās modeli, kas sēni var klasificēt kā indīgu, vai ne, analizējot tās īpašības.

Datu kopas apraksts: Šajā datu kopā ir detalizēts hipotētisko paraugu apraksts saskaņā ar 23 žaunu sēņu sugām. Katra suga tiek klasificēta kā ēdamas sēnes vai neēdamas (indīgas).

Loģika: Lai izveidotu mašīnmācīšanās modeli, izmantojot kādu no Boosting algoritmiem, lai prognozētu, vai sēne ir ēdama.

1. darbība: importējiet nepieciešamos iepakojumus

no sklearn.ensemble importēt AdaBoostClassifier no sklearn.preprocessing importēt LabelEncoder no sklearn.tree importēt DecisionTreeClassifier importēt pandas kā pd # Importēt vilciena_test_split funkciju no sklearn.model_selection importēt vilciena_test_split # Iemportēt skikit-mācīties metriku

2. darbība: importējiet datu kopu

# Ielādēt datu datu kopā = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

3. darbība: datu apstrāde

# Definējiet kolonnu nosaukumus dataset.columns = ['mērķis', 'vāciņa forma', 'vāciņa virsma', 'vāciņa krāsa', 'sasitumi', 'smarža', 'žaunu stiprinājums', 'atstatums starp žaunām'. ',' žaunu izmērs ',' žaunu krāsa ',' kātiņa forma ',' kātiņa sakne ',' kātiņa virsma virs gredzena ',' kātiņa virsma - zem gredzena ',' kāta krāsa -above-ring ',' stublāja krāsa-zem gredzena ',' plīvura tips ',' plīvura krāsa ',' gredzena numurs ',' gredzena tips ',' sporas drukas krāsa ',' populācija ' ',' dzīvesvieta '] etiķetei dataset.columns: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Display informācija par datu kopu print (dataset.info ( )) Int64Index: 8124 ieraksti, no 6074 līdz 686 datu kolonnas (kopā 23 kolonnas): mērķis 8124 nenulles int32 vāciņa forma 8124 nenulles int32 vāciņa virsma 8124 nenulles int32 vāciņa krāsa 8124 nenulles int32 zilumi 8124 ne-null int32 smaka 8124 non-null int32 žaunu piestiprināšana 8124 non-null int32 žaunu atstarpe 8124 non-null int32 žaunu-izmērs 8124 nulle-nulle int32 žaunu krāsa 8124 nulle-nulle int32 kātiņa forma 8124 nav nulle int32 kātiņa sakne 8124 nav nulle int32 kātiņa virsma virs gredzena 8124 nav nulles int32 kātiņa virsma zem zem gredzena 8124 nulle nulle int32 kātiņa krāsa virs gredzena 8124 nulle nulles int32 kātiņa krāsa zem gredzena 8124 nulle nulles int32 plīvurs- tips 8124 nulle int32 plīvurs-krāsa 8124 nulle nulle int32 gredzena numurs 8124 nulle nulle int32 gredzens tips 8124 nulle nulle int32 sporas drukas krāsa 8124 nulle nulle int32 populācija 8124 nulle null int32 biotops 8124 null int32 dtypes: int32 (23) atmiņas patēriņš: 793,4 KB

4. solis: datu sadalīšana

X = datu kopa.drop (['mērķis'], ass = 1) Y = datu kopa ['mērķis'] X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)

5. darbība: izveidojiet modeli

modelis = DecisionTreeClassifier (kritērijs = 'entropija', maks. dziļums = 1) AdaBoost = AdaBoostClassifier (bāzes_estimators = modelis, n_estimatori = 400, mācību_novērtējums = 1)

Iepriekš minētajā koda fragmentā mēs esam ieviesuši AdaBoost algoritmu. Funkcijai “AdaBoostClassifier” ir trīs svarīgi parametri:

  • base_estimator: Bāzes novērtētājs (vājš izglītojamais) pēc noklusējuma ir Lēmumu koki
  • n_estimator: Šis lauks norāda izmantojamo bāzes izglītojamo skaitu.
  • learning_rate: Šis lauks norāda mācīšanās ātrumu, kuru esam iestatījuši uz noklusējuma vērtību, t.i., 1.
# Piemērojiet modeli ar treniņu datu palielināšanas modeli = AdaBoost.fit (X_train, Y_train)

6. solis: modeļa novērtēšana

# Novērtējiet modeļa precizitāti ir: 100,0%

Mēs esam saņēmuši 100% precizitāti, kas ir ideāli piemērota!

Līdz ar to mēs esam nonākuši pie šī Boosting Machine Learning emuāra beigām. Ja vēlaties uzzināt vairāk par mašīnmācīšanos, varat lasīt šādus emuārus:

Ja vēlaties iestāties pilnīgā mākslīgā intelekta un mašīnmācīšanās kursā, Edureka piedāvā īpaši kuratoru kas ļaus jums pārzināt tādas metodes kā uzraudzīta mācīšanās, bez uzraudzības un dabiskās valodas apstrāde. Tas ietver apmācību par jaunākajiem sasniegumiem un tehniskajām pieejām mākslīgā intelekta un mašīnmācīšanās jomā, piemēram, padziļināta mācīšanās, grafiskie modeļi un mācīšanās pastiprināšana.