Datu zinātne

Mašīnmācības apmācība ar Scikit-learn

Mašīnmācības apmācība ar Scikit-learn

Šajā nodarbībā par mašīnmācīšanos ar scikit-learn mēs uzzināsim dažādus šīs izcilās Python paketes aspektus, kas ļauj mums pielietot vienkāršas un sarežģītas mašīnmācīšanās iespējas dažādam datu kopumam kopā ar funkcionalitātēm, lai pārbaudītu mūsu izveidoto hipotēzi.

Paketē scikit-learn ir vienkārši un efektīvi rīki datu ieguves un datu analīzes lietošanai datu kopās, un šie algoritmi ir pieejami lietošanai dažādos kontekstos. Tā ir atvērtā koda pakete, kas pieejama ar BSD licenci, kas nozīmē, ka šo bibliotēku mēs varam izmantot pat komerciāli. Tas ir veidots virs matplotlib, NumPy un SciPy, tāpēc tam ir daudzpusīgs raksturs. Mēs izmantosim Anaconda ar Jupyter piezīmju grāmatiņu, lai sniegtu piemērus šajā nodarbībā.

Ko nodrošina scikit-learn?

Scikit-learn bibliotēka pilnībā koncentrējas uz datu modelēšanu. Lūdzu, ņemiet vērā, ka scikit-learn nav būtisku funkciju, kad runa ir par datu ielādi, manipulēšanu un apkopošanu. Šeit ir daži no populāriem modeļiem, kurus scikit-learn mums piedāvā:

Instalējiet Python scikit-learn

Tikai piezīme pirms instalēšanas procesa sākšanas šai nodarbībai tiek izmantota virtuālā vide, kuru izveidojām ar šādu komandu:

pitons -m virtualenv raksts
avota scikit / bin / aktivizēt

Kad virtuālā vide ir aktīva, mēs virtuālajā env varam instalēt pandas bibliotēku, lai varētu izpildīt nākamos veidotos piemērus:

pip instalēt scikit-learn

Vai arī mēs varam izmantot Conda, lai instalētu šo pakotni ar šādu komandu:

conda instalēt scikit-mācīties

Izpildot iepriekš minēto komandu, mēs redzam kaut ko līdzīgu:

Kad instalēšana būs pabeigta ar Conda, mēs varēsim izmantot pakotni mūsu Python skriptos kā:

importēt sklearn

Sāksim izmantot scikit-learn mūsu skriptos, lai izstrādātu lieliskus mašīnmācīšanās algoritmus.

Datu kopu importēšana

Viena no foršākajām lietām ar scikit-learn ir tā, ka tā ir iepriekš ielādēta ar datu kopu paraugiem, ar kuriem ir viegli ātri sākt. Datu kopas ir varavīksnene un cipari datu kopas klasifikācijai un bostonas māju cenas datu kopa regresijas paņēmieniem. Šajā sadaļā mēs aplūkosim, kā ielādēt un sākt izmantot varavīksnenes datu kopu.

Lai importētu datu kopu, vispirms ir jāimportē pareizais modulis, pēc tam iegūstot datu kopas aizturi:

no sklearn importa datu kopām
varavīksnene = datu kopas.ielādēt_iris ()
cipari = datu kopas.load_digits ()
cipari.dati

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

Īsuma labad visa izeja tiek noņemta. Šī ir datu kopa, kuru mēs galvenokārt izmantosim šajā nodarbībā, taču lielāko daļu jēdzienu var attiecināt uz visām datu kopām.

Vienkārši patīkams fakts, lai uzzinātu, ka sistēmā ir vairāki moduļi scikit ekosistēma, no kurām viena ir mācīties izmanto mašīnmācīšanās algoritmiem. Šajā lapā skatiet daudzus citus moduļus.

Datu kopas izpēte

Tagad, kad esam importējuši norādīto ciparu datu kopu savā skriptā, mums jāsāk vākt pamatinformāciju par datu kopu, un to mēs šeit darīsim. Lūk, kādas ir pamatlietas, kuras jums vajadzētu izpētīt, meklējot informāciju par datu kopu:

Uzrakstīsim īsu koda fragmentu, lai no mūsu datu kopas iegūtu trīs iepriekš minētās ziņas:

print ('Mērķis:', cipari.mērķis)
print ('Taustiņi:', cipari.taustiņi ())
print ('Apraksts:', cipari.DESCR)

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

Lūdzu, ņemiet vērā, ka mainīgie cipari nav vienkārši. Kad mēs izdrukājām ciparu datu kopu, tajā faktiski bija numpy masīvi. Mēs redzēsim, kā mēs varam piekļūt šiem masīviem. Lai to izdarītu, ņemiet vērā atslēgas, kas pieejamas ciparu instancē, kuru mēs izdrukājām pēdējā koda fragmentā.

Mēs sāksim iegūt masīva datu formu, kas ir masīva rindas un kolonnas. Lai to izdarītu, vispirms mums jāiegūst faktiskie dati un pēc tam jāiegūst to forma:

ciparu_ kopa = cipari.dati
drukāt (ciparu kopa.forma)

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

Tas nozīmē, ka mūsu datu kopā ir 1797 paraugi kopā ar 64 datu elementiem (vai kolonnām). Mums ir arī dažas mērķa etiķetes, kuras mēs šeit vizualizēsim ar matplotlib palīdzību. Šeit ir koda fragments, kas mums to palīdz:

