Põhjalik juhend masinõppe algoritmide suurendamiseks

See ajaveeb keskendub täielikult sellele, kuidas töötab masinõpe ja kuidas seda masinõppe mudelite tõhususe suurendamiseks rakendada.

Nii palju edusamme tervishoiu, turunduse, ettevõtluse ja muu valdkonnas on muutunud vajaduseks arenenumate ja keerukamate . Masinõppe tõhustamine on üks sellistest tehnikatest, mida saab kasutada keeruliste, andmepõhiste, reaalses maailmas probleemide lahendamiseks. See ajaveeb keskendub täielikult sellele, kuidas töötab masinõpe ja kuidas seda masinõppe mudelite tõhususe suurendamiseks rakendada.



Tehisintellekti ja masinõppe põhjalike teadmiste saamiseks saate registreeruda otseülekandeks autor Edureka 24/7 toe ja eluaegse juurdepääsuga.



Siin on loetelu käsitletavatest teemadest selles blogis:

  1. Miks kasutatakse võimendust?
  2. Mis on võimendamine?
  3. Kuidas algoritmi suurendamine töötab?
  4. Tõstmise tüübid
  5. Demo

Miks kasutatakse võimendust?

Keerdprobleemide lahendamiseks vajame täpsemaid tehnikaid. Oletame, et antud kasside ja koerte pilte sisaldavate piltide andmekogumil paluti teil ehitada mudel, mis saaks neid pilte kahte eraldi klassi liigitada. Nagu iga teine ​​inimene, alustate ka piltide tuvastamisest, kasutades järgmisi reegleid:



  1. Pildil on teravad kõrvad: kass

  2. Pildil on kassikujulised silmad: kass

  3. Pildil on suuremad jäsemed: koer



  4. Kujutisel on teritatud küünised: kass

  5. Kujutisel on laiem suuehitus: koer

Kõik need reeglid aitavad meil tuvastada, kas pilt on koer või kass, kuid kui me klassifitseeriksime pildi individuaalse (ühe) reegli alusel, oleks ennustus vigane. Kõiki neid reegleid eraldi nimetatakse nõrkadeks õppijateks, kuna need reeglid pole piisavalt tugevad, et pilti kassi või koerana klassifitseerida.

Seetõttu võime meie ennustuse täpsuse tagamiseks kombineerida kõigi nende nõrkade õppijate ennustuse, kasutades enamuse reeglit või kaalutud keskmist. See teeb tugeva õppija mudeli.

Eespool toodud näites oleme määratlenud 5 nõrka õppijat ja enamik neist reeglitest (st 3 viiest õppijast ennustavad pilti kassina) annab meile ennustuse et pilt on kass. Seetõttu on meie lõpptoodanguks kass.

Nii et see viib meid küsimuse juurde,

Mis on võimendamine?

Boosting on ansambliõppe tehnika, mis kasutab masinõppe algoritmide komplekti, et muuta nõrk õppija tugevaks õppijaks, et suurendada mudeli täpsust.

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

Mis on võimendamine - masinõppe edendamine - Edureka

Nagu mainisin, on Boosting ansambliõppemeetod, kuid mis on ansambliõpe?

Mis on masinõppes ansambel?

Ansambliõpe on meetod, mida kasutatakse masinõppe mudeli jõudluse parandamiseks, ühendades mitu õppijat. Ühe mudeliga võrreldes ehitab seda tüüpi õppimine parema tõhususe ja täpsusega mudeleid. Täpselt seetõttu kasutatakse ansamblimeetodeid selliste turuliidritega võistluste võitmiseks nagu Netflixi soovituskonkurss, Kaggle võistlused ja nii edasi.

Mis on ansambliõpe - masinõppe edendamine - Edureka

Allpool olen arutanud ka Boostingu ja Bagging'i erinevust.

Suurendamine vs kottimine

Ansamblit saab õppida kahel viisil:

  1. Järjestikune ansambel, rahva seas tuntud kui võimendamine , siin toodetakse nõrgad õppijad järjestikku koolitusetapis. Mudeli jõudlust parandatakse, määrates eelmistele valesti klassifitseeritud proovidele suurema kaalu. Tõstmise näiteks on AdaBoost algoritm.

  2. Paralleelne komplekt , rahva seas tuntud kui kottimine , siin toodetakse nõrku õppijaid koolitusetapis paralleelselt. Mudeli jõudlust saab suurendada, kui paralleelselt koolitada paljusid nõrku õppijaid alglaaditud andmekogumitel. Kottide näide on Random Forest algoritm.

Selles blogis keskendun Boostingu meetodile, nii et allpool olevas jaotises mõistame, kuidas võimendusalgoritm töötab.

Kuidas algoritmi suurendamine töötab?

Suurendava algoritmi töö põhimõte on mitme nõrga õppija loomine ja nende ennustuste ühendamine ühe tugeva reegli moodustamiseks. Need nõrgad reeglid genereeritakse, rakendades masinõppe algoritme andmekogumi erinevatele jaotustele. Need algoritmid genereerivad iga iteratsiooni jaoks nõrgad reeglid. Pärast mitmekordset kordamist ühendatakse nõrgad õppijad tugevaks õppijaks, kes ennustab täpsemat tulemust.

