Sissejuhatus masinõppe algoritmidesse

Masinõpe on ennustava analüütika uurimine, mis töötab põhimõttel, et arvutid õpivad varasematest andmetest ja teevad seejärel uute andmete osas ennustusi. Masinõppe algoritmide tulek oli juba pikka aega tagasi, kui arvutid välja töötati. Hiljutine hüpe on aga tekkinud tänu suurele hulgale andmetele, mida genereeritakse, ja tohutule arvutusvõimsusele, mis tänapäevastel arvutitel on. Selle tulemuseks on süvaõppe - masinõppe alamvälja - tekkimine, mis hõlmab rohkem andmeid. See toimib nagu inimese aju, kus neurone kasutatakse paremate otsuste tegemiseks. Sarnaselt moodustavad süvaõppes närvivõrgud paremate otsuste tegemiseks kihid, mis järgivad edasisuunamise ja tagasiulatuva levimise põhimõtet.

Masinõppe algoritmide kategooriad

Masinõppe algoritmide valdkonda võib liigitada järgmiselt:

  • Juhendatud õpe - juhendatud õppe puhul on andmekogum märgistatud, st iga funktsiooni või sõltumatu muutuja jaoks on olemas vastavad sihtandmed, mida me kasutaksime mudeli koolitamiseks.
  • ÜRO juhendatud õpe - erinevalt juhendatud õppest ei ole andmekogum sel juhul märgistatud. Seega kasutatakse rühmitamistehnikat andmete rühmitamiseks vastavalt nende sarnasusele sama rühma andmepunktide vahel.
  • Tugevdusõpe - spetsiaalne masinõppe tüüp, kus mudel õpib igast tehtud toimingust. Mudelit premeeritakse tehtud õigete otsuste eest ja karistatakse valede otsuste eest, mis võimaldavad mudelitel õppida ja tundmatute andmete korral täpsemaid otsuseid teha.

Masinõppe algoritmide jaotus

Masinõppe algoritmide probleemid võib jagada -

  • Regressioon - sõltuvate ja sõltumatute muutujate vahel on pidev seos. Sihtmuutuja on oma olemuselt numbriline, samas kui sõltumatud muutujad võivad olla numbrilised või kategoorilised.
  • Klassifikatsioon - kõige levinum probleemilause, mida reaalses maailmas võite leida, on andmepunkti liigitamine mõnda binaarsesse, multinatsionaalsesse või ordinaarsesse klassi. Binaarse klassifikatsiooni ülesandes on sihtmuutujal ainult kaks väljundit (jah / ei, 0/1, tõene / vale). Multinomiaalse klassifikatsiooni ülesandes on sihtmuutujal mitu klassi (Apple / Orange / Mango jne). Ordinaalse klassifikatsiooni ülesandes järjestatakse sihtmuutuja (nt - õpilaste hinne).

Nüüd on programmeerijad ja teadlased sedalaadi probleemide lahendamiseks välja töötanud mõned programmid või algoritmid, mida saaks andmete põhjal prognooside tegemiseks kasutada. Need algoritmid võiks jagada lineaarseks ja mittelineaarseks või puupõhiseks algoritmiks. Lineaarseid algoritme, näiteks lineaarset regressiooni ja logistilist regressiooni, kasutatakse tavaliselt siis, kui funktsiooni ja sihtmuutuja vahel on lineaarne seos, samas kui mittelineaarseid mudeleid kajastavates andmetes kasutatakse puupõhiseid meetodeid nagu otsustuspuu, juhuslik mets, gradiendi suurendamine, jne, on eelistatud.

Siiani saime masinõppe kohta lühikese intuitsiooni. Nüüd õpiksite mõnda selle eelprogrammeeritud algoritme, mida saaksite kasutada oma järgmises projektis.

Algoritmid

Praegu on turul arvukalt masinõppe algoritme ja see kasvab ainult selles valdkonnas tehtavate uuringute mahtu arvestades. Lineaarne ja logistiline regressioon on üldiselt esimesed algoritmid, mida õpite andmeteadlasena, millele järgnevad keerukamad algoritmid.

Allpool on esitatud mõned masinõppe algoritmid koos pythoni näidiskoodilõikudega.

1. Lineaarne regressioon

Nagu nimigi ütleb, võiks seda algoritmi kasutada juhtudel, kui olemuselt pidev sihtmuutuja sõltub lineaarselt sõltuvatest muutujatest. Seda esindab -

