Scikit learning - Machine Learning ved bruk av Python



Scikit lær blogg vil introdusere deg for maskinlæring i python. Det inkluderer et brukstilfelle der vi vil implementere logistisk regresjon ved hjelp av scikit learning.

I denne bloggen vil vi diskutere Scikit-læring i python. Før man snakker om Scikit-læring, må man forstå begrepet maskinlæringog må vite hvordan du bruker . Med maskinlæring trenger du ikke å samle innsikten manuelt. Du trenger bare en algoritme, og maskinen vil gjøre resten for deg! Er ikke dette spennende? Scikit learning er en av attraksjonene der vi kan implementere maskinlæring ved hjelp av Python. Dener et gratis maskinlæringsbibliotek som inneholder enkle og effektive verktøy for dataanalyse og gruvedrift.Jeg tar deg gjennom følgende emner, som vil tjene som grunnleggende for de kommende bloggene:

Hva er maskinlæring?

Maskinlæring er en type kunstig intelligens som lar programvare lære av dataene og bli mer nøyaktige i å forutsi resultater uten menneskelig inngripen. Men hvordan skjer det? For det trenger maskinen å bli trent på noen data, og basert på det, vil den oppdage et mønster for å lage en modell.Denne prosessen med å få kunnskap fra dataene og gi kraftig innsikt handler om maskinlæring. Se bildet nedenfor for å få en bedre forståelse av hvordan det fungerer:





MachineLearning - Scikit Learn - Edureka

Ved hjelp av dataene lærer systemet seg en algoritme og bruker den deretter til å bygge en prediktiv modell. Senere justerer vi modellen eller forbedrer nøyaktigheten til modellen ved hjelp av tilbakemeldingsdataene. Ved hjelp av disse tilbakemeldingsdataene justerer vi modellen og forutsier handling på det nye datasettet. Vi vildiskuterer en brukstilfelle av en av algoritmetilnærmingen der vi skal trene og teste dataene som vil hjelpe deg med å gi en bedre følelse av om det passer godt for ditt spesielle problem eller ikke.



Deretter er det tre typer maskinlæring:

tilfeldig klasse i java eksempel
    • Veiledet læring : Dette er en prosess med en algoritme som lærer fra treningsdatasettet. Overvåket læring er hvor du genererer en kartleggingsfunksjon mellom inngangsvariabelen (X) og en utgangsvariabel (Y), og du bruker en algoritme for å generere en funksjon mellom dem. Det er også kjent som prediktiv modellering som refererer til en prosess for å lage spådommer ved hjelp av dataene. Noen av algoritmene inkluderer lineær regresjon, logistisk regresjon, beslutningstreet, tilfeldig skog og Naive Bayes-klassifisering. Vi vil videre diskutere et brukstilfelle av veiledet læring der vi trener maskinen ved hjelp av logistisk regresjon .
    • Uovervåket læring : Dette er en prosess der en modell blir trent med informasjon som ikke er merket. Denne prosessen kan brukes til å gruppere inngangsdataene i klasser på grunnlag av deres statistiske egenskaper. Uovervåket læring kalles også som cglansanalyse som betyr gruppering av objekter basert på informasjonen som finnes i dataene som beskriver objektene eller deres forhold. Målet er at objekter i en gruppe skal være lik hverandre, men forskjellige fra objekter i en annen gruppe. Noen av algoritmene inkluderer K-betyr klynging, Hierarkisk klynging etc.
    • Forsterkningslæring: Forsterkningslæring er læring ved å samhandle med et rom eller et miljø.En RL-agent lærer av konsekvensene av handlingene sine, i stedet for å bli undervist eksplisitt. Den velger sine handlinger på grunnlag av tidligere erfaringer (utnyttelse) og også ved nye valg (utforskning).

Oversikt over Scikit Learn

Scikit learning er et bibliotek som brukes til å utføre maskinlæring i Python. Scikit Learn er et open source-bibliotek som er lisensiert under BSD og kan brukes på nytt i forskjellige sammenhenger, og oppmuntrer til akademisk og kommersiell bruk. Det gir en rekke overvåket og uten tilsyn læringsalgoritmer i Python.Scikit lære består av populære algoritmer og biblioteker. Bortsett fra det inneholder den også følgende pakker:



  • NumPy
  • Matplotlib
  • SciPy (Scientific Python)

For å implementere Scikit learning, må vi først importere pakkene ovenfor. Hvis du ikke er kjent med disse bibliotekene, kan du ta en titt på mine tidligere blogger på og . Du kan laste ned disse to pakkene ved hjelp av kommandolinjen eller hvis du bruker PYSjarm, du kan installere den direkte ved å gå til innstillingen din på samme måte som du gjør det for andre pakker.

