Andmeteadus

Masinõppe õpetus koos Scikit-learniga

Masinõppe õpetus koos Scikit-learniga

Selles õppetükis masinõppe kohta koos scikit-learniga õpime selle suurepärase Pythoni paketi erinevaid aspekte, mis võimaldab meil püstitatud hüpoteesi testimiseks rakendada lihtsaid ja keerukaid masinõppevõimalusi mitmesugustel andmetel koos funktsioonidega.

Scikit-learn pakett sisaldab lihtsaid ja tõhusaid tööriistu andmekaevanduse ja andmeanalüüsi rakendamiseks andmekogumites ning neid algoritme saab kasutada erinevates kontekstides. See on avatud lähtekoodiga pakett, mis on saadaval BSD-litsentsi alusel, mis tähendab, et saame seda teeki kasutada isegi kaubanduslikult. See on ehitatud matplotlibi, NumPy ja SciPy peale, nii et see on oma olemuselt mitmekülgne. Selles tunnis tutvustame Anaconda Jupyteri märkmikuga.

Mida pakub scikit-learn?

Scikit-learn raamatukogu keskendub täielikult andmete modelleerimisele. Pange tähele, et andmete laadimisel, manipuleerimisel ja kokkuvõtete tegemisel pole scikit-learn'il olulisi funktsioone. Siin on mõned populaarsed mudelid, mida scikit-learn meile pakub:

Installige Python scikit-learn

Enne installiprotsessi alustamist kasutame vaid märkust selle õppetunni jaoks virtuaalse keskkonna, mille tegime järgmise käsuga:

python -m virtualenv scikit
allikas scikit / bin / activate

Kui virtuaalne keskkond on aktiivne, saame virtuaalsesse keskkonda installida pandade kogu, et järgmisena loodud näited saaksid täidetud:

pip install scikit-learn

Või võime kasutada Condat selle paketi installimiseks järgmise käsuga:

conda installi scikit-õppida

Ülaloleva käsu täitmisel näeme midagi sellist:

Kui installimine on Condaga lõpule jõudnud, saame oma Pythoni skriptides paketti kasutada järgmiselt:

importige sklearn

Alustame oma skriptides scikit-learn kasutamist vinge masinõppe algoritmide väljatöötamiseks.

Andmekogumite importimine

Scikit-learni üks lahe asi on see, et see on eelnevalt laaditud näidisandmekogumitega, millega on lihtne kiiresti alustada. Andmekogumid on iiris ja numbrit andmekogumid liigitamiseks ja bostoni maja hinnad andmekogum regressioonitehnikate jaoks. Selles jaotises uurime, kuidas iirise andmekogumit laadida ja kasutama hakata.

Andmekogumi importimiseks peame kõigepealt importima õige mooduli, millele järgneb andmekogumi hoidmine:

sklearn impordi andmekogumitest
iiris = andmekogumid.load_iris ()
numbrid = andmekogumid.laadimiskohad ()
numbrit.andmed

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Lühiduse huvides eemaldatakse kogu väljund. See on andmekogum, mida selles õppetükis peamiselt kasutame, kuid enamikku kontseptsioone saab rakendada üldiselt kõigile andmekogumitele.

Lihtsalt lõbus fakt, et teada saada, et programmis on mitu moodulit scikit ökosüsteem, millest üks on õppida kasutatakse masinõppe algoritmide jaoks. Vaadake seda lehte paljude teiste olemasolevate moodulite kohta.

Andmekogumi uurimine

Nüüd, kui oleme sisestatud arvude andmekogumi oma skripti importinud, peaksime alustama andmekogumi kohta põhiteabe kogumist ja seda me siin ka teeme. Siin on peamised asjad, mida peaksite uurima, kui otsite teavet andmekogumi kohta:

Kirjutage lühike koodilõik, et eraldada meie andmestikust kolm ülaltoodud teavet:

print ('Sihtmärk:', numbrit.sihtmärk)
print ('Klahvid:', numbrid.võtmed ())
print ('Kirjeldus:', numbrit.DESCR)

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Pange tähele, et muutuja numbrid ei ole lihtsad. Kui me numbritest andmekogumi välja printisime, sisaldas see tegelikult numpy massiive. Näeme, kuidas pääseme nendele massiividele ligi. Selleks võtke arvesse võtmeid, mis on saadaval viimases koodijupis trükitud numbrites.

Alustame massiivi andmete kujuga, milleks on massiivi read ja veerud. Selleks peame kõigepealt hankima tegelikud andmed ja seejärel saama nende kuju:

digits_set = numbrid.andmed
print (numbrite_hulk.kuju)

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

See tähendab, et meie andmekogumis on 1797 näidist koos 64 andmefunktsiooniga (või veeruga). Samuti on meil ka mõned sihtsildid, mida visualiseerime siin matplotlibi abil. Siin on koodilõik, mis aitab meil seda teha:

import matplotlib.püplot nagu plt
# Ühendage pildid ja sihtmärgid loendina
images_and_labels = loend (zip (numbrid.pildid, numbrid.sihtmärk))
indeksile (pilt, silt) loendis (images_and_labels [: 8]):
# lähtestage 2X4 alamplokk i + 1-ndas positsioonis
plt.alamjoonis (2, 4, indeks + 1)
# Telgi pole vaja joonistada
plt.telg (välja lülitatud)
# Kuva pilte kõigis alamkruntides
plt.imshow (pilt, cmap = plt.cm.hall_r, interpoleerimine = 'lähim')
# Lisage igale alamplotile pealkiri
plt.pealkiri ('Koolitus:' + str (silt))
plt.näita ()

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Pange tähele, kuidas tõmbasime kaks NumPy massiivi kokku, enne kui joonistasime need 4x2 võrgule ilma telgedeta. Nüüd oleme kindlad selle teabe osas, mis meil on selle andmekogumi kohta, millega töötame.