importa matplotlib.pyplot kā plt
# Apvienojiet attēlus un mērķa etiķetes kā sarakstu
images_and_labels = saraksts (zip (cipari.attēli, cipari.mērķis))
indeksam, (attēls, iezīme) uzskaitījumā (images_and_labels [: 8]):
# inicializēt 2X4 apakšplānu i + 1-tajā pozīcijā
plt.apakšlaukums (2, 4, indekss + 1)
# Nav nepieciešams zīmēt asis
plt.ass ('izslēgts')
# Rādīt attēlus visos apakšlaukumos
plt.imshow (attēls, cmap = plt.cm.pelēks_r, interpolācija = 'tuvākais')
# Pievienojiet virsrakstu katram apakšlaukumam
plt.nosaukums ('Apmācība:' + str (etiķete))
plt.rādīt ()

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

Ievērojiet, kā mēs abus NumPy masīvus saslēdzām kopā, pirms tos uzzīmējām režģī 4 pret 2 bez asu informācijas. Tagad mēs esam pārliecināti par mūsu rīcībā esošo informāciju par datu kopu, ar kuru mēs strādājam.

Tagad, kad mēs zinām, ka mums ir 64 datu funkcijas (starp citu, ir daudz funkciju), ir grūti vizualizēt faktiskos datus. Mums tomēr ir risinājums.

Galveno komponentu analīze (PCA)

Šī nav apmācība par PCA, taču ļaujiet mums sniegt nelielu priekšstatu par to, kas tas ir. Kā mēs zinām, ka, lai samazinātu datu kopas funkciju skaitu, mums ir divas metodes:

  1. Funkcijas izslēgšana
  2. Funkcijas izvilkšana

Lai gan pirmais paņēmiens saskaras ar zaudēto datu funkciju problēmu, pat ja tie varētu būt svarīgi, otrais paņēmiens no šī jautājuma necieš, jo ar PCA palīdzību mēs veidojam jaunas datu funkcijas (mazāk to skaitā), kur mēs apvienojam ievades mainīgos tādā veidā, ka mēs varam atstāt “mazāk svarīgos” mainīgos, vienlaikus saglabājot visu mainīgo vērtīgākās daļas.

Kā paredzēts, PCA palīdz mums samazināt datu augsto dimensiju kas ir tiešs objekta aprakstīšanas rezultāts, izmantojot daudzas datu funkcijas. Ne tikai cipariem, bet arī daudzām citām praktiskām datu kopām ir daudz pazīmju, tostarp finanšu iestāžu dati, laika apstākļu un ekonomikas dati par reģionu utt. Kad mēs veicam PCA ciparu datu kopā, mūsu mērķis būs atrast tikai 2 funkcijas, kas tām piemīt lielākai daļai īpašību datu kopas.

Uzrakstīsim vienkāršu koda fragmentu, lai ciparu datu kopā izmantotu PCA, lai iegūtu mūsu lineāro modeli tikai ar divām funkcijām:

no sklearn.sadalīšanās importa PCA
feature_pca = PCA (n_komponenti = 2)
samazināts_datu_pastāvs = feature_pca.fit_transform (cipari.dati)
model_pca = PCA (n_komponenti = 2)
samazināta_datu_pca = modeļa_caurule.fit_transform (cipari.dati)
samazināta_datu_pca.forma
drukāt (samazināts_datu_neparasts)
drukāt (samazināta_datu_pca)

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

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

Iepriekš minētajā kodā mēs pieminam, ka datu kopai mums ir nepieciešamas tikai 2 funkcijas.

Tagad, kad mums ir labas zināšanas par mūsu datu kopu, mēs varam izlemt, kādus mašīnmācīšanās algoritmus mēs tajā varam izmantot. Datu kopas pārzināšana ir svarīga, jo tieši tā mēs varam izlemt, kādu informāciju no tās var iegūt un ar kādiem algoritmiem. Tas arī palīdz mums pārbaudīt izvirzīto hipotēzi, vienlaikus paredzot nākotnes vērtības.

K piemērošana nozīmē kopu veidošanu

K-klasterizācijas algoritms ir viens no vienkāršākajiem klasterizācijas algoritmiem bez uzraudzības. Šajā klasterizācijā mums ir kāds nejaušs kopu skaits, un mēs savus datu punktus klasificējam vienā no šīm kopām. K-nozīmē algoritms atradīs tuvāko kopu katram dotajam datu punktam un piešķirs šo datu punktu šai kopai.

Kad klasterizācija ir pabeigta, klastera centrs tiek pārrēķināts, datu punktiem tiek piešķirtas jaunas kopas, ja ir kādas izmaiņas. Šis process tiek atkārtots, līdz datu punkti pārstāj mainīties kopās, lai panāktu stabilitāti.

Vienkārši pielietosim šo algoritmu bez datu iepriekšējas apstrādes. Šai stratēģijai koda fragments būs diezgan vienkāršs:

no sklearn importa kopas
k = 3
k_means = kopa.KMeans (k)
# fit dati
k_nozīmē.fit (cipari.dati)
# drukas rezultāti
drukāt (k_nozīmē.etiķetes _ [:: 10])
drukāt (cipari.mērķis [:: 10])

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs redzēsim šādu izvadi:

Iepriekš redzamajā izvadē mēs varam redzēt, ka katram datu punktam tiek piegādātas dažādas kopas.

Secinājums

Šajā nodarbībā mēs apskatījām lielisku mašīnmācīšanās bibliotēku, scikit-learn. Mēs uzzinājām, ka scikit saimē ir pieejami daudzi citi moduļi, un mēs nodrošinājām vienkāršu k-mean algoritmu sniegtajā datu kopā. Datu kopā var izmantot vēl daudz algoritmu, izņemot k-mean klasteru, ko mēs izmantojām šajā nodarbībā. Mēs iesakām to darīt un dalīties savos rezultātos.

Lūdzu, dalieties savās atsauksmēs par nodarbību Twitter vietnē @sbmaggarwal un @LinuxHint.

Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...