Isang Comprehensive Guide To Boosting Machine Algorithms



Ang blog na ito ay buong nakatuon sa kung paano gumagana ang Boosting Machine Learning at kung paano ito maipapatupad upang madagdagan ang kahusayan ng mga modelo ng Pag-aaral ng Machine.

Sa maraming mga pagsulong sa larangan ng pangangalaga ng kalusugan, marketing, negosyo at iba pa, ito ay naging isang pangangailangan upang bumuo ng mas advanced at kumplikadong . Ang Boosting Machine Learning ay isang pamamaraan na maaaring magamit upang malutas ang mga problemang kumplikado, hinihimok ng data, at tunay na mundo. Ang blog na ito ay buong nakatuon sa kung paano gumagana ang Boosting Machine Learning at kung paano ito maipapatupad upang madagdagan ang kahusayan ng mga modelo ng Pag-aaral ng Machine.

Upang makakuha ng malalim na kaalaman sa Artipisyal na Katalinuhan at Pag-aaral ng Makina, maaari kang magpatala nang live ni Edureka na may suporta na 24/7 at habang-buhay na pag-access.





Narito ang isang listahan ng mga paksa na sasakupin sa blog na ito:

  1. Bakit Ginagamit ang Pagpapalakas?
  2. Ano ang Boosting?
  3. Paano gumagana ang Boosting Algorithm?
  4. Mga Uri Ng Pagpapalakas
  5. Demo

Bakit Ginamit ang Boosting?

Upang malutas ang magkakaugnay na mga problema kailangan namin ng mas advanced na mga diskarte. Ipagpalagay natin na sa ibinigay na isang hanay ng data ng mga imahe na naglalaman ng mga imahe ng mga pusa at aso, hiniling sa iyo na bumuo ng isang modelo na maaaring uriin ang mga imaheng ito sa dalawang magkakahiwalay na klase. Tulad ng bawat ibang tao, magsisimula ka sa pamamagitan ng pagkilala ng mga imahe sa pamamagitan ng paggamit ng ilang mga panuntunan, tulad ng ibinigay sa ibaba:



  1. Ang imahe ay may malaswang tainga: Cat

  2. Ang imahe ay may mga matang hugis pusa: Pusa

  3. Ang imahe ay may mas malaking mga limbs: Aso



  4. Ang imahe ay pinatalas ang mga kuko: Cat

  5. Ang imahe ay may isang mas malawak na istraktura ng bibig: Aso

Ang lahat ng mga patakarang ito ay makakatulong sa amin na makilala kung ang isang imahe ay isang Aso o isang pusa, gayunpaman, kung maiuuri namin ang isang imahe batay sa isang indibidwal (solong) panuntunan, ang hula ay magiging depekto. Ang bawat isa sa mga patakarang ito, nang paisa-isa, ay tinatawag na mahinang mag-aaral dahil ang mga patakarang ito ay hindi sapat na malakas upang maiuri ang isang imahe bilang isang pusa o aso.

Samakatuwid, upang matiyak na ang aming hula ay mas tumpak, maaari naming pagsamahin ang hula mula sa bawat isa sa mga mahihinang nag-aaral sa pamamagitan ng paggamit ng panuntunan ng karamihan o average na may timbang. Gumagawa ito ng isang malakas na modelo ng mag-aaral.

Sa halimbawa sa itaas, tinukoy namin ang 5 mahihinang mag-aaral at ang karamihan ng mga patakarang ito (hal. 3 sa 5 mga nag-aaral na hinulaan ang imahe bilang isang pusa) ay nagbibigay sa amin ng hula na ang imahe ay isang pusa. Samakatuwid, ang aming pangwakas na output ay isang pusa.

Dinadala tayo nito sa tanong,

Ano ang Boosting?

Ang Boosting ay isang pamamaraan ng pag-aaral ng ensemble na gumagamit ng isang hanay ng mga algorithm ng Pagkatuto ng Machine upang mai-convert ang mahinang mag-aaral sa malakas na mga nag-aaral upang madagdagan ang katumpakan ng modelo.

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

