Scikit learn - mašīnmācīšanās, izmantojot Python



Scikit learn emuārs iepazīstinās jūs ar mašīnmācīšanos pitonā. Tas ietver lietošanas gadījumu, kad mēs ieviesīsim loģistikas regresiju, izmantojot scikit learn.

Šajā emuārā mēs apspriedīsim Scikit mācīties pitonā. Pirms runāt par Scikit learn, ir jāsaprot mašīnmācīšanās jēdziensun jāzina, kā to izmantot . Izmantojot mašīnmācīšanos, ieskati nav jāapkopo manuāli. Jums vienkārši nepieciešams algoritms, un mašīna darīs visu pārējo jūsu vietā! Vai tas nav aizraujoši? Scikit mācīties ir viena no atrakcijām, kurā mēs varam ieviest mašīnmācīšanos, izmantojot Python. Tāir bezmaksas mašīnmācīšanās bibliotēka, kurā ir vienkārši un efektīvi rīki datu analīzei un kalnrūpniecības vajadzībām.Es jūs iepazīstināšu ar šādām tēmām, kas kalpos par pamatu gaidāmajiem emuāriem:

Kas ir mašīnmācīšanās?

Mašīnmācība ir mākslīgā intelekta veids, kas ļauj programmatūras lietojumprogrammām mācīties no datiem un kļūt precīzākai rezultātu prognozēšanai bez cilvēka iejaukšanās. Bet kā tas notiek? Lai to izdarītu, mašīna ir jāapmāca pēc dažiem datiem, un, pamatojoties uz to, tā noteiks modeli, lai izveidotu modeli.Šis process, kā iegūt datus no datiem un sniegt spēcīgu ieskatu, ir saistīts ar mašīnmācīšanos. Skatiet zemāk esošo attēlu, lai labāk izprastu tā darbību:





MachineLearning - Scikit Learn - Edureka

Izmantojot datus, sistēma apgūst algoritmu un pēc tam to izmanto, lai izveidotu prognozēšanas modeli. Vēlāk mēs pielāgojam modeli vai uzlabojam modeļa precizitāti, izmantojot atgriezeniskās saites datus. Izmantojot šos atgriezeniskās saites datus, mēs noregulējam modeli un paredzam darbību jaunajai datu kopai. Mēs būsimapspriest a izmantot gadījumu viena no algoritmu pieejām, kur mēs apmācīsim un pārbaudīsim datus, kas palīdzēs labāk izprast, vai tas būs piemērots jūsu konkrētajai problēmai.



Tālāk ir trīs mašīnmācīšanās veidi:

    • Vadīta mācīšanās : Šis ir algoritma process, kas mācās no apmācības datu kopas. Uzraudzīta mācīšanās ir vieta, kur jūs ģenerējat kartēšanas funkciju starp ievades mainīgo (X) un izvades mainīgo (Y) un izmantojat algoritmu, lai ģenerētu funkciju starp tām. Tas ir arī pazīstams kā prediktīvā modelēšana, kas attiecas uz procesu, kā veikt prognozes, izmantojot datus. Daži no algoritmiem ietver lineāro regresiju, loģistisko regresiju, lēmumu koku, izlases mežu un Naive Bayes klasifikatoru. Mēs turpināsim apspriest uzraudzītas mācīšanās lietošanas gadījumu, kad mēs apmācām mašīnu loģistiskā regresija .
    • Bez uzraudzības mācīšanās : Šis ir process, kurā modelis tiek apmācīts, izmantojot informāciju, kas nav marķēta. Šo procesu var izmantot, lai grupētu ievades datus klasēs, pamatojoties uz to statistiskajām īpašībām. Nepieskatītu mācīšanos sauc arī par clieliska analīze, kas nozīmē objektu grupēšanu, pamatojoties uz informāciju, kas atrodama datos, kas apraksta objektus vai to attiecības. Mērķis ir tāds, ka vienas grupas objektiem jābūt līdzīgiem viens otram, bet atšķirīgiem no citas grupas objektiem. Daži no algoritmiem ietver K-klasteru veidošanu, hierarhisku kopu veidošanu utt.
    • Mācības pastiprināšanai: Mācības pastiprināšana ir mācīšanās, mijiedarbojoties ar telpu vai vidi.RL aģents mācās no savas rīcības sekām, nevis no tā, ka to skaidri māca. Tas izvēlas savas darbības, pamatojoties uz iepriekšējo pieredzi (izmantošana) un arī ar jaunām izvēlēm (izpēte).

