Duomenų mokslas

Mašininio mokymo programa su „Scikit-learn“

Mašininio mokymo programa su „Scikit-learn“

Šioje mašininio mokymosi naudojant „scikit-learn“ pamoką sužinosime įvairius šio puikaus „Python“ paketo aspektus, kurie leidžia mums pritaikyti paprastas ir sudėtingas mašininio mokymosi galimybes įvairiuose duomenų rinkiniuose kartu su funkcijomis, kad patikrintume savo nustatytą hipotezę.

„Scikit-Learn“ pakete yra paprastų ir efektyvių įrankių duomenų gavybai ir duomenų analizei taikyti rinkiniuose, o šiuos algoritmus galima pritaikyti skirtinguose kontekstuose. Tai yra atvirojo kodo paketas, prieinamas pagal BSD licenciją, o tai reiškia, kad šia biblioteka galime naudotis net komerciškai. Jis pastatytas ant „Matplotlib“, „NumPy“ ir „SciPy“, todėl yra universalus. Norėdami pasinaudoti šios pamokos pavyzdžiais, mes naudosime „Anaconda“ su „Jupyter“ užrašų knygeliu.

Ką teikia „scikit-learn“?

„Scikit-learn“ biblioteka visiškai orientuota į duomenų modeliavimą. Atkreipkite dėmesį, kad „Scikit-Learn“ nėra pagrindinių funkcijų, kai reikia įkelti, tvarkyti ir apibendrinti duomenis. Štai keletas populiarių modelių, kuriuos mums teikia „scikit-learn“:

Įdiekite „Python scikit-learn“

Tiesiog pradėdami diegimo procesą, atkreipkite dėmesį į virtualią aplinką šiai pamokai, kurią atlikome naudodami šią komandą:

pitonas -m virtualenv scikitas
source scikit / bin / aktyvuoti

Kai virtuali aplinka bus aktyvi, mes galime įdiegti „pandas“ biblioteką virtualioje aplinkoje, kad būtų galima vykdyti toliau sukurtus pavyzdžius:

pip įdiegti „scikit-learn“

Arba galime naudoti „Conda“ šiam paketui įdiegti naudodami šią komandą:

conda install scikit-learn

Mes matome kažką panašaus, kai vykdome pirmiau nurodytą komandą:

Kai diegimas bus baigtas su „Conda“, „Python“ scenarijuose esantį paketą galėsime naudoti kaip:

importuoti sklearn

Pradėkime naudoti „scikit-learn“ savo scenarijuose, kad sukurtume nuostabius mašininio mokymosi algoritmus.

Duomenų rinkinių importavimas

Vienas iš šauniausių dalykų, susijusių su „scikit-learn“, yra tai, kad jame yra iš anksto įdėti pavyzdiniai duomenų rinkiniai, su kuriais lengva greitai pradėti. Duomenų rinkiniai yra rainelė ir skaitmenų klasifikavimo duomenų rinkiniai ir Bostono namų kainos regresijos metodų duomenų rinkinys. Šiame skyriuje mes apžvelgsime, kaip įkelti ir pradėti naudoti rainelės duomenų rinkinį.

Norėdami importuoti duomenų rinkinį, pirmiausia turime importuoti teisingą modulį, o po to gauti duomenų rinkinio sulaikymą:

iš „sklearn“ importo duomenų rinkinių
rainelė = duomenų rinkiniai.load_iris ()
skaitmenys = duomenų rinkiniai.load_digits ()
skaitmenų.duomenis

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

Visa išvestis pašalinama dėl trumpumo. Tai yra duomenų rinkinys, kurį daugiausia naudosime šioje pamokoje, tačiau daugumą sąvokų galima pritaikyti apskritai visiems duomenų rinkiniams.

Tiesiog įdomus faktas žinoti, kad programoje yra keli moduliai scikitas ekosistema, iš kurių viena yra mokytis naudojamas mašininio mokymosi algoritmams. Šiame puslapyje rasite daug kitų esančių modulių.

Duomenų rinkinio tyrimas