Ano ang Pagpapalakas - Pag-aaral ng Boosting Machine - Edureka

Tulad ng nabanggit ko na Ang Boosting ay isang paraan ng pag-aaral ng ensemble, ngunit ano nga ba ang natututo ng ensemble?

Ano ang ensemble sa pagkatuto ng makina?

Ang pag-aaral ng ensemble ay isang pamamaraan na ginagamit upang mapahusay ang pagganap ng modelo ng Machine Learning sa pamamagitan ng pagsasama-sama ng maraming mga nag-aaral. Kung ihinahambing sa isang solong modelo, ang ganitong uri ng pag-aaral ay bumubuo ng mga modelo na may pinahusay na kahusayan at kawastuhan. Ito mismo ang dahilan kung bakit ginagamit ang mga pamamaraan ng ensemble upang manalo ng mga nangungunang kumpetisyon sa merkado tulad ng kumpetisyon sa rekomendasyon ng Netflix, mga kumpetisyon ng Kaggle at iba pa.

Ano ang Pag-aaral ng ensemble - Pag-aaral ng Boosting Machine - Edureka

Sa ibaba ay tinalakay ko rin ang pagkakaiba sa pagitan ng Boosting at Bagging.

Pagpapalakas vs Bagging

Ang pag-aaral ng ensemble ay maaaring gumanap sa dalawang paraan:

  1. Sunud-sunod na ensemble, kilalang kilala bilang nagpapalakas , narito ang mga mahihinang mag-aaral ay sunud-sunod na ginawa sa yugto ng pagsasanay. Ang pagganap ng modelo ay napabuti sa pamamagitan ng pagtatalaga ng isang mas mataas na weightage sa nakaraang, hindi wastong naiuri na mga sample. Ang isang halimbawa ng pagpapalakas ay ang AdaBoost algorithm.

  2. Parehong hanay , sikat na kilala bilang nakabalot , narito ang mga mahihinang mag-aaral ay ginawa nang parallel sa yugto ng pagsasanay. Ang pagganap ng modelo ay maaaring madagdagan ng parallelly pagsasanay ng isang bilang ng mga mahihinang mag-aaral sa bootstrapped data set. Ang isang halimbawa ng pag-bag ay ang Random Forest algorithm

Sa blog na ito, magtutuon ako sa pamamaraang Boosting, kaya sa seksyon sa ibaba ay mauunawaan namin kung paano gumagana ang boosting algorithm.

Paano gumagana ang Boosting Algorithm?

Ang pangunahing prinsipyo sa likod ng pagtatrabaho ng boosting algorithm ay upang makabuo ng maraming mahihinang mag-aaral at pagsamahin ang kanilang mga hula upang mabuo ang isang malakas na panuntunan. Ang mga mahihinang panuntunang ito ay nabuo sa pamamagitan ng paglalapat ng mga pangunahing algorithm ng Pag-aaral ng Machine sa iba't ibang mga pamamahagi ng hanay ng data. Ang mga algorithm na ito ay bumubuo ng mahinang mga panuntunan para sa bawat pag-ulit. Matapos ang maraming pag-ulit, ang mga mahihinang mag-aaral ay pinagsama upang mabuo ang isang malakas na mag-aaral na mahuhulaan ang isang mas tumpak na kinalabasan.

Paano Gumagana ang Boosting Algorithm - Boosting Machine Learning - Edureka

Narito kung paano gumagana ang algorithm:

Hakbang 1: Binabasa ng base algorithm ang data at nagtatalaga ng pantay na timbang sa bawat sample na pagmamasid.

Hakbang 2: Ang mga maling hula na ginawa ng batayang nag-aaral ay nakilala. Sa susunod na pag-ulit, ang mga maling paghuhula na ito ay itinalaga sa susunod na batayan ng mag-aaral na may mas mataas na timbang sa mga maling hula.

