Masinõpe R-s algajatele koos näitega



See R-iga masinõppe ajaveeb aitab teil õppida masinaõppe põhikontseptsioone ja rakendada R-ga erinevaid masinaõppimise algoritme.

Masinõpe R-ga

Masinõpe on olevik ja tulevik! Alates Netflixi soovitusmootorist kuni Google'i isejuhtiva autoni - see kõik on masinõpe. See blogi R-masinaõppimise kohta aitab teil mõista masinõppe põhikontseptsioone, millele järgnevad erinevad masinõppealgoritmid, ning rakendada neid masinõppealgoritme R-ga.

See blogi teemal „Masinõpe R-ga” koosneb järgmistest jaotistest:





Masinõpe R-ga | Edureka

c ++ algoritmi sortimine

Masinõppe mõistmine

Fish1- masinõpe R-ga - Edureka



Kuidas sa tead, et kõik need on kalad?



Lapsena võisite kohata kala pilti ja teie lasteaiaõpetajad või vanemad oleksid teile öelnud, et see on kala ja sellel on mõned spetsiifilised omadused, nagu uimed, lõpused, paar kala silmad, saba ja nii edasi. Nüüd, kui teie aju satub pildile koos nende funktsioonide kogumiga, registreerib ta selle automaatselt kalaks, kuna teie aju on õppinud et see on kala.

Nii toimib meie aju, aga kuidas on masinaga? Kui sama pilt antakse masinasse, kuidas masin selle kalaks tuvastab?

Siin on M achine Õppimine tuleb sisse. Jätkame kalade kujutiste söötmist arvutisse sildiga 'kala' kuni masin õpib kõiki seotud funktsioone koos kala.

Kui masin on õppinud kõiki kalaga seotud funktsioone, edastame talle uusi andmeid, et teha kindlaks, kui palju ta on kalaga õppinud.

Teisisõnu, Toorandmed / koolitusandmed antakse masinale, nii et see õpib kõik funktsiooniga seotud funktsioonid Treeningu andmed. Kui õppimine on tehtud, antakse see Uued andmed / testandmed et teha kindlaks, kui hästi masin on õppinud.

Liigugem selles masinõppe R-blogis edasi ja mõistame masinõppe tüüpe.

Masinõppe tüübid

  • Juhendatud õppimine:

Juhendatud õppimisalgoritm õpib teadaolevast andmekogumist (treeningandmed), millel on prognoosimiseks sildid.

Regressioon ja klassifikatsioon on mõned näited juhendatud õppest.

#Klassifikatsioon:

Klassifikatsioon määrab, millisesse kategooriate komplekti uus vaatlus kuulub, st klassifitseerimisalgoritm õpib kõik treeninguandmete tunnused ja sildid ning kui neile antakse uusi andmeid, peab ta uutele vaatlustele määrama sildid sõltuvalt sellest, mida ta õppinud on koolituse andmetest.

Selle näite puhul, kui esimesele tähelepanekule antakse silt „Mees“, siis klassifitseeritakse see õigustatult, kuid kui sellele antakse silt „Naine“, on klassifikatsioon vale. Sarnaselt teise tähelepanekuga klassifitseeritakse see õigesti, kui antud silt on „Naine”, vastasel juhul on klassifikatsioon vale.

#Regressioon:

Regressioon on juhendatud õppealgoritm, mis aitab kindlaks teha, kuidas üks muutuja teist muutujat mõjutab.

Siinkohal on 'elav_ala' sõltumatu muutuja ja 'hind' on sõltuv muutuja, st me määrame, kuidas 'hind' varieerub 'elava ala' suhtes.

  • Järelevalveta õppimine:

Järelevalveta õpialgoritm teeb järeldusi andmetest, millel pole silte.

Klasterdamine on järelevalveta õppimise näide. “K-tähendab”, “Hierarhiline”, “Fuzzy C-vahendid” on mõned näited klastrite moodustamise algoritmidest.

Selles näites on vaatluste kogum jagatud kaheks klastriks. Klasterdamine toimub vaatluste sarnasuse alusel. Klastrisisene ja klastrite vaheline sarnasus on kõrge, st kõigi busside sarnasus on väga kõrge, kuid busside ja autode vahel on madal.

  • Tugevdusõpe:

Tugevdusõpe on teatud tüüpi masinõppe algoritm, kus masin / agent aastal keskkond õpib ideaalset käitumist, et maksimeerida selle jõudlust. Agent vajab käitumise õppimiseks lihtsat tagasisidet, seda tuntakse kui tugevdussignaal .

Võtame pacman näiteks. Kuni pacman sööb toitu, teenib ta punkte, kuid koletise vastu kukkudes kaotab ta elu. Nii saab pacman teada, et ta peab sööma rohkem toitu ja vältima koletisiselle jõudluse parandamiseks.

Masinõppe rakendamine R-ga:

Lineaarne regressioon:

Töötame teemantide andmekomplektiga, et rakendada lineaarse regressiooni algoritmi:

Andmekogumi kirjeldus:

Enne andmetele mis tahes mudeli loomist peaksime andmed jagama rongide ja testide komplektideks. Mudel ehitatakse rongikomplektile ja selle täpsust kontrollitakse testkomplektil.

Andmete kaheks jagamiseks peame laadima paketi caTools.

raamatukogu (caTools)

Pakett „caTools” pakub funktsiooni „sample.split ()”, mis aitab andmeid jagada.

sample.split (teemantide $ hind, SplitRatio = 0,65) -> split_index

65% hinnaveeru vaatlustest on omistatud “true” ja ülejäänud 35% “false” silt.

alamhulk (teemandid, split_index == T) -> rong alamhulk (teemandid, split_index == F) -> test

Kõik tähelepanekud, millel on „true“ silt, on salvestatud rong ”objekt ja need tähelepanekud, millel on vale silt, on määratud komplekti „test”.

Nüüd, kui jagamine on tehtud ja meil on olemas rongi- ja testikomplektid, on aeg treeningkomplektile üles ehitada lineaarse regressiooni mudel.

saada massiivi suurus javascript

Lineaarse regressioonimudeli koostamiseks rongi andmetele kasutame funktsiooni „lm ()”. Oleme määramas hind teemantide väärtus kõigi teiste andmekogumi muutujate suhtes. Ehitatud mudel on salvestatud objektile “mod_regress”.

lm (hind ~., andmed = rong) -> mod_regress

Nüüd, kui oleme mudeli üles ehitanud, peame ennustama komplekti „test”. Funktsiooni “ennustada ()” kasutatakse ennustuste saamiseks. Selleks on vaja kahte argumenti: ehitatud mudel ja testikomplekt. Ennustatud tulemused salvestatakse objektile „result_regress”.

ennustama (mod_regress, test) -> result_regress

Seome funktsiooni „cbind ()” abil tegelikud hinnaväärtused „test” andmekogumist ja prognoositavad väärtused ühte andmekogumisse. Uus andmeraam on salvestatud jaotisesse „Final_Data”

cbind (tegelik = test $ hind, ennustatud = tulemus_regress) -> lõplik_andmed 
as.data.frame (lõplikud_andmed) -> lõplikud_andmed

Pilk „Final_Data“, mis sisaldab tegelikke väärtusi ja ennustatud väärtusi:

Leiame viga, lahutades ennustatud väärtused tegelikest väärtustest ja lisades selle tõrke uue veeruna jaotisesse „Lõplikud_andmed”:

(Final_Data $ tegelik- Final_Data $ ennustatud) -> viga
cbind (lõplikud_andmed, viga) -> lõplikud_andmed

Pilk „Final_Data“, mis sisaldab ka viga ennustuses:

Nüüd läheme edasi ja arvutame Ruudu keskmise ruutviga ” mis annab kõigi ennustuste koondvea

rmse1<-sqrt(mean(Final_Data$error^2)) 
rmse1

Edasi ehitame veel ühe mudeli, et saaksime võrrelda mõlema mudeli täpsust ja teha kindlaks, milline neist on parem.

Ehitame komplekti „rong” uue lineaarse regressioonimudeli, kuid seekord kukutame veerud „x” ja „y” sõltumatutest muutujatest, st teemantide “hinna” määravad kõik veerud, välja arvatud 'x' ja 'y'.

Ehitatud mudel on salvestatud kausta „mod_regress2”:

lm (hind ~.-y-z, andmed = rong) -> mod_regress2

Ennustatud tulemused salvestatakse jaotisse „result_regress2”

ennustama (mod_regress2, test) -> result_regress2

Tegelikud ja prognoositavad väärtused on ühendatud ja salvestatud jaotisesse „Final_Data2”:

cbind (tegelik = test $ hind, ennustatud = tulemus_regress2) -> lõplik_andmed2 
as.data.frame (Final_Data2) -> Final_Data2

Lisame vea ennustamisel ka veergu „Final_Data2”

(Final_Data2 $ tegelik- Final_Data2 $ ennustatud) -> tõrge2
cbind (Final_Data2, error2) -> Final_Data2

Pilk „Final_Data2”:

Koguvea saamiseks ruutkeskmise ruutvea leidmine:

rmse2<-sqrt(mean(Final_Data2$error^2))

Näeme, et „rmse2” on marginaalselt väiksem kui „rmse1” ja seega on teine ​​mudel marginaalselt parem kui esimene mudel.

kuidas java palindroomi leida

Klassifikatsioon:

Töötame rakendamiseks andmekomplektiga „car_purchase” rekursiivne jaotamine mis on klassifitseerimisalgoritm.

Jagagem andmed „rongi” ja „test” komplektideks, kasutades funktsiooni “sample.split ()” paketist “caTools”.

raamatukogu (caTools)

65% veeru „Ostetud” vaatlustest omistatakse sildid „TÕENE” ja ülejäänud tähised „VÄÄR”.

sample.split (auto_ost $ ostetud, SplitRatio = 0.65) -> split_values

Kõik need vaatlused, millel on silt „TRUE”, salvestatakse rongiandmetesse ja need tähelepanekud, millel on märgis „FALSE”, määratakse „test” andmetele.

alamhulk (auto_ost, jagatud_väärtused == T) -> rongiandmed
alamhulk (auto_ost, jagatud_väärtused == F) -> test_andmed

Rekursiivse partitsiooni algoritmi loomise aeg:

Alustame paketi rpart laadimisega:

raamatukogu (rpart)

Veerg „Ostetud” on sõltuv muutuja ja kõik muud veerud on sõltumatud muutujad, st kõigi teiste veergude suhtes otsustame, kas inimene on auto ostnud või mitte. Mudel on üles ehitatud rongiandmetele ja tulemus salvestatakse kausta „mod1”.

rpart (ostetud ~., andmed = rongiandmed) -> mod1

Koostame tulemuse:

joonis (mod1, marginaal = 0,1) tekst (mod1, ilus = T, cex = 0,8)

Nüüd jätkame ja prognoosime tulemusi saidil „test_data”. Esimese argumendina anname ehitatud rparti mudeli “mod1”, testhulga teiseks argumendiks “test_data” ja kolmanda argumendi puhul ennustuse tüübi “klassiks”. Tulemus salvestatakse objekti ‘result1’.

ennustama (mod1, test_data, type = 'class') -> tulemus1

Hinnakem mudeli täpsust, kasutades caret-paketi funktsiooni „confusionMatrix ()“.

raamatukogu (caret) confusionMatrix (tabel (test_andmed $ ostetud, tulemus1))

Segadusmaatriks ütleb meile, et 90 tähelepanekust, kus inimene autot ei ostnud, on 79 tähelepanekut õigesti klassifitseeritud kategooriasse “Ei” ja 11 - valesti “JAH”. Samamoodi on 50 tähelepanekust, kus inimene auto tegelikult ostis, 47 õigustatult liigitatud “JAH” ja 3 vääralt “EI”.

Mudeli täpsuse leiame, jagades õiged ennustused koguennustustega, s.o (79 + 47) / (79 + 47 + 11 + 3).

K-klastrid:

K-keskmiste klastrite juurutamiseks töötame koos iirise andmekogumiga:

Eemaldame veeru „Liigid” ja loome uue andmekogumi, mis sisaldab ainult iirise andmekomplekti nelja esimest veergu.

iiris [1: 4] -> iris_k

Võtkem klastrite arvuks 3. Funktsioon “Kmeans ()” võtab sisendandmed ja klastrite arvu, kuhu andmed klastritakse. Süntaks on: kmeans (andmed, k), kus k on klastrikeskuste arv.

kmeans (iris_k, 3) -> k1

Klastrite analüüsimine:

str (k1)

Funktsioon str () annab kmeani struktuuri, mis sisaldab mitmesuguseid parameetreid, nagu withinss, betweenss jms, analüüsides, mille abil saate teada kmeanide toimivuse.

Betweenss: ruutude summa, s.o klastrisisese sarnasuse vahel

withinss: ruudu, s.o klastrite sarnasuse summa piires

totwithinss: kõigi klastrite kõigi sidumiste summa, st klastrisisene kogu sarnasus

Hea klastrite väärtus on madalam “tot.withinss” ja suurem “betweenss”, mis sõltub algselt valitud klastrite “k” arvust.

Aeg on küps saada masinõppe eksperdiks, et ära kasutada uusi võimalusi, mis teile ette tulevad. See viib meid selle lõppu “ Masinõpe R-ga ”Ajaveeb. Loodan, et see ajaveeb oli informatiivne ja viljakas.

Edurekal on spetsiaalselt kureeritud mis aitab teil omandada teadmisi masinõppe algoritmidest, nagu K-Means Clustering, Otsustamispuud, Random Forest, Naive Bayes. Õpite ka statistika, aegridade, tekstikaevanduse mõisted ja sissejuhatuse süvendatud õppesse. Varsti algavad selle kursuse uued partiid !!