Dabar, kai importavome pateiktą skaitmenų duomenų rinkinį į savo scenarijų, turėtume pradėti rinkti pagrindinę informaciją apie duomenų rinkinį ir tai mes čia darysime. Čia yra pagrindiniai dalykai, kuriuos turėtumėte ištirti ieškodami informacijos apie duomenų rinkinį:

Parašykime trumpą kodo fragmentą, kad iš duomenų rinkinio išgautume pirmiau nurodytą tris informaciją:

spausdinti ('Taikinys:', skaitmenys.taikinys)
spausdinti ('Raktai:', skaitmenys.raktai())
spausdinti ('Aprašas:', skaitmenys.DESCR)

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

Atkreipkite dėmesį, kad kintamieji skaitmenys nėra paprasti. Kai išspausdinome skaitmenų duomenų rinkinį, jame iš tikrųjų buvo numerių masyvai. Pažiūrėsime, kaip galime pasiekti šiuos masyvus. Norėdami tai padaryti, atkreipkite dėmesį į raktus, esančius skaitmenų egzemplioriuje, kurį atspausdinome paskutiniame kodo fragmente.

Pradėsime nuo masyvo duomenų, ty masyvo eilučių ir stulpelių, formos. Tam pirmiausia turime gauti faktinius duomenis ir tada gauti jų formą:

digits_set = skaitmenys.duomenis
spausdinti (skaitmenų rinkinys.figūra)

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

Tai reiškia, kad mūsų duomenų rinkinyje yra 1797 pavyzdžiai kartu su 64 duomenų funkcijomis (arba stulpeliais). Be to, mes taip pat turime keletą tikslinių etikečių, kurias mes čia vizualizuosime naudodami matplotlib. Čia yra kodo fragmentas, kuris mums padeda tai padaryti:

importuoti matplotlib.pyplotas kaip plt
# Sujunkite vaizdus ir tikslines etiketes kaip sąrašą
images_and_labels = list (zip (skaitmenys.vaizdai, skaitmenys.tikslas))
indeksui, (paveikslėlis, etiketė) įvardyti (images_and_labels [: 8]):
# inicijuokite 2X4 poskyrį i + 1-oje pozicijoje
plt.antrasis planas (2, 4, rodiklis + 1)
# Nereikia braižyti jokių ašių
plt.ašis („išjungta“)
# Rodyti vaizdus visuose padaliniuose
plt.imshow (vaizdas, cmap = plt.cm.pilkas_r, interpoliacija = 'artimiausias')
# Pridėkite pavadinimą kiekvienam potemiui
plt.pavadinimas („Mokymai:“ + str (etiketė))
plt.Rodyti()

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

Atkreipkite dėmesį, kaip mes sujungėme du „NumPy“ masyvus, prieš juos braižydami ant tinklelio „4: 2“ be jokios informacijos apie ašis. Dabar esame tikri dėl informacijos, kurią turime apie duomenų rinkinį, su kuriuo dirbame.

Dabar, kai žinome, kad turime 64 duomenų funkcijas (beje, tai yra daugybė funkcijų), sudėtinga vizualizuoti faktinius duomenis. Vis dėlto turime tam sprendimą.

Pagrindinių komponentų analizė (PCA)

Tai nėra pamoka apie PCA, tačiau pateikime nedidelę idėją apie tai, kas tai yra. Mes žinome, kad norėdami sumažinti duomenų rinkinio funkcijų skaičių, turime du būdus:

  1. Funkcijos pašalinimas
  2. Funkcijos ištraukimas

Nors pirmoji technika susiduria su prarastų duomenų funkcijomis, net jei jos galėjo būti svarbios, antroji technika nekenkia problemai, nes naudodamiesi PCA, mes sukuriame naujas duomenų funkcijas (mažiau jų), kur mes sujungiame įvesties kintamuosius tokiu būdu, kad mes galime palikti „mažiausiai svarbius“ kintamuosius, tuo pačiu išlaikydami vertingiausias visų kintamųjų dalis.