y = a * x + b + e, kus y on sihtmuutuja, mida proovime ennustada, a on pealtkuulamine ja b on kalle, x on meie sõltuv muutuja, mida kasutatakse ennustamiseks. See on lihtne lineaarne regressioon, kuna on ainult üks sõltumatu muutuja. Mitme lineaarse regressiooni korral oleks võrrand olnud -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Siin e on vea mõiste ja a1, a2 .. a (n) on sõltumatute muutujate koefitsient.

Mudeli toimivuse hindamiseks kasutatakse mõõdikut, milleks sel juhul võib olla ruutkeskmine viga (Root Mean Square Error), mis on tegelike ja ennustatud väärtuste erinevuse summa keskmise ruutjuur.

Lineaarse regressiooni eesmärk on leida kõige sobivam joon, mis minimeeriks tegelike ja ennustatud andmepunktide erinevuse.

Lineaarse regressiooni võiks Pythonis kirjutada järgmiselt -

2. Logistiline regressioon

Lineaarse suhte säilitamise osas on see sama mis lineaarne regressioon. Kuid erinevalt lineaarsest regressioonist on logistilise regressiooni sihtmuutuja kategooriline, st binaarne, multinomaalne või ordinaalne. Aktiveerimisfunktsiooni valik on logistilise regressiooni puhul oluline, kuna binaarsete klassifikatsiooniprobleemide korral kasutatakse eeliste logaritmi, st kasutatakse sigmoidset funktsiooni.

Mitmeklassilise probleemi korral eelistatakse funktsiooni softmax, kuna sigmoidfunktsioon võtab palju arvutusaega.

Klassifikatsiooniprobleemi hindamiseks kasutatakse tavaliselt täpsust või ROC-kõverat. Mida rohkem pindala on ROC, seda parem on mudel. Juhusliku graafi AUC oleks 0, 5. Väärtus 1 näitab kõige täpsust, 0 aga väikseimat täpsust.

Logistilist regressiooni võiks õppimisel kirjutada nii -


3. K-lähimad naabrid

Masinõppe algoritme saab kasutada nii klassifitseerimise kui ka regressiooniprobleemide lahendamiseks. KNN-meetodi idee seisneb selles, et see ennustab uue andmepunkti väärtust K lähima naabri põhjal. Konfliktide vältimiseks eelistatakse tavaliselt paarituna arvu K. Uute andmepunktide klassifitseerimisel võetakse arvesse naabrite kõrgeima režiimiga klassi. Regressiooniprobleemi puhul peetakse väärtuseks keskmist.

Ma sain teada, et KNN on kirjutatud järgmiselt:


KNN-i kasutatakse soovitusmootori ehitamisel.

4. Toetage vektormasinaid

Klassifitseerimise algoritm, kus hüpertasand eraldab kaks klassi. Binaarses klassifikatsiooniprobleemis peetakse kahest erinevast klassist kahte vektorit tugivektoriteks ja hüpertasand tõmmatakse tugivektoritest maksimaalse kauguse kaugusele.

Nagu näete, eraldab kaks klassi kaks rida. Kuid enamikul juhtudel poleks andmed nii täiuslikud ja lihtne hüper lennuk ei saaks klasse eraldada. Seega peate häälestama selliseid parameetreid nagu Regulaarsus, Kernel, Gamma jne.

Tuum võib olla lineaarne või polünoomne sõltuvalt sellest, kuidas andmeid eraldatakse. Sel juhul on kernel oma olemuselt lineaarne. Reguleerimise korral peate valima optimaalse C väärtuse, kuna kõrge väärtus võib põhjustada ületalitluse ja väike väärtus võib mudeli alla jääda. Üksiku treeningnäite mõju määratleb Gamma. Joone lähedal asuvaid punkte peetakse suure gamma korral ja vastupidi madala gamma korral.

Sklearn'is kirjutatakse SVM järgmiselt -


5. Naiivsed Bayes

See töötab Bayesi teoreemi põhimõttel, mis leiab sündmuse tõenäosuse, arvestades mõnda tõelist tingimust. Bayesi teoreem on esindatud järgmiselt:

Algoritmi nimetatakse naiivseks, kuna see usub, et kõik muutujad on sõltumatud ja ühe muutuja olemasolul pole mingit seost teiste muutujatega, mis reaalses elus kunagi pole. Naiivseid Bayes'e saab kasutada e-posti rämpsposti klassifitseerimisel ja teksti klassifitseerimisel.

Naiivne Bayes'i kood Pythonis -

6. Otsuste puu

Nii klassifitseerimise kui ka regressiooniprobleemide jaoks kasutatav otsusepuu algoritm on üks kõige lihtsamaid ja hõlpsamini tõlgendatavaid masinõppe algoritme. Seda ei mõjuta kõrvalekalded ega andmetes puuduvad väärtused ning see võib hõlmata mittelineaarsed seosed sõltuvate ja sõltumatute muutujate vahel.