Kuidas töötab algoritmi suurendamine - masinõppe edendamine - Edureka

Algoritm töötab järgmiselt.

Samm 1: Baasalgoritm loeb andmeid ja määrab igale näidise vaatlusele võrdse kaalu.

2. samm: Tehakse kindlaks põhiõppija tehtud valeennustused. Järgmises iteratsioonis määratakse need valeennustused järgmisele põhiõppijale, kellel on nende valede ennustuste puhul suurem kaal.

3. samm: Korrake 2. sammu, kuni algoritm suudab väljundi õigesti klassifitseerida.

mis on püthoni konstruktor

Seetõttu on Boostingu peamine eesmärk keskenduda rohkem valesti klassifitseeritud ennustustele.

Nüüd, kui teame, kuidas võimendusalgoritm töötab, mõistkem erinevat tüüpi võimendustehnikaid.

Tõstmise tüübid

Suurendamiseks on kolm peamist viisi:

  1. Adaptive Boosting või AdaBoost

  2. Gradient Boosting

  3. XGBoost

Ma arutlen nende tüüpide põhitõdesid.

Kohanduv võimendamine

  • AdaBoost viiakse ellu, ühendades mitu nõrka õppijat üheks tugevaks õppijaks.

  • AdaBoosti nõrgad õppijad võtavad arvesse ühte sisendfunktsiooni ja joonistavad välja ühe jagatud otsustuspuu, mida nimetatakse otsuste känduks. Esimese otsuse kännu väljatõmbamisel kaalutakse iga tähelepanekut võrdselt.

  • Analüüsitakse esimese otsustuskännu tulemusi ja kui mingeid tähelepanekuid valesti klassifitseeritakse, määratakse neile suurem kaal.

  • Pärast seda tõmmatakse uus otsustuskänd, pidades suurema kaaluga tähelepanekuid olulisemaks.

  • Jällegi, kui mingeid tähelepanekuid liigitatakse valesti, omistatakse neile suurem kaal ja see protsess jätkub seni, kuni kõik vaatlused kuuluvad õigesse klassi.

  • Adaboost saab kasutada nii klassifitseerimise kui ka regressioonipõhiste probleemide jaoks, kuid seda kasutatakse sagedamini klassifitseerimise eesmärgil.

Gradient Boosting

Gradient Boosting põhineb ka järjestikulisel ansambliõppel. Siin genereeritakse baasõppijad järjestikku nii, et praegune baasõppija on alati efektiivsem kui eelmine, st üldmudel paraneb iga iteratsiooniga järjestikku.

Seda tüüpi võimendamise erinevus seisneb selles, et valesti klassifitseeritud tulemuste kaalu ei suurendata, selle asemel proovib Gradient Boosting meetod optimeerida eelmise õppija kaotuse funktsiooni, lisades uue mudeli, mis lisab nõrku õppijaid, et vähendada kaotuse funktsiooni.

Siin on peamine mõte ületada eelmise õppija ennustuste vead. Sellisel võimendusel on kolm peamist komponenti:

  1. Kaotuse funktsioon seda tuleb parandada.

  2. Nõrk õppija ennustuste arvutamiseks ja tugevate õppijate moodustamiseks.

  3. An Lisandmudel mis seadistab kadufunktsiooni.

Sarnaselt AdaBoostile saab ka gradienttõstmist kasutada nii klassifitseerimise kui ka regressiooniprobleemide korral.

XGBoost

XGBoost on Gradient boosting meetodi täiustatud versioon, see tähendab sõna otseses mõttes eXtreme Gradient Boosting. Tianqi Cheni välja töötatud XGBoost kuulub hajutatud masinõppekogukonna (DMLC) kategooriasse.

Selle algoritmi peamine eesmärk on suurendada arvutamise kiirust ja efektiivsust. Gradient Descent Boosting algoritm arvutab väljundi aeglasemalt, kuna nad analüüsivad andmekogumit järjest, seetõttu kasutatakse mudeli jõudluse suurendamiseks või ülitugevaks muutmiseks XGBoost.

XGBoost - masinõppe edendamine - Edureka

XGBoost on loodud keskenduma arvutuskiirusele ja mudeli efektiivsusele. XGBoost pakub peamisi funktsioone:

  • Paralleelselt loob otsustuspuid.

  • Hajutatud arvutusmeetodite juurutamine suurte ja keerukate mudelite hindamiseks.

  • Tuumavälise arvutuse kasutamine tohutute andmekogumite analüüsimiseks.

  • Vahemälu optimeerimise juurutamine ressursside parimal viisil kasutamiseks.

Nii need olidmasinatega õppimise algoritmide erinevad tüübid. Asjade huvitavaks muutmiseks käivitame allpool jaotises demo, et näha, kuidas Pythonis saab algoritme võimendada.

Masinõppe edendamine Pythonis