Nüüd, kui teame, et meil on 64 andmefunktsiooni (mis on muide palju funktsioone), on tegelike andmete visualiseerimine keeruline. Meil on selleks siiski lahendus.

Põhikomponentide analüüs (PCA)

See ei ole PCA-õpetus, kuid andkem väike ettekujutus sellest, mis see on. Kuna teame, et andmekogumi funktsioonide arvu vähendamiseks on meil kaks tehnikat:

  1. Funktsiooni kõrvaldamine
  2. Funktsiooni eraldamine

Kui esimene tehnika seisab silmitsi kadunud andmefunktsioonide probleemiga isegi siis, kui need võisid olla olulised, ei kannata teine ​​tehnika seda probleemi, kuna PCA abil ehitame uued andmefunktsioonid (vähem arv), kus me ühendame sisendmuutujaid nii, et võime jätta välja "kõige vähem olulised" muutujad, säilitades siiski kõigi muutujate kõige väärtuslikumad osad.

Nagu oodatud, PCA aitab meil vähendada andmete suurt mõõtmet mis on otsene tulemus objekti kirjeldamisel paljude andmefunktsioonide abil. Mitte ainult numbritel, vaid paljudel muudel praktilistel andmekogumitel on palju funktsioone, mis hõlmavad finantsinstitutsioonilisi andmeid, regiooni ja majanduse andmeid jne. Kui teostame PCA-d numbritega andmestikus, meie eesmärk on leida vaid kaks funktsiooni, millel oleks enamik omadusi andmekogumi.

Kirjutame lihtsa koodijupi, et rakendada PCA-d arvude andmestikus, et saada meie lineaarne mudel, millel on ainult kaks funktsiooni:

alates sklearn.lagunemine import PCA
feature_pca = PCA (n_komponendid = 2)
vähendatud_andmete_juhus = funktsioon_pca.fit_transform (numbrid.andmed)
model_pca = PCA (n_komponendid = 2)
vähendatud_andmed_pca = mudel_pca.fit_transform (numbrid.andmed)
vähendatud_andmete_pca.kuju
print (vähendatud_andmete_juhus)
print (vähendatud_andmete_pca)

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

[[-1.2594655 21.27488324]
[7.95762224 -20.76873116]
[6.99192123 -9.95598191]

[10.8012644 -6.96019661]
[-4.87210598 12.42397516]
[-0.34441647 6.36562581]]
[[-1.25946526 21.27487934]
[7.95761543-20.76870705]
[6.99191947 -9.9559785]

[10.80128422 -6.96025542]
[-4.87210144 12.42396098]
[-0.3443928 6.36555416]]

Eespool mainitud koodis mainime, et vajame andmekogumi jaoks ainult kahte funktsiooni.

Nüüd, kui meil on oma andmekogumist head teadmised, saame otsustada, milliseid masinõppe algoritme saame sellele rakendada. Andmekogumi tundmine on oluline, sest nii saame otsustada, millist teavet saab sellest välja võtta ja milliste algoritmidega. Samuti aitab see meil testida püstitatud hüpoteesi, ennustades tulevasi väärtusi.

K-i rakendamine tähendab klasterdamist

K-tähendab klastrialgoritm on üks lihtsamaid klastrialgoritme järelevalveta õppimiseks. Selles klastris on meil mõni juhuslik arv klastreid ja klassifitseerime oma andmepunktid ühte neist klastritest. K-tähendab, et algoritm leiab iga antud andmepunkti jaoks lähima klastri ja määrab selle andmepunkti sellele klastrile.

Kui klastrite tegemine on tehtud, arvutatakse klastri keskpunkt ümber, andmepunktidele määratakse muudatuste korral uued klastrid. Seda protsessi korratakse seni, kuni andmepunktid lakkavad klastrites stabiilsuse saavutamiseks muutumast.

Rakendame seda algoritmi lihtsalt ilma andmete eeltöötlemiseta. Selle strateegia jaoks on koodilõik üsna lihtne:

sklearn impordiklastrist
k = 3
k_means = kobar.KMeans (k)
# andmed sobivad
k_tähendab.sobiv (numbrid.andmed)
# printimistulemust
print (k_tähendab.sildid _ [:: 10])
print (numbrid.sihtmärk [:: 10])

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Ülaltoodud väljundis näeme, et igale andmepunktile pakutakse erinevaid klastreid.

Järeldus

Selles tunnis vaatasime suurepärast masinõppe teeki, scikit-learn. Saime teada, et scikit-perekonnas on palju muid mooduleid ja rakendasime antud andmekogumis lihtsat k-keskmise algoritmi. Andmekogumis saab kasutada palju rohkem algoritme, välja arvatud selles õppetunnis kasutatud k-tähendab klastrid, soovitame teil seda teha ja oma tulemusi jagada.

Palun jagage oma tagasisidet õppetunni kohta Twitteris @sbmaggarwal ja @LinuxHint.

Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...
Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...
Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...