Hakbang 3: Ulitin ang hakbang 2 hanggang ma-uri-uri ng algorithm nang tama ang output.

Samakatuwid, ang pangunahing layunin ng Boosting ay upang higit na ituon ang mga hula na hindi nauri-classified.

Ngayong alam na natin kung paano gumagana ang boosting algorithm, unawain natin ang iba't ibang uri ng mga diskarteng nagpapalakas.

Mga Uri Ng Pagpapalakas

Mayroong tatlong pangunahing paraan kung saan maaaring maisagawa ang pagpapalakas:

  1. Adaptive Boosting o AdaBoost

  2. Gradient Boosting

  3. XGBoost

Tatalakayin ko ang mga pangunahing kaalaman sa likod ng bawat isa sa mga ganitong uri.

Adaptive Boosting

  • Ang AdaBoost ay ipinatupad sa pamamagitan ng pagsasama ng maraming mahihinang mag-aaral sa isang solong malakas na nag-aaral.

  • Ang mga mahihinang mag-aaral sa AdaBoost ay isinasaalang-alang ang isang solong tampok sa pag-input at iguhit ang isang solong split decision tree na tinatawag na stump ng desisyon. Ang bawat pagmamasid ay timbangin pantay habang inilalabas ang unang tuod ng desisyon.

  • Ang mga resulta mula sa unang tuod ng desisyon ay pinag-aaralan at kung ang anumang mga obserbasyon ay maling naiuri, nai-italaga ang mga ito ng mas mataas na timbang.

  • I-post ito, isang bagong tuod ng desisyon ay iginuhit sa pamamagitan ng pagsasaalang-alang sa mga obserbasyon na may mas mataas na timbang na mas mahalaga.

  • Muli kung ang anumang mga obserbasyon ay maling nauri, binibigyan sila ng mas mataas na timbang at nagpapatuloy ang prosesong ito hanggang sa mahulog sa tamang klase ang lahat ng mga obserbasyon.

  • Maaaring gamitin ang adaboost para sa parehong mga problema sa pag-uuri at batay sa pagbabalik, subalit, ito ay mas karaniwang ginagamit para sa layunin ng pag-uuri.

Gradient Boosting

Ang Gradient Boosting ay batay din sa sunud-sunod na pag-aaral ng ensemble. Dito ang mga nag-aaral ng batayan ay nabuo nang sunud-sunod sa isang paraan na ang kasalukuyang nag-aaral ng base ay palaging mas epektibo kaysa sa nakaraang isa, ibig sabihin, ang pangkalahatang modelo ay nagpapabuti ng sunud-sunod sa bawat pag-ulit.

Ang pagkakaiba sa ganitong uri ng pagpapalakas ay ang mga timbang para sa hindi nauri na mga kinalabasan ay hindi nadagdagan, sa halip, sinusubukan ng pamamaraan ng Gradient Boosting na i-optimize ang pagkawala ng pag-andar ng nakaraang nag-aaral sa pamamagitan ng pagdaragdag ng isang bagong modelo na nagdaragdag ng mahina na mga nag-aaral upang mabawasan ang pagkawala ng pag-andar.

Ang pangunahing ideya dito ay upang mapagtagumpayan ang mga pagkakamali sa mga hula ng nakaraang nag-aaral. Ang ganitong uri ng pagpapalakas ay may tatlong pangunahing mga sangkap:

  1. Pag-andar ng pagkawala na kailangang mapabuti.

  2. Mahina na mag-aaral para sa pagkalkula ng mga hula at pagbubuo ng matitibay na mag-aaral.

  3. Isang Modelo ng Additive na magpaparehistro sa pagpapaandar ng pagkawala.

Tulad ng AdaBoost, ang Gradient Boosting ay maaari ding gamitin para sa parehong mga problema sa pag-uuri at pagbabalik.

XGBoost