Scikit Learn pārskats

Scikit learn ir bibliotēka, ko izmanto mašīnmācīšanās veikšanai Python. Scikit learn ir atvērtā pirmkoda bibliotēka, kas licencēta saskaņā ar BSD un ir atkārtoti izmantojama dažādos kontekstos, veicinot akadēmisku un komerciālu izmantošanu. Tas nodrošina virkni uzraudzītu un nepieskatītu mācību algoritmu Python.Scikit mācīties veido populāri algoritmi un bibliotēkas. Papildus tam tajā ir arī šādas paketes:



  • NumPy
  • Matplotlib
  • SciPy (zinātniskais pitons)

Lai ieviestu Scikit learn, mums vispirms ir jāimportē iepriekš minētās paketes. Ja neesat pazīstams ar šīm bibliotēkām, varat ielūkoties manos iepriekšējos emuāros un . Šīs divas paketes varat lejupielādēt, izmantojot komandrindu vai ja izmantojat PCharm, jūs varat to tieši instalēt, dodoties uz iestatījumu tāpat kā citiem pakotnēm.

Tālāk, līdzīgā veidā, jums ir jāimportē Sklearn.Scikit mācīšanās ir veidota uz SciPy (Scientific Python), kas jāinstalē, pirms varat izmantot Scikit-learn. Jūs varat atsaukties uz to vietne lai lejupielādētu to pašu. Instalējiet arī Scipy un riteņu pakotni, ja tā nav, varat ierakstīt zemāk esošo komandu:

instalējiet

Es to jau esmu lejupielādējis un instalējis, ja rodas neskaidrības, varat atsaukties uz tālāk redzamo ekrānuzņēmumu.

Pēc iepriekš minēto bibliotēku importēšanas iegremdēsimies un sapratīsim, kā tieši tiek izmantots Scikit learn.

Scikit mācīties nāk ar paraugu kopām, piemēram, varavīksnene un cipari . Varat importēt datu kopas un ar tām spēlēties. Pēc tam jums jāimportē SVM, kas nozīmē Support Vector Machine. SVM ir mašīnmācīšanās forma, ko izmanto, lai analizētu datus.

Ņemsim piemēru, kur ņemsim cipari datu kopu, un tas kategorizēs numurus mums, piemēram, 0 1 2 3 4 5 6 7 8 9. Skatiet zemāk esošo kodu:

importēt matplotlib.pyplot kā plt no sklearn importēt datu kopas no sklearn importēt svm cipari = datasets.load_digits () print (cipari.dati)

Rezultāts -

