Scikit learn - Strojno učenje pomoću Pythona



Blog Scikit learn upoznat će vas sa Strojnim učenjem u pythonu. Uključuje slučaj upotrebe u kojem ćemo implementirati logističku regresiju koristeći scikit learn.

Na ovom blogu razgovarat ćemo o Scikit učenju na pythonu. Prije nego što razgovaramo o Scikit učenju, moramo razumjeti koncept strojnog učenjai mora znati koristiti . Uz strojno učenje ne morate ručno prikupljati svoje uvide. Samo trebate algoritam, a stroj će sve učiniti za vas! Nije li ovo uzbudljivo? Scikit learn jedna je od atrakcija u kojoj možemo implementirati strojno učenje pomoću Pythona. Toje besplatna knjižnica strojnog učenja koja sadrži jednostavne i učinkovite alate za analizu podataka i rudarske svrhe.Provest ću vas kroz sljedeće teme koje će poslužiti kao osnova za nadolazeće blogove:

Što je strojno učenje?

Strojno učenje vrsta je umjetne inteligencije koja omogućava softverskim aplikacijama da uče iz podataka i postaju preciznije u predviđanju ishoda bez ljudske intervencije. Ali kako se to događa? Za to stroj treba osposobiti za neke podatke i na temelju toga će otkriti uzorak za stvaranje modela.Ovaj proces stjecanja znanja iz podataka i pružanja snažnih uvida odnosi se na strojno učenje. Pogledajte donju sliku da biste bolje razumjeli njen rad:





MachineLearning - Scikit Learn - Edureka

Koristeći podatke, sustav uči algoritam, a zatim ga koristi za izgradnju prediktivnog modela. Kasnije prilagođavamo model ili poboljšavamo točnost modela koristeći se povratnim podacima. Koristeći ove povratne podatke, podešavamo model i predviđamo radnje na novom skupu podataka. Hoćemoraspravljati o slučaj upotrebe jednog od pristupa algoritma u kojem ćemo obučavati i testirati podatke koji će vam pomoći da bolje razumijete hoće li oni odgovarati vašem određenom problemu ili ne.



što format radi u pythonu

Dalje, postoje tri vrste strojnog učenja:

    • Nadzirano učenje : Ovo je proces učenja algoritma iz skupa podataka o treningu. Nadzirano učenje je mjesto gdje generirate funkciju mapiranja između ulazne varijable (X) i izlazne varijable (Y) i koristite algoritam za generiranje funkcije između njih. Poznato je i kao prediktivno modeliranje koje se odnosi na postupak predviđanja pomoću podataka. Neki od algoritama uključuju Linearnu regresiju, Logističku regresiju, Stablo odluka, Slučajnu šumu i Naive Bayesov klasifikator. Dalje ćemo raspravljati o slučaju upotrebe nadziranog učenja gdje treniramo stroj koristeći logistička regresija .
    • Učenje bez nadzora : Ovo je postupak u kojem se model obučava pomoću podataka koji nisu označeni. Ovaj se postupak može koristiti za grupiranje ulaznih podataka u razrede na temelju njihovih statističkih svojstava. Učenje bez nadzora naziva se i canaliza sjaja koja podrazumijeva grupiranje predmeta na temelju podataka pronađenih u podacima koji opisuju predmete ili njihov odnos. Cilj je da objekti u jednoj skupini budu međusobno slični, ali različiti od objekata u drugoj skupini. Neki od algoritama uključuju grupiranje K-sredstava, hijerarhijsko grupiranje itd.
    • Pojačanje učenja: Pojačano učenje je učenje interakcijom s prostorom ili okolinom.RL agent uči iz posljedica svojih radnji, a ne iz eksplicitnog podučavanja. Svoje postupke odabire na temelju svojih prošlih iskustava (eksploatacija), a također i na osnovu novih izbora (istraživanje).

Pregled Scikit Learn

Scikit learn je knjižnica koja se koristi za izvođenje strojnog učenja u Pythonu. Scikit learn je biblioteka otvorenog koda koja je licencirana pod BSD-om i može se ponovno koristiti u različitim kontekstima, potičući akademsku i komercijalnu upotrebu. Pruža niz nadziranih i nenadziranih algoritama učenja u Pythonu.Scikit learn sastoji se od popularnih algoritama i knjižnica. Osim toga, sadrži i sljedeće pakete:



  • NumPy
  • Matplotlib
  • SciPy (znanstveni Python)

Da bismo implementirali Scikit learn, prvo moramo uvesti gore navedene pakete. Ako niste upoznati s ovim knjižnicama, možete pogledati moje prethodne blogove na i . Ova dva paketa možete preuzeti pomoću naredbenog retka ili ako koristite PYŠarm, možete ga izravno instalirati odlaskom na postavke na isti način kao što to radite za ostale pakete.

Dalje, na sličan način, morate uvesti Sklearn.Scikit learn temelji se na SciPy (Scientific Python) koji mora biti instaliran prije nego što možete koristiti Scikit-learn. Možete se pozvati na ovo web stranica za preuzimanje istog. Također, instalirajte Scipy i paket kotača ako nije prisutan, možete upisati naredbu ispod:

pip instalirati scipy

Već sam ga preuzeo i instalirao, možete pogledati dolje snimku zaslona za bilo kakvu zabunu.

Nakon uvoza gornjih knjižnica, istražimo dublje i shvatimo kako se točno koristi Scikit učenje.

Scikit learn dolazi s uzorcima skupova podataka, kao što su iris i znamenke . Možete uvesti skupove podataka i poigrati se s njima. Nakon toga morate uvesti SVM što je skraćenica od Support Vector Machine. SVM je oblik strojnog učenja koji se koristi za analizu podataka.

Uzmimo primjer gdje ćemo uzeti znamenke skupa podataka i kategorizirat će nam brojeve, na primjer - 0 1 2 3 4 5 6 7 8 9. Pogledajte donji kod:

uvoz matplotlib.pyplot kao plt iz sklearn uvoz skupova podataka iz sklearn import svm digits = datasets.load_digits () print (digits.data)

Izlaz -

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

Ovdje smo upravo uvezli knjižnice, SVM, skupove podataka i ispisali podatke. To je dugačak niz znamenki podataka u kojima se podaci pohranjuju. Omogućuje pristup značajkama koje se mogu koristiti za klasifikaciju znamenke uzorci. Dalje, možete isprobati i neke druge operacije poput cilja, slika itd. Razmotrite primjer u nastavku:

uvoz matplotlib.pyplot kao plt iz sklearn uvoz skupova podataka iz sklearn import svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Izlaz -

[0 1 2 ..., 8 9 8] // cilj podataka [[0. 0. 5. 13. 9. 1. 0. 0.] // slika podataka [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.]]

Kao što vidite gore, ispisuju se ciljane znamenke i slika znamenki. znamenke.cilj daje temeljnu istinu za broj skup podataka, to je broj koji odgovara svakoj znamenkastoj slici. Dalje, podaci su uvijek 2D niz koji ima oblik (n_samples, n_features), iako su izvorni podaci možda imali drugačiji oblik. Ali u slučaju znamenki, svaki je izvorni uzorak slika oblika (8,8) i može mu se pristupiti pomoću znamenke . slika.

Učenje i predviđanje

Dalje, u Scikit učenju koristili smo skup podataka (uzorak od 10 mogućih klasa, znamenke od nule do devet) i trebamo predvidjeti znamenke kad je dana slika. Da bismo predvidjeli razred, trebamo procjenitelj što pomaže u predviđanju klasa kojima pripadaju nevidljivi uzorci. U Scikit learn imamo procjenitelj za klasifikaciju koji je python objekt koji implementira metode odgovara (x, y) i predvidjeti (T). Razmotrimo donji primjer:

uvoz matplotlib.pyplot kao plt iz sklearn uvoz skupova podataka iz sklearn import svm digits = datasets.load_digits () // skup podataka clf = svm.SVC (gama = 0,001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // uvježbavanje podataka clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // predviđanje podataka plt.imshow (znamenke.slike [-1], cmap = plt.cm.gray_r, interpolacija = 'najbliže') plt.show ()

Izlaz -

1796
Predviđanje: [8]


U gornjem primjeru prvo smo pronašli dužinu i učitali 1796 primjera. Zatim smo te podatke koristili kao podatke za učenje, gdje trebamo testirati zadnji i prvi negativni element. Također, moramo provjeriti je li stroj predvidio prave podatke ili ne. Za to smo koristili Matplotlib gdje smo prikazali sliku znamenki.Dakle, da zaključimo, imate podatke sa znamenkama, dobili ste metu, uklapate se i predviđate je, a time ste spremni! Stvarno je brzo i jednostavno, zar ne?

što je lutka u devopu

Ciljne naljepnice možete i vizualizirati slikom, samo pogledajte donji kod:

import matplotlib.pyplot as plt from sklearn import sets data from sklearn import svm digits = datasets.load_digits () # Pridružite slike i ciljne oznake na popisu images_and_labels = list (zip (digits.images, digits.target)) # za svaki element na popisu za indeks, (slika, naljepnica) u enumerate (images_and_labels [: 8]): # inicijalizirajte podplot 2X4 na i + 1-oj poziciji plt.subplot (2, 4, index + 1) # Prikaži slike u svim podplotama plt.imshow (slika, cmap = plt.cm.gray_r, interpolation = 'najbliže') # Dodajte naslov svakom podplotu plt.title ('Trening:' + str (oznaka)) # Prikažite plt plote. pokazati()

Izlaz-


Kao što možete vidjeti u gornjem kodu, koristili smo funkciju 'zip' za spajanje slika i ciljanja oznaka na popis, a zatim ih spremali u varijablu, recimo images_and_labels. Nakon toga indeksirali smo prvih osam elemenata u mreži 2 puta 4 na svakom položaju. Nakon toga smo upravo prikazali slike uz pomoć Matplotliba i dodali naslov kao 'trening'.