Neste, på en lignende måte, må du importere Sklearn.Scikit learning er bygget på SciPy (Scientific Python) som må installeres før du kan bruke Scikit-learning. Du kan referere til dette nettsted for å laste ned det samme. Installer også Scipy og hjulpakken hvis den ikke er til stede, du kan skrive inn kommandoen nedenfor:

pip install scipy

Jeg har allerede lastet ned og installert den, du kan se skjermbildet nedenfor for enhver forvirring.

Etter å ha importert bibliotekene ovenfor, la oss grave dypere og forstå hvordan Scikit learning brukes.

Scikit lære kommer med eksempeldatasett, for eksempel iris og sifre . Du kan importere datasettene og leke med dem. Etter det må du importere SVM som står for Support Vector Machine. SVM er en form for maskinlæring som brukes til å analysere data.

La oss ta et eksempel hvor vi skal ta sifre datasett og det vil kategorisere tallene for oss, for eksempel- 0 1 2 3 4 5 6 7 8 9. Se koden nedenfor:

importer matplotlib.pyplot som plt fra sklearn importer datasett fra sklearn importer svm sifre = datasett.load_digits () skriv ut (sifre.data)

Utgang -

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

Her har vi nettopp importert bibliotekene, SVM, datasett og skrevet ut dataene. Det er en lang rekke sifferdata der dataene er lagret. Det gir tilgang til funksjonene som kan brukes til å klassifisere sifre prøver. Deretter kan du også prøve noen andre operasjoner som mål, bilder osv. Tenk på eksemplet nedenfor:

importer matplotlib.pyplot som plt fra sklearn importer datasett fra sklearn importer svm sifre = datasett.load_digits () skriv ut (digits.target) skriv ut (digits.images [0])

Produksjon -

[0 1 2 ..., 8 9 8] // mål for dataene [[0. 0. 5. 13. 9. 1. 0. 0.] // bilde av dataene [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.]]

Som du kan se ovenfor, blir målsifrene og bildet av sifrene skrevet ut. sifre.mål gir bakken sannhet for siffer datasett, det er tallet som tilsvarer hvert sifferbilde. Deretter er data alltid en 2D-matrise som har en form (n_samples, n_features), selv om de originale dataene kan ha hatt en annen form. Men når det gjelder sifrene, er hver originalprøve et bilde av formen (8,8) og kan nås ved hjelp av sifre . bilde.

Læring og forutsigelse

Deretter, i Scikit learning, har vi brukt et datasett (utvalg av 10 mulige klasser, sifre fra null til ni), og vi må forutsi sifrene når et bilde er gitt. For å forutsi klassen trenger vi en estimator som hjelper til med å forutsi klassene usynlige prøver tilhører. I Scikit lære har vi en estimator for klassifisering som er et pythonobjekt som implementerer metodene passform (x, y) og forutsi (T). La oss se på eksemplet nedenfor:

importer matplotlib.pyplot som plt fra sklearn importer datasett fra sklearn importer svm sifre = datasett.load_digits () // datasett clf = svm.SVC (gamma = 0,001, C = 100) skriv ut (len (sifre.data)) x, y = sifre.data [: - 1], sifre.target [: - 1] // trene data clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // forutsi data plt.imshow (sifre. bilder [-1], cmap = plt.cm.grå_r, interpolering = 'nærmeste') plt.show ()

Utgang -

1796
Prediksjon: [8]


I eksemplet ovenfor hadde vi først funnet lengden og lastet inn 1796 eksempler. Deretter har vi brukt disse dataene som læringsdata, der vi trenger å teste det siste elementet og det første negative elementet. Vi må også sjekke om maskinen har spådd riktig data eller ikke. For det hadde vi brukt Matplotlib der vi hadde vist bildet av sifre.Så for å konkludere, du har sifret data, du har målet, du passer og forutsier det, og dermed er du god å gå! Det er veldig raskt og enkelt, ikke sant?

Du kan også visualisere måletikettene med et bilde, se bare koden nedenfor:

importer matplotlib.pyplot som plt fra sklearn importer datasett fra sklearn importer svm sifre = datasett.load_digits () # Bli med bildene og måletikettene i en liste images_and_labels = list (zip (digits.images, digits.target)) # for hvert element i listen for indeks, (bilde, etikett) i enumerate (images_and_labels [: 8]): # initialiser en delplott på 2X4 i i + 1-th posisjon plt. subplot (2, 4, index + 1) # Vis bilder i alle delplottene plt.imshow (image, cmap = plt.cm.gray_r, interpolation = 'nærmeste') # Legg til en tittel til hver delplott plt.title ('Training:' + str (label)) # Vis plottet plt. vise fram()

Produksjon-


Som du kan se i koden ovenfor, har vi brukt 'zip' -funksjonen til å bli med på bildene og målsetningen i en liste og deretter lagre den i en variabel, si images_and_labels. Etter det har vi indeksert de første åtte elementene i et rutenett på 2 x 4 på hver posisjon. Etter det har vi nettopp vist bildene ved hjelp av Matplotlib og lagt til tittelen som ‘trening’.