parsējot xml failus Java
[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Šeit mēs tikko importējām bibliotēkas, SVM, datu kopas un drukājām datus. Tas ir garš ciparu datu masīvs, kur dati tiek glabāti. Tas dod piekļuvi funkcijām, kuras var izmantot, lai klasificētu cipari paraugi. Pēc tam varat izmēģināt arī citas darbības, piemēram, mērķi, attēlus utt. Apsveriet tālāk sniegto piemēru:

importēt matplotlib.pyplot kā plt no sklearn importēt datu kopas no sklearn importēt svm cipari = datasets.load_digits () print (cipari.target) druka (cipari.images [0])

Rezultāts -

[0 1 2 ..., 8 9 8] // datu mērķis [[0. 0. 5. 13. 9. 1. 0. 0.] // datu attēls [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Kā redzat iepriekš, mērķa cipari un ciparu attēls tiek izdrukāti. cipari.mērķis dod pamatu patiesībai cipars datu kopa, tas ir skaitlis, kas atbilst katram ciparu attēlam. Tālāk dati vienmēr ir 2D masīvs, kuram ir forma (n_paraugi, n_funkcijas), lai gan sākotnējiem datiem var būt bijusi cita forma. Ciparu gadījumā katrs sākotnējais paraugs ir formas attēls (8,8), un tam var piekļūt, izmantojot cipari . attēls.

Mācīšanās un paredzēšana

Tālāk, Scikit learn, mēs esam izmantojuši datu kopu (10 iespējamo klašu paraugs, cipari no nulles līdz deviņiem), un mums ir jāparedz cipari, kad tiek dots attēls. Lai paredzētu klasi, mums ir nepieciešams novērtētājs kas palīdz prognozēt klases, kurām pieder neredzēti paraugi. Programmā Scikit learn mums ir klasifikatora novērtētājs, kas ir pitona objekts, kas īsteno metodes der (x, y) un paredzēt (T). Apskatīsim šo piemēru:

importēt matplotlib.pyplot kā plt no sklearn importēt datu kopas no sklearn importēt svm cipari = datasets.load_digits () // datu kopa clf = svm.SVC (gamma = 0,001, C = 100) drukāt (len (cipari.dati)) x, y = cipari.dati [: - 1], cipari.mērķis [: - 1] // apmācīt datus clf.fit (x, y) print ('Prognoze:', clf.predict (cipari.dati [-1]) ) // paredzēt datus plt.imshow (cipari.attēli [-1], cmap = plt.cm.gray_r, interpolācija = 'tuvākais') plt.show ()

Rezultāts -

1796
Prognoze: [8]


Iepriekš minētajā piemērā mēs vispirms bijām atraduši garumu un ielādējuši 1796 piemērus. Tālāk mēs izmantojām šos datus kā mācību datus, kur mums jāpārbauda pēdējais elements un pirmais negatīvais elements. Tāpat mums jāpārbauda, ​​vai iekārta ir pareģojusi pareizos datus vai nē. Tam mēs izmantojām Matplotlib, kur bijām parādījuši ciparu attēlu.Tātad nobeigumā jums ir ciparu dati, jums ir mērķis, jūs to piemērojat un paredzat, un tāpēc jums ir labi iet! Tas tiešām ir ātri un vienkārši, vai ne?

Varat arī vizualizēt mērķa etiķetes ar attēlu, vienkārši skatiet zemāk esošo kodu:

importēt matplotlib.pyplot kā plt no sklearn importēt datu kopas no sklearn importēt svm digits = datasets.load_digits () # Pievienojiet attēlus un mērķa etiķetes sarakstā images_and_labels = list (zip (cipari.images, cipari.target)) # katram elementam indeksa sarakstā (attēls, iezīme) uzskaitījumā (images_and_labels [: 8]): # inicializējiet 2X4 apakšgrupu i + 1-tajā pozīcijā plt.subplot (2, 4, index + 1) # Attēlu attēli visos apakšlaukumos plt.imshow (attēls, cmap = plt.cm.gray_r, interpolācija = 'tuvākais') # Pievienojiet virsrakstu katram apakšplotam plt.title ('Training:' + str (label)) # Parādiet plot plot. rādīt ()

Rezultāts-

kā kļūt par inženieri


Kā redzat iepriekš minētajā kodā, mēs esam izmantojuši funkciju “zip”, lai attēlus un mērķa etiķetes pievienotu sarakstā un pēc tam saglabātu mainīgajā, teiksim images_and_labels. Pēc tam mēs esam indeksējuši pirmos astoņus elementus režģī no 2 līdz 4 katrā pozīcijā. Pēc tam mēs tikko parādījām attēlus ar Matplotlib palīdzību un pievienojām nosaukumu kā ‘apmācība’.

Izmantot gadījumu - Prognozēšana, izmantojot loģistisko regresiju

Problēmas izklāsts - Automašīnu kompānija tirgū laidusi klajā jaunu apvidus auto. Izmantojot iepriekšējos datus par savu apvidus automašīnu pārdošanu, viņi vēlas paredzēt to cilvēku kategoriju, kuri varētu būt ieinteresēti to iegādāties.

Šim nolūkam apskatīsim datu kopu tur, kur man ir UserId, dzimums, vecums, paredzamā alga un iegādātais kā kolonnas. Šis ir tikai datu kopas paraugs, no kura varat lejupielādēt visu datu kopu šeit . Kad datus importēsim PyCharm, tas izskatās apmēram šādi.

Tagad ļaujiet mums saprast šos datus. Kā redzat iepriekš minētajā datu kopā, mums ir tādas kategorijas kā ID, dzimums, vecums utt. Tagad, pamatojoties uz šīm kategorijām, mēs apmācīsim savu mašīnu un prognozēsim nē. pirkumu. Tātad, lūk, mums ir neatkarīgi mainīgie kā “vecums”, “paredzamā alga” un atkarīgais mainīgais kā “nopirkts”. Tagad mēs piemērosim uzraudzītu mācīšanos, t.i. loģistiskās regresijas algoritms lai uzzinātu pirkumu skaitu, izmantojot esošos datus.

Vispirms iegūstam loģistiskās regresijas pārskatu.

Loģistiskā regresija - Loģistiskā regresija rada rezultātus binārā formātā, ko izmanto, lai prognozētu kategoriski atkarīgā mainīgā lieluma iznākumu. To visplašāk izmanto, ja atkarīgais mainīgais ir binārs, t.i., pieejamo kategoriju skaits ir divi, piemēram, loģistiskās regresijas parastie rezultāti ir -

  • Jā un nē
  • Patiesa un nepatiesa
  • Augsts un Zems
  • Iet un neizdoties

Lai sāktu ar kodu, vispirms mēs importēsim šīs bibliotēkas - Numpy, Matplotlib un Pandas. Pycharm importēt pandas ir diezgan viegli, veicot šādas darbības:

Iestatījumi -> Pievienot paketi -> Pandas -> Instalēt

Pēc tam mēs importēsim datu kopu un atsevišķu mainīgo (iegādātais) un neatkarīgo mainīgo (vecums, alga) pēc:

datu kopa = pd.read_csv ('Social_Network_Ads.csv') X = datu kopa.iloc [:, [2, 3]]. vērtības y = datu kopa.iloc [:, 4] .values ​​print (X) print (y)

Nākamais solis būtu apmācība un datu pārbaude. Kopēja stratēģija ir ņemt visus marķētos datus un sadalīt tos apmācības un testēšanas apakšgrupās, kas parasti tiek ņemta ar attiecību 70-80% mācību apakšgrupai un 20-30% testēšanas apakškopai. Tādējādi mēs esam izveidojuši apmācības un testēšanas komplektus, izmantojot cross_validation.

no sklearn.cross_validation importēt vilciena pārbaudes_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25, random_state = 0)