Slučaj upotrebe - Predviđanje pomoću logističke regresije

Izjava o problemu - Automobilska tvrtka objavila je na tržištu novi SUV. Koristeći prethodne podatke o prodaji njihovih terenaca, žele predvidjeti kategoriju ljudi koji bi mogli biti zainteresirani za kupnju ovog.

Za ovo, pogledajmo skup podataka koji imam ID korisnika, spol, dob, procijenjena plaća i kupljeno kao stupci. Ovo je samo uzorak skupa podataka, s kojeg možete preuzeti cijeli skup podataka ovdje . Jednom kada uvozimo podatke u pyCharm, izgleda nekako ovako.

Sada ćemo razumjeti ove podatke. Kao što možete vidjeti u gornjem skupu podataka, imamo kategorije kao što su id, spol, dob itd. Sada ćemo na temelju tih kategorija osposobiti naš stroj i predvidjeti br. kupnji. Pa evo, imamo neovisne varijable kao 'dob', 'očekivana plaća' i zavisna varijabla kao 'kupljeni'. Sada ćemo primijeniti nadzirano učenje, tj algoritam logističke regresije kako biste saznali broj kupnje pomoću postojećih podataka.

Prvo, neka je pregled logističke regresije.

Logistička regresija - Logistička regresija daje rezultate u binarnom formatu koji se koristi za predviđanje ishoda kategorički ovisne varijable. Najviše se koristi kada je ovisna varijabla binarna, tj. Broj dostupnih kategorija je dvije, kao što su uobičajeni izlazi logističke regresije -

  • Da i ne
  • Istinito i Netačno
  • Visoko i nisko
  • Proći i propasti

Sada da započnemo s kodom, prvo ćemo uvesti ove knjižnice - Numpy, Matplotlib i Pande. Prilično je lako uvesti pande u Pycharm slijedeći slijedeće korake:

Postavke -> Dodaj paket -> Pande -> Instaliraj

Nakon toga uvozit ćemo skup podataka i razdvojiti ovisnu varijablu (kupljenu) i neovisnu varijablu (dob, plaća) prema:

set podataka = pd.read_csv ('Social_Network_Ads.csv') X = data.iloc [:, [2, 3]]. vrijednosti y = data.iloc [:, 4] .values ​​print (X) print (y)

Sljedeći korak bio bi trening i testiranje podataka. Uobičajena strategija je uzimanje svih označenih podataka i podjela na podskupove treninga i testiranja, što se obično uzima s omjerom 70-80% za podskup treninga i 20-30% za podskupinu testiranja. Stoga smo kreirali skupove za osposobljavanje i testiranje pomoću cross_validation.

iz sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0)

Također možemo skalirati ulazne vrijednosti za bolje performanse pomoću StandarScalera kao što je prikazano dolje:

iz sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Sada ćemo stvoriti naš model logističke regresije.

iz sklearn.linear_model import LogisticRegression klasifikator = LogisticRegression (random_state = 0) klasifikator.fit (X_train, y_train)

To možemo koristiti i predvidjeti rezultate našeg testnog skupa.

y_pred = klasifikator.predvid (X_test)

Sada možemo provjeriti koliko je predviđanja bilo točno, a koliko ih nije koristilo matrica zbrke . Odredimo Y kao pozitivne instance, a N kao negativne. Četiri ishoda formulirana su u matrici zbunjenosti 2 * 2, kao što je prikazano u nastavku:

from sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Izlaz-

[[65 3] [8 24]]

Dalje, na temelju naše matrice zbrke možemo izračunati točnost. Dakle, u našem gornjem primjeru točnost bi bila:

= TP + TN / FN + FP

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

= 89%

To smo učinili ručno! Sada da vidimo kako stroj za nas izračunava isto, za to imamo ugrađenu funkciju 'score_score' koja izračunava točnost i ispisuje je, kao što je prikazano dolje:

iz sklearn.metrics uvoz točnost_skorije // uvozi funkciju točnost_rezultata ispis (točnost_score (y_test, y_pred) * 100) // ispisuje točnost

Izlaz -

89,0

Ura! Stoga smo uspješno implementirali logističku regresiju pomoću Scikit učenja s točnošću od 89%.

Kliknite ovdje da biste dobili puni cjeloviti izvor gore predviđanja koristeći Python Scikit learn knjižnicu.

Ovim smo pokrili samo jedan od mnogih popularnih algoritama koje python nudi.Obuhvatili smo sve osnove Scikit učenja biblioteke,tako da sada možete početi vježbati. Što više vježbate, više ćete naučiti. Pratite nas za daljnje blogove s vodičima za python!

primjer argumenta java naredbenog retka

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Scikit learn' i javit ćemo vam se u najkraćem mogućem roku. Da biste stekli detaljno znanje o Pythonu, zajedno s raznim aplikacijama, to možete za mrežni trening uživo s podrškom 24/7 i doživotnim pristupom.