Lühike vastutusest loobumine: kasutan selle demo käitamiseks Pythoni, nii et kui te ei tunne Pythoni, võite vaadata järgmisi ajaveebe:

  1. Kuidas õppida Python 3 rakendust Scratch - juhend algajatele

Nüüd on aeg määrduda ja hakata kodeerima.

Probleemipüstituses: Seeneandmete kogumi uurimiseks ja masinõppe mudeli loomiseks, mis võib seene selle omadusi analüüsides klassifitseerida kas mürgiseks või mitte.

Andmekomplekti kirjeldus: See andmekogum sisaldab hüpoteetiliste proovide üksikasjalikku kirjeldust vastavalt 23 lõpuste seente liigile. Iga liik on liigitatud kas söögiseeneks või mittesöödavaks (mürgiseks).

Loogika: Ehitada masinõppemudel ühe Boostingu algoritmi abil, et ennustada, kas seen on söödav või mitte.

1. samm: importige vajalikud paketid

lehelt sklearn.ensemble import AdaBoostClassifier saidilt sklearn.preprocessing import LabelEncoder saidilt sklearn.tree impordi otsusTreeClassifier impordi pandad pd-na # funktsiooni Import train_test_split funktsioonist sklearn.model_selection import rongi_testi_split # mooduli impordi täpsuse import metrics

2. samm: andmekomplekti importimine

# Laadige andmekogusse = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

3. samm: andmetöötlus

#Define veergude nimed dataset.columns = ['target', 'cap-shape', 'cap-surface', 'cap-color', 'muljutised', 'lõhn', 'nakk-kinnitus', 'lõpuste vahed ',' lõpuste suurus ',' nakkevärv ',' varre kuju ',' varrejuur ',' varre pind-rõnga kohal ',' varre pind-rõnga all ',' varre värv - ülal rõngas ',' varre värv - rõnga all ',' loori tüüp ',' loori värv ',' rõnga number ',' rõnga tüüp ',' eose-print-värv ',' populatsioon ' ',' elupaik '] sildi jaoks andmekogus.veerud: andmekogum [silt] = LabelEncoder (). fit (andmekogum [silt]). teisendus (andmekogum [silt]) # Kuva teabe andmekomplekti print (andmestik.info ( )) Int64Index: 8124 kirjet, 6074–686 Andmeveerud (kokku 23 veergu): sihtmärk 8124 null-int32 kork-kuju 8124 null-null int32-pealispind 8124 null-int int-cap-värv 8124 null-int32 verevalumid 8124 non-null int32 lõhn 8124 non-null int32 nakkekinnitus 8124 non-null int32 nakkevahe 8124 non-null int32 gill-size 8124 null-int32 gill-color 8124 non-null int32 vars-kuju 8124 non-null int32 varrejuur 8124 mitte-null int32 varrepind-rõnga kohal 8124 null-null int32 varre-pind-rõnga all-ala 8124-null-int32-vars-värv-rõnga kohal-8124-null-int32-vars-värv-all-rõngas 8124-null-int32 loor- tüüp 8124 non-null int32 loor-color 8124 non-null int32 rõnganumber 8124 non-null int32 ring-number 8124 non-null int32 spore-print-color 8124 non-null int32 populatsioon 8124 non-null int32 elupaik 8124 non- null int32 dtypes: int32 (23) mälukasutus: 793,4 KB

4. samm: andmete jagamine

X = andmekogum.drop (['target'], telg = 1) Y = andmekogum ['target'] X_treen, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)

5. samm: ehitage mudel üles

mudel = DecisionTreeClassifier (kriteerium = 'entroopia', max_depth = 1) AdaBoost = AdaBoostClassifier (baas_estimaator = mudel, n_estimaatorid = 400, õppimise_hind = 1)

Ülalolevas koodijupis oleme juurutanud AdaBoosti algoritmi. Funktsioonil AdaBoostClassifier on kolm olulist parameetrit:

  • base_estimator: baashinnang (nõrk õppija) on vaikimisi Otsuspuud
  • n_estimator: see väli määrab kasutatavate baasõppijate arvu.
  • learning_rate: see väli määrab õppe määra, mille oleme määranud vaikeväärtuseks, s.t 1.
#Sobige mudel treeningandmetega boostmodel = AdaBoost.fit (X_train, Y_train)

6. samm: mudeli hindamine

#Hindage mudeli täpsust on: 100,0%

Oleme saanud 100% täpsuse, mis on täiuslik!

Nii jõuame sellega selle masinõppimise ajaveebi lõppu. Kui soovite masinõppe kohta lisateavet saada, võite lugeda neid ajaveebe:

Kui soovite registreeruda tehisintellekti ja masinõppe kursusele, on Edurekal spetsiaalselt kureeritud mis aitab teil omandada selliseid tehnikaid nagu juhendatud õppimine, järelevalveta õppimine ja loomuliku keele töötlemine. See hõlmab koolitust tehisintellekti ja masinõppe uusimate edusammude ja tehniliste lähenemisviiside kohta, nagu sügavõpe, graafilised mudelid ja tugevdav õppimine.