twitter sentimentanalyse ved hjelp av gnist

Bruk sak - Forutsigelse ved bruk av logistisk regresjon

Problemstilling - Et bilfirma har gitt ut en ny SUV i markedet. Ved å bruke de tidligere dataene om salget av SUV-ene sine, ønsker de å forutsi kategorien mennesker som kan være interessert i å kjøpe denne.

For dette, la oss se et datasett der jeg har UserId, kjønn, alder, estimert lønn og kjøpt som kolonner. Dette er bare et eksempeldatasett, du kan laste ned hele datasettet fra her . Når vi først har importert dataene i pyCharm, ser det noe slik ut.

La oss nå forstå disse dataene. Som du kan se i ovennevnte datasett, har vi kategorier som id, kjønn, alder osv. Nå, basert på disse kategoriene, skal vi trene maskinen vår og forutsi nei. av kjøp. Så her har vi det uavhengige variabler som ‘alder’, ‘forventet lønn’ og avhengig variabel som ‘kjøpt’. Nå vil vi bruke veiledet læring, dvs. logistisk regresjonsalgoritme for å finne ut antall kjøp ved hjelp av eksisterende data.

La oss først få en oversikt over logistisk regresjon.

Logistisk regresjon - Logistisk regresjon produserer resultater i et binært format som brukes til å forutsi resultatet av en kategorisk avhengig variabel. Det er mest brukt når den avhengige variabelen er binær, dvs. antall tilgjengelige kategorier er to, for eksempel er de vanlige utgangene av logistisk regresjon -

  • Ja og nei
  • Sann og usann
  • Høyt og lavt
  • Pass og mislykkes

Nå for å begynne med koden, vil vi først importere disse bibliotekene - Numpy, Matplotlib og Pandas. Det er ganske enkelt å importere pandaer i Pycharm ved å følge trinnene nedenfor:

Innstillinger -> Legg til pakke -> Pandaer -> Installer

Etter dette vil vi importere datasettet og separat avhengig variabel (kjøpt) og uavhengig variabel (alder, lønn) etter:

datasett = pd.read_csv ('Social_Network_Ads.csv') X = datasett.iloc [:, [2, 3]]. verdier y = datasett.iloc [:, 4] .verdier utskrift (X) utskrift (y)

Det neste trinnet ville være å trene og teste dataene. En vanlig strategi er å ta alle merkede data og dele opp i opplærings- og testundersett, som vanligvis tas med et forhold på 70-80% for opplæringsmengde og 20-30% for testmengden. Derfor har vi opprettet lage trenings- og testsett ved hjelp av kryssvalidering.

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

Vi kan også skalere inngangsverdiene for bedre ytelse ved hjelp av StandarScaler som vist nedenfor:

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

Nå skal vi lage vår logistiske regresjonsmodell.

fra sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Vi kan bruke dette og forutsi resultatene av testsettet vårt.

y_pred = classifier.predict (X_test)

Nå kan vi sjekke hvor mange spådommer som var nøyaktige og hvor mange som ikke brukte forvirringsmatrise . La oss definere Y som positive forekomster og N som negative forekomster. De fire resultatene er formulert i 2 * 2 forvirringsmatrise, som vist nedenfor:

fra sklearn.metrics importerer confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Produksjon-

[[65 3] [8 24]]

Neste, basert på vår forvirringsmatrise, kan vi beregne nøyaktigheten. Så i vårt eksempel ovenfor, vil nøyaktigheten være:

java datastrukturer og algoritmer

= TP + TN / FN + FP

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

= 89%

Vi har gjort dette manuelt! La oss nå se hvordan maskinen beregner det samme for oss, for det har vi en innebygd funksjon ‘accuracy_score’ som beregner nøyaktigheten og skriver den ut, som vist nedenfor:

fra sklearn.metrics importer nøyaktighet_score // importer funksjonen nøyaktighet_score utskrift (nøyaktighet_score (y_test, y_pred) * 100) // skriver ut nøyaktigheten

Utgang -

89,0

Hurra! Vi har dermed med hell implementert logistisk regresjon ved hjelp av Scikit learning med en nøyaktighet på 89%.

Klikk her for å få fullstendig kilden til ovennevnte spådommer ved hjelp av Python Scikit læringsbibliotek.

Med dette har vi dekket bare en av de mange populære algoritmene python har å tilby.Vi har dekket alt det grunnleggende om Scikit, lær biblioteket,slik at du kan begynne å øve nå. Jo mer du øver jo mer vil du lære. Følg med for videre opplæringsblogger for python!

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne 'Scikit Learn' -bloggen, så kommer vi tilbake til deg så snart som mulig. For å få inngående kunnskap om Python sammen med de forskjellige applikasjonene, kan du for live online trening med 24/7 support og levetidstilgang.