Ang XGBoost ay isang advanced na bersyon ng Gradient boosting method, literal na nangangahulugang eXtreme Gradient Boosting. Ang XGBoost na binuo ni Tianqi Chen, ay nabibilang sa kategorya ng Distribution Machine Learning Community (DMLC).

Ang pangunahing layunin ng algorithm na ito ay upang taasan ang bilis at kahusayan ng pagkalkula. Kinakalkula ng Gradient Descent Boosting algorithm ang output sa isang mas mabagal na rate dahil sunud-sunod nilang pinag-aaralan ang hanay ng data, samakatuwid ang XGBoost ay ginagamit upang mapalakas o labis na mapalakas ang pagganap ng modelo.

XGBoost - Pag-aaral ng Boosting Machine - Edureka

Ang XGBoost ay idinisenyo upang ituon ang bilis ng computational at kahusayan ng modelo. Ang mga pangunahing tampok na ibinigay ng XGBoost ay:

  • Parallel na lumilikha ng mga puno ng pagpapasya.

  • Pagpapatupad ng mga ipinamamahaging pamamaraan ng computing para sa pagsusuri ng malaki at kumplikadong mga modelo.

  • Paggamit ng Out-of-Core Computing upang pag-aralan ang malalaking mga dataset.

  • Pagpapatupad ng pag-optimize sa cache upang masulit ang paggamit ng mga mapagkukunan.

Kaya ito ayang iba't ibang uri ng mga algorithm ng Boosting Machine Learning. Upang gawing kawili-wili ang mga bagay, sa seksyon sa ibaba ay magpapatakbo kami ng isang demo upang makita kung paano maipapatupad ang mga boosting algorithm sa Python.

Ang Boosting Machine Learning Sa Python

Isang maikling disclaimer: Gagamitin ko ang Python upang patakbuhin ang demo na ito, kaya kung hindi mo alam ang Python, maaari kang dumaan sa mga sumusunod na blog:

  1. Paano Malalaman ang Python 3 mula sa Scratch - Isang Gabay sa Mga Nagsisimula

Ngayon ay oras na upang madumihan ang iyong mga kamay at magsimulang mag-coding.

Pahayag ng Suliranin: Upang pag-aralan ang isang set ng datos ng kabute at bumuo ng isang modelo ng Pag-aaral ng Machine na maaaring uriin ang isang kabute na nakalalason man o hindi, sa pamamagitan ng pagsusuri ng mga tampok nito.

Paglalarawan ng Data Set: Ang hanay ng data na ito ay nagbibigay ng isang detalyadong paglalarawan ng mga huwaran na hipotesis alinsunod sa 23 species ng mga gilled mushroom. Ang bawat species ay inuri bilang alinman sa nakakain na kabute o hindi nakakain (nakakalason).

Lohika: Upang bumuo ng isang modelo ng Pag-aaral ng Machine sa pamamagitan ng paggamit ng isa sa mga Boosting algorithm upang mahulaan kung ang isang kabute ay nakakain o hindi.

Hakbang 1: I-import ang kinakailangang mga pakete

__init__ sa sawa
mula sa sklearn.ensemble import AdaBoostClassifier mula sa sklearn.preproseso ng pag-import ng LabelEncoder mula sa sklearn.tree import DecisionTreeClassifier import pandas bilang pd # I-import ang pagpapaandar ng train_test_split mula sa sklearn.model_selection import train_test_split #Import na scikit-alamin ang module ng sukatan para sa pagkalkula ng sukatan ng sklearn

Hakbang 2: I-import ang hanay ng data

# Mag-load sa data data = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomdataset.csv')

Hakbang 3: Pagpoproseso ng Data

#Tukuyin ang mga pangalan ng haligi ng dataset.columns = ['target', 'cap-form', 'cap-ibabaw', 'cap-color', 'bruises', 'odor', 'gill-attachment', 'gill-spacing ',' laki ng gill ',' kulay ng gill ',' hugis ng tangkay ',' tangkay-ugat ',' tangkay-ibabaw-itaas-singsing ',' tangkay-ibabaw-sa ibaba-singsing ',' kulay ng tangkay -above-ring ',' stalk-color-below-ring ',' veil-type ',' veil-color ',' ring-number ',' ring-type ',' spore-print-color ',' populasyon ',' habitat '] para sa label sa dataset.columns: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Ipakita ang impormasyon tungkol sa naka-print na set ng data (dataset.info ( )) Int64Index: 8124 na mga entry, 6074 hanggang 686 Mga haligi ng data (kabuuang 23 mga haligi): target na 8124 non-null int32 cap-form 8124 non-null int32 cap-ibabaw 8124 non-null int32 cap-color 8124 non-null int32 bruises 8124 hindi-null int32 amoy 8124 hindi-null int32 gill-attachment 8124 hindi-null int32 gill-spacing 8124 hindi-null int32 gill-size 8124 hindi-null int32 gill-color 8124 non-null int32 stalk-form 8124 non-null int32 stalk-root 8124 non-null int32 stalk-ibabaw-sa itaas-singsing 8124 non-null int32 stalk-ibabaw-sa ibaba-ring 8124 hindi-null int32 stalk-color-sa itaas-ring 8124 non-null int32 stalk-color-sa ibaba-ring 8124 non-null int32 veil- type 8124 non-null int32 veil-color 8124 non-null int32 ring-number 8124 non-null int32 ring-type 8124 non-null int32 spore-print-color 8124 non-null int32 populasyon 8124 non-null int32 habitat 8124 non- null int32 dtypes: int32 (23) paggamit ng memorya: 793.4 KB

Hakbang 4: Paghahati sa Data

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)

Hakbang 5: Buuin ang modelo

modelo = DecisionTreeClassifier (criterion = 'entropy', max_depth = 1) AdaBoost = AdaBoostClassifier (base_estimator = model, n_estimators = 400, learning_rate = 1)

Sa snippet ng code sa itaas, ipinatupad namin ang AdaBoost algorithm. Ang pagpapaandar ng 'AdaBoostClassifier' ay tumatagal ng tatlong mahahalagang parameter:

  • base_estimator: Ang base estimator (mahina natututo) ay Mga Puno ng Desisyon bilang default
  • n_estimator: Tinutukoy ng patlang na ito ang bilang ng mga gagamitin sa batayang gagamitin.
  • Learning_rate: Tinutukoy ng patlang na ito ang rate ng pagkatuto, na itinakda namin sa default na halaga, hal. 1.
#Magkasya ang modelo na may boostmodel ng data ng pagsasanay = AdaBoost.fit (X_train, Y_train)

Hakbang 6: Pagsusuri sa Modelo

#Suriin ang kawastuhan ng modelo ng y_pred = boostmodel.predict (X_test) mga hula = sukatan.akuridad_score (Y_test, y_pred) # Kinakalkula ang katumpakan sa porsyento na naka-print ('Ang katumpakan ay:', mga hula * 100, '%') Ang katumpakan ay: 100.0%

Nakatanggap kami ng isang katumpakan ng 100% na perpekto!

Kaya't dito, natapos na natin ang Boosting Machine Learning Blog na ito. Kung nais mong matuto nang higit pa tungkol sa Pag-aaral ng Machine, maaari mong basahin ang mga blog na ito:

Kung nais mong magpatala para sa isang kumpletong kurso sa Artipisyal na Katalinuhan at Pag-aaral ng Makina, ang Edureka ay may espesyal na na-curate iyon ay magpapasikat sa iyo sa mga diskarteng tulad ng Pinangangasiwaang Pag-aaral, Hindi Pinapamahalaang Pag-aaral, at Pagproseso ng Likas na Wika. Kasama rito ang pagsasanay sa pinakabagong mga pagsulong at panteknikal na diskarte sa Artipisyal na Pag-intelektuwal at Pag-aaral ng Makina tulad ng Deep Learning, Mga Modelong Grapiko at Pag-aaral ng Patatag.