Kaip ir tikėtasi, PCA padeda mums sumažinti didelių duomenų matmenis kuris yra tiesioginis objekto aprašymo, naudojant daug duomenų funkcijų, rezultatas. Ne tik skaitmenys, bet ir daugelis kitų praktinių duomenų rinkinių turi daug funkcijų, įskaitant finansinius institucinius duomenis, regiono orų ir ekonomikos duomenis ir kt. Kai atliekame PCA skaitmenų duomenų rinkinyje, mūsų tikslas bus rasti tik 2 ypatybes, kurios turėtų daugumą savybių duomenų rinkinio.

Parašykime paprastą kodo fragmentą, kad pritaikytume PCA skaitmenų duomenų rinkinyje, kad gautume tik 2 funkcijų linijinį modelį:

iš sklearn.skilimo importas PBS
feature_pca = PCA (n_komponentai = 2)
sumažintas_duomenų_atsitiktinis = feature_pca.fit_transform (skaitmenys.duomenys)
model_pca = PCA (n_komponentai = 2)
sumažinta_duomenų_pca = model_pca.fit_transform (skaitmenys.duomenys)
sumažinta_duomenų_pca.figūra
spausdinti (sumažintas_duomenų_skandimas)
spausdinti (sumažinta_duomenų_pca)

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

[[-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]]

Pirmiau pateiktame kode paminėjame, kad duomenų rinkiniui reikia tik 2 funkcijų.

Dabar, kai turime pakankamai žinių apie savo duomenų rinkinį, galime nuspręsti, kokius mašininio mokymosi algoritmus galime jame naudoti. Duomenų rinkinio žinojimas yra svarbus, nes taip galime nuspręsti, kokią informaciją iš jo galima išgauti ir kokiais algoritmais. Tai taip pat padeda mums patikrinti hipotezę, kurią mes nustatome prognozuodami ateities vertybes.

„K“ taikymas reiškia grupavimą

K reiškia klasterizavimo algoritmas yra vienas iš paprasčiausių klasterizavimo algoritmų neprižiūrimam mokymuisi. Šiame grupavime turime keletą atsitiktinių grupių skaičių ir savo duomenų taškus klasifikuojame viename iš šių grupių. K reikšmės algoritmas ras kiekvienam nurodytam duomenų taškui artimiausią sankaupą ir priskirs tą duomenų tašką jai.

Atlikus klasterizavimą, klasterio centras yra perskaičiuojamas, duomenų punktams priskiriami nauji klasteriai, jei yra pakeitimų. Šis procesas kartojamas tol, kol duomenų grupės nustos keistis ten, kad būtų pasiektas stabilumas.

Paprasčiausiai pritaikykime šį algoritmą be išankstinio duomenų apdorojimo. Pagal šią strategiją kodo fragmentą bus gana lengva:

iš „sklearn“ importo klasterio
k = 3
k_preiškia = klasteris.KMeans (k)
# tinkami duomenys
k_reiskia.tinka (skaitmenys.duomenys)
# spausdinimo rezultatų
spausdinti (k_reiškia.etiketės _ [:: 10])
spausdinti (skaitmenys.taikinys [:: 10])

Vykdydami pirmiau pateiktą kodo fragmentą, pamatysime šį išvestį:

Aukščiau pateiktame išvestyje galime pamatyti skirtingus klasterius, pateikiamus kiekvienam duomenų taškui.

Išvada

Šioje pamokoje apžvelgėme puikią „Machine Learning“ biblioteką, „scikit-learn“. Sužinojome, kad „scikit“ šeimoje yra daugybė kitų modulių, o pateiktame duomenų rinkinyje pritaikėme paprastą k reikšmės algoritmą. Yra daug daugiau algoritmų, kuriuos galima pritaikyti duomenų rinkinyje, išskyrus k-reiškia klasterius, kuriuos pritaikėme šioje pamokoje. Mes raginame tai padaryti ir pasidalinti savo rezultatais.

Prašome pasidalinti savo atsiliepimais apie pamoką „Twitter“ su @sbmaggarwal ir @LinuxHint.

Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...