Mēs varam arī mērogot ievades vērtības labākai veiktspējai, izmantojot StandarScaler, kā parādīts zemāk:

no sklearn.preprocessing importēt StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Tagad mēs izveidosim savu loģistiskās regresijas modeli.

no sklearn.linear_model importēšanas LogisticRegression klasifikators = LogisticRegression (random_state = 0) clasier.fit (X_train, y_train)

Mēs to varam izmantot un paredzēt sava testa komplekta rezultātus.

kas ir vektors java
y_pred = klasifikators. prognozēt (X_test)

Tagad mēs varam pārbaudīt, cik daudz prognozes bija precīzas un cik daudzas neizmantoja apjukuma matrica . Definēsim Y kā pozitīvus gadījumus un N kā negatīvus gadījumus. Četri rezultāti ir formulēti 2 * 2 sajaukšanas matricā, kā parādīts zemāk:

no sklearn.metrics importēt confusion_matrix cm = confusion_matrix (y_test, y_pred) druka (cm)

Rezultāts-

[[65 3] [8 24]]

Pēc tam, pamatojoties uz mūsu neskaidrības matricu, mēs varam aprēķināt precizitāti. Tātad mūsu iepriekš minētajā piemērā precizitāte būtu:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Mēs to esam izdarījuši manuāli! Tagad ļaujiet mums redzēt, kā mašīna mums aprēķina to pašu, tāpēc mums ir iebūvēta funkcija ‘precizitātes_rezultāts’, kas aprēķina precizitāti un izdrukā to, kā parādīts zemāk:

no sklearn.metrics importa precizitātes_rezultāts // importē funkciju precizitātes_rezerves druka (precizitātes_rādītājs (y_test, y_pred) * 100)

Rezultāts -

89.0

Urā! Tādējādi mēs esam veiksmīgi realizējuši loģistikas regresiju, izmantojot Scikit learn ar 89% precizitāti.

Noklikšķiniet šeit lai iegūtu pilnu iepriekšminētās prognozes pilnīgu avotu izmantojot Python Scikit mācīšanās bibliotēku.

Ar to mēs esam aplūkojuši tikai vienu no daudzajiem populārajiem algoritmiem, ko piedāvā pitons.Mēs esam apskatījuši visus Scikit pamata bibliotēkas pamatus,lai jūs varētu sākt praktizēt tūlīt. Jo vairāk jūs praktizēsiet, jo vairāk iemācīsities. Sekojiet jaunākajiem python apmācības emuāriem!

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Scikit mācīties” komentāru sadaļā, un mēs pēc iespējas ātrāk sazināsimies ar jums. Lai iegūtu padziļinātas zināšanas par Python kopā ar tā dažādajām lietojumprogrammām, varat tiešsaistes apmācībai tiešsaistē ar diennakts atbalstu un piekļuvi mūža garumā.