Otsustuspuu ehitamiseks võetakse algul arvesse kõiki funktsioone, kuid maksimaalse teabevahetusega funktsioon võetakse lõplikuks juursõlmeks, mille alusel järjestikune tükeldamine toimub. See jagamine jätkub alamsõlmes maksimaalse teabekriteeriumi alusel ja see peatub, kuni kõik esinemisjuhud on klassifitseeritud või andmeid ei saa enam jagada. Otsustuspuud on sageli altid ületalitlusele ja seetõttu on vaja hüperparameetrit häälestada nagu maksimaalne sügavus, minimaalsed lehe sõlmed, minimaalsed proovid, maksimaalsed omadused ja nii edasi. Ülemüürimise vähendamiseks on olemas ahne lähenemisviis, mis seab igas etapis piirangud ja valib selle jaotuse jaoks parimad võimalikud kriteeriumid. On veel üks parem lähenemisviis, mida nimetatakse pügamiseks, kus puu ehitatakse kõigepealt teatud eelnevalt kindlaksmääratud sügavuseni ja seejärel alustatakse altpoolt, kui see mudeli parandamiseks ei tööta.

Sklearn'is kodeeritakse otsusepuud järgmiselt:



7. Juhuslik mets

Otsustuspuu ületarbimise vähendamiseks tuleb vähendada mudeli varieeruvust ja nii saigi pakendamise kontseptsioon paika. Kottimine on tehnika, kus mitme väljundi klassifikaatori väljund moodustab lõppväljundi. Juhuslik mets on üks selline kotimeetod, kus andmekogumist võetakse proovid mitmeks andmekogumiks ja omadused valitakse iga komplekti jaoks juhuslikult. Seejärel rakendatakse iga valimisse võetud andme jaoks otsustuspuu algoritmi, et saada väljundid igast režiimist. Regressiooniprobleemi puhul võetakse arvesse kõigi mudelite väljundi keskmist, klassifitseerimisprobleemi korral peetakse andmepunkti klassifitseerimiseks klassi, mis saab maksimaalselt hääli. Juhuslikku metsa ei mõjuta kõrvalnähud, puuduvad andmetes olevad väärtused ja see aitab ka mõõtude vähendamisel. Pole siiski tõlgendatav, milline puudus on Random Forestil. Pythonis võiksite Random Foresti koodiks nimetada -


8. K-tähendab klastrit

Siiani töötasime juhendatud õppeprobleemidega, kus igal sisendil on vastav väljund. Nüüd õpiksime juhendamata õppimise kohta, kus andmed on sildistamata ja tuleb rühmitada konkreetsetesse rühmadesse. Klastritehnikaid on mitu. Kõige tavalisem neist on aga K-vahendite rühmitamine. Tindivahendid, k tähistab klastrite arvu, mis tuleb enne andmestikus maksimaalse dispersiooni säilitamist sisse seada. Kui k on seatud, lähtestatakse tsentroidid. Tsenooriide kohandatakse seejärel korduvalt nii, et tsentroidi sees olevate andmepunktide vaheline kaugus on maksimaalne ja vahemaa kahe eraldiseisva vahel on maksimaalne. Eukleidiline vahemaa, Manhattani vahemaa jne on mõned selleks kasutatavast vahemaavalemist.

K väärtuse võib leida küünarliigese meetodist.

K-vahendite rühmitust kasutatakse e-kaubanduse tööstuses, kus kliendid on rühmitatud vastavalt nende käitumisharjumustele. Seda saaks kasutada ka riskianalüüsis. Allpool on python kood -


Järeldus: masinõppe algoritmid

Andmeteadlane on 21. sajandi seksikaim töö ja masinõpe on kindlasti üks selle põhiteadmisi. Andmeteadlaseks saamiseks peab olema kõigi nende algoritmide põhjalik tundmine ja ka mitmed muud uued tehnikad, näiteks süvaõpe.

Soovitatavad artiklid

See on olnud masinõppe algoritmide juhend. Siin oleme arutanud masinkeele kontseptsiooni, kategooriaid, probleeme ja erinevaid algoritme. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Masinõppe tehnikad
  2. Mis on sügav õppimine
  3. Andmeteadlane vs masinõpe
  4. Juhendatud õpe vs juhendamata õpe
  5. Hüperparameetri masinõpe
  6. Mis on tugevdusõpe?
  7. Ansamblite õppimise enim kasutatud tehnikad
  8. C ++ algoritmi näidete täielik juhend
  9. Masinõppe elutsükli etappide juhend

Kategooria: