Scikit learn - koneoppiminen Pythonilla



Scikit-oppimisblogi esittelee koneoppimisen pythonissa. Se sisältää käyttötapauksen, jossa toteutetaan logistinen regressio scikit-oppimisen avulla.

Tässä blogissa keskustelemme Scikit-oppimisesta pythonissa. Ennen kuin puhutaan Scikit-oppimisesta, on ymmärrettävä koneoppimisen käsiteja heidän on osattava käyttää . Koneoppimisen avulla sinun ei tarvitse kerätä oivalluksiasi manuaalisesti. Tarvitset vain algoritmin, ja kone tekee loput puolestasi! Eikö tämä ole jännittävää? Scikit-oppiminen on yksi vetovoima, jossa voimme toteuttaa koneoppimisen Pythonilla. Seon ilmainen koneoppimiskirjasto, joka sisältää yksinkertaisia ​​ja tehokkaita työkaluja tietojen analysointiin ja louhintaan.Esitän sinut seuraavista aiheista, jotka toimivat tulevaisuuden blogien perustekijöinä:

Mitä koneoppiminen on?

Koneoppiminen on eräänlainen tekoäly, jonka avulla ohjelmistosovellukset voivat oppia tiedoista ja tulla tarkemmiksi ennustamaan tuloksia ilman ihmisen puuttumista. Mutta miten se tapahtuu? Tätä varten kone on koulutettava joihinkin tietoihin ja sen perusteella se havaitsee mallin mallin luomiseksi.Tämä tiedon hankkimisen prosessi ja tehokkaiden oivallusten antaminen on kyse koneoppimisesta. Katso alla oleva kuva saadaksesi paremman käsityksen sen toiminnasta:





MachineLearning - Scikit Learn - Edureka

Tietojen avulla järjestelmä oppii algoritmin ja käyttää sitä sitten ennustavan mallin rakentamiseen. Myöhemmin säädämme mallia tai parannamme mallin tarkkuutta palautetietojen avulla. Tämän palautetiedon avulla viritämme mallia ja ennustamme uuden tietojoukon toimintaa. Tulemmekeskustella a käyttötapauksessa Yhdestä algoritmilähestymistavasta, jossa koulutamme ja testaamme tietoja, jotka auttavat sinua ymmärtämään paremmin, sopivatko ne juuri sinun ongelmasi vai ei.



Seuraavaksi koneoppimista on kolme tyyppiä:

    • Ohjattu oppiminen : Tämä on algoritmin prosessi, joka oppii koulutuksen aineistosta. Valvotulla oppimisella luodaan kartoitusfunktio tulomuuttujan (X) ja lähtömuuttujan (Y) välille ja käytät algoritmia funktion luomiseen niiden välille. Se tunnetaan myös nimellä ennakoiva mallinnus, joka viittaa prosessiin ennusteiden tekemiseen datan avulla. Joitakin algoritmeja ovat lineaarinen regressio, logistinen regressio, päätöspuu, satunnainen metsä ja Naive Bayes -luokitus. Keskustelemme edelleen valvotun oppimisen käyttötapauksesta, jossa koulutamme konetta logistinen regressio .
    • Valvomaton oppiminen : Tämä on prosessi, jossa malli koulutetaan käyttämällä tietoja, joita ei ole merkitty. Tätä prosessia voidaan käyttää ryhmittelemään syötetiedot luokkiin niiden tilastollisten ominaisuuksien perusteella. Valvomatonta oppimista kutsutaan myös nimellä ckiihkeä analyysi, joka tarkoittaa esineiden ryhmittelyä esineitä tai niiden suhdetta kuvaavan datan sisältämien tietojen perusteella. Tavoitteena on, että yhden ryhmän esineiden tulisi olla samanlaisia ​​toistensa kanssa, mutta erilainen kuin toisen ryhmän kohteet. Jotkut algoritmeista sisältävät K-tarkoittaa klustereita, hierarkkisia klustereita jne.
    • Vahvistusoppiminen: Vahvistusoppiminen on oppimista vuorovaikutuksessa tilan tai ympäristön kanssa.RL-agentti oppii toimintansa seurauksista sen sijaan, että opetettaisiin nimenomaisesti. Se valitsee toimintansa aiempien kokemustensa (hyväksikäyttö) ja myös uusien valintojen (etsintä) perusteella.

Katsaus Scikit Learniin

Scikit learn on kirjasto, jota käytetään koneoppimiseen Pythonissa. Scikit learn on avoimen lähdekoodin kirjasto, joka on lisensoitu BSD: llä ja jota voidaan käyttää uudelleen eri yhteyksissä kannustamalla akateemista ja kaupallista käyttöä. Se tarjoaa valikoiman valvottuja ja valvomattomia oppimisalgoritmeja Pythonissa.Scikit-oppiminen koostuu suosituista algoritmeista ja kirjastoista. Sen lisäksi se sisältää myös seuraavat paketit:



  • NumPy
  • Matplotlib
  • SciPy (tieteellinen Python)

Scikit-oppimisen toteuttamiseksi meidän on ensin tuotava yllä olevat paketit. Jos et tunne näitä kirjastoja, voit katsoa edellisiä blogejani ja . Voit ladata nämä kaksi pakettia komentoriviltä tai jos käytät P: täYCharm, voit asentaa sen suoraan siirtymällä asetuksiisi samalla tavalla kuin muillekin paketeille.

Seuraavaksi samalla tavalla, sinun on tuotava Sklearn.Scikit-oppiminen perustuu SciPy-sovellukseen (Scientific Python), joka on asennettava ennen kuin voit käyttää Scikit-learn-ohjelmaa. Voit viitata tähän verkkosivusto ladata sama. Asenna myös Scipy ja wheel package, jos sitä ei ole, voit kirjoittaa alla olevan komennon:

pip asenna scipy

Olen jo ladannut ja asentanut sen, voit katsoa alla olevasta kuvakaappauksesta sekaannuksia.

Kun olet tuonut yllä olevat kirjastot, kaivetaan syvemmälle ja ymmärretään, miten Scikit-oppimista tarkalleen käytetään.

Scikit-oppimiseen sisältyy näytetiedostoja, kuten iiris ja numeroa . Voit tuoda tietojoukot ja leikkiä niiden kanssa. Sen jälkeen sinun on tuotava SVM, joka tarkoittaa Support Vector Machine -ohjelmaa. SVM on koneoppimisen muoto, jota käytetään tietojen analysointiin.

Otetaanpa esimerkki mihin otamme numeroa tietoaineisto ja se luokittelee numerot meille esimerkiksi 0 1 2 3 4 5 6 7 8 9. Katso alla oleva koodi:

tuo matplotlib.pyplot plt-tiedostona sklearn-tiedostosta tuoda tietojoukot sklearn-tiedostosta import svm digits = datasets.load_digits () print (digits.data)

Tuotos -

kuinka skannata hiiltä 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.]]

Täällä olemme juuri tuoneet kirjastot, SVM: n, datajoukot ja tulostaneet tiedot. Se on pitkä joukko numerotietoja, johon tiedot on tallennettu. Se antaa pääsyn ominaisuuksiin, joita voidaan käyttää numeroa näytteet. Seuraavaksi voit kokeilla myös muita toimintoja, kuten kohde, kuvat jne. Harkitse seuraavaa esimerkkiä:

Tuo matplotlib.pyplot plt-tiedostona sklearnista Tuo tietojoukot sklearnista Tuo svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Tuotos -

[0 1 2 ..., 8 9 8] // datan kohde [[0. 0. 5. 13. 9. 1. 0. 0.] // datan kuva [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.]]

Kuten yllä voit nähdä, kohdenumerot ja numeroiden kuvat tulostetaan. digits.target antaa pohjan totuuden numero tietojoukko, joka on kutakin numerokuvaa vastaava numero. Seuraavaksi data on aina 2D-taulukko, jolla on muoto (n_näytteet, n_ominaisuudet), vaikka alkuperäisellä tiedolla voi olla erilainen muoto. Numeroiden tapauksessa jokainen alkuperäinen näyte on muodon muotoinen kuva (8,8), ja siihen pääsee käsin numeroa . kuva.

Oppiminen ja ennustaminen

Seuraavaksi olemme käyttäneet Scikit-oppimisessa tietoaineistoa (näyte 10 mahdollisesta luokasta, numerot nollasta yhdeksään) ja meidän on ennustettava numerot, kun kuva annetaan. Luokan ennustamiseksi tarvitsemme estimaattori mikä auttaa ennustamaan luokat, joihin näkymättömät näytteet kuuluvat. Scikit-oppimisessa meillä on luokittelun estimaattori, joka on python-objekti, joka toteuttaa menetelmät sovi (x, y) ja ennustaa (T). Tarkastellaan seuraavaa esimerkkiä:

Tuo matplotlib.pyplot plt-tiedostona sklearnista Tuo tietojoukot sklearnista Tuo svm digits = datasets.load_digits () // tietoaineisto clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // kouluta tiedot clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // ennustaa datan plt.imshow (numerot.images [-1], cmap = plt.cm.gray_r, interpolointi = 'lähin') plt.show ()

Tuotos -

1796
Ennustus: [8]


Yllä olevassa esimerkissä olimme ensin löytäneet pituuden ja ladanneet 1796 esimerkkiä. Seuraavaksi olemme käyttäneet näitä tietoja oppimistiedoina, joissa meidän on testattava viimeinen ja ensimmäinen negatiivinen elementti. Meidän on myös tarkistettava, onko kone ennustanut oikeat tiedot vai ei. Tätä varten olimme käyttäneet Matplotlibia, jossa olimme näyttäneet kuvan numeroista.Joten lopuksi, sinulla on numerotietoja, sinulla on kohde, sovitat ja ennustat sen, joten olet hyvä mennä! Se on todella nopeaa ja helppoa, eikö olekin?

Voit myös visualisoida kohdetarrat kuvalla, katso vain alla olevaa koodia:

Tuo matplotlib.pyplot plt-tiedostona sklearnista Tuo tietojoukot sklearnista Tuo svm digits = datasets.load_digits () # Liitä kuvat ja kohdetarrat luetteloon images_and_labels = list (zip (digits.images, digits.target)) # jokaiselle elementille hakemiston luettelossa, (kuva, tunniste) luettelossa (kuvat_ja_etiketit [: 8]): # alusta 2X4: n osa-alue i + 1: nnen sijainnin plt-alialueella (2, 4, hakemisto + 1) # Näytä kuvat kaikissa osa-alueissa plt.imshow (kuva, cmap = plt.cm.gray_r, interpolointi = 'lähin') # Lisää otsikko kuhunkin osa-alueeseen plt.title ('Harjoitus:' + str (tarra)) # Näytä juoni plt. näytä()

Tuotos-

valinta lajitteluohjelma java


Kuten yllä olevasta koodista näet, olemme yhdistäneet kuvat ja kohdetunnisteet luetteloon zip-funktiolla ja tallentaneet sen muuttujaan, esimerkiksi images_and_labels. Sen jälkeen olemme indeksoineet ensimmäiset kahdeksan elementtiä ruudukossa 2 x 4 kussakin paikassa. Sen jälkeen olemme juuri näyttäneet kuvat Matplotlibin avulla ja lisänneet otsikon 'harjoitteluun'.

Käytä asia - Ennustus logistisen regressiota käyttämällä

Ongelma - Autoyritys on julkaissut uuden maastoauton markkinoilla. Käyttämällä aiempia tietoja maastoautojensa myynnistä he haluavat ennustaa luokan ihmisistä, jotka saattavat olla kiinnostuneita ostamaan tämän.

Tätä varten katsotaanpa tietojoukko minulla on UserId, sukupuoli, ikä, arvioitu palkka ja ostettu sarakkeina. Tämä on vain esimerkkitietojoukko, josta voit ladata koko tietojoukon tässä . Kun tiedot on tuotu pyCharmiin, se näyttää hieman tältä.

Ymmärretään nyt nämä tiedot. Kuten yllä olevasta aineistosta näet, meillä on luokkia, kuten tunnus, sukupuoli, ikä jne. Näiden luokkien perusteella aiomme kouluttaa koneemme ja ennustaa ei. ostoista. Joten tässä meillä on riippumattomia muuttujia ikä, odotettu palkka ja riippuva muuttuja 'ostettuna'. Nyt sovellamme ohjattua oppimista, ts logistinen regressioalgoritmi selvittää ostosten määrä olemassa olevien tietojen avulla.

Ensinnäkin saamme yleiskuvan logistisesta regressiosta.

Logistinen regressio - Logistinen regressio tuottaa tuloksia binaarimuodossa, jota käytetään ennustamaan kategorisen riippuvan muuttujan tulos. Sitä käytetään eniten, kun riippuva muuttuja on binaarinen, ts. Käytettävissä olevien luokkien määrä on kaksi, kuten tavalliset logistisen regressiolähdöt ovat -

  • Kyllä ja ei
  • Tosi ja väärä
  • Korkea ja matala
  • Hyväksy ja epäonnistuu

Nyt aloitetaan koodilla, ensin tuomme nämä kirjastot - Numpy, Matplotlib ja Pandas. Pandojen tuonti Pycharmiin on melko helppoa seuraamalla seuraavia vaiheita:

Asetukset -> Lisää paketti -> Pandat -> Asenna

Tämän jälkeen tuomme tietojoukon ja erillisen riippuvan muuttujan (ostettu) ja itsenäisen muuttujan (ikä, palkka) seuraavasti:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. arvot y = dataset.iloc [:, 4] .arvot tulostaa (X) print (y)

Seuraava askel olisi tietojen kouluttaminen ja testaaminen. Yleinen strategia on ottaa kaikki merkityt tiedot ja jakaa koulutuksen ja testauksen osajoukkoihin, mikä yleensä otetaan suhteella 70-80% harjoittelun alaryhmälle ja 20-30% testauksen osajoukolle. Siksi olemme luoneet luomaan koulutus- ja testausjoukkoja cross_validation -menetelmällä.

from sklearn.cross_validation Tuo juna_testi_split X_train, X_test, y_train, y_test = juna_test_split (X, y, test_size = 0,25, random_state = 0)

Voimme myös skaalata tuloarvot parempaan suorituskykyyn käyttämällä StandarScaleria alla esitetyllä tavalla:

sklearn.preprocinging-tuonnista StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Nyt luomme logistisen regressiomallimme.

from sklearn.linear_model import LogisticRegression luokittelija = LogisticRegression (random_state = 0) luokittelija.fit (X_train, y_train)

Voimme käyttää tätä ja ennustaa testisarjamme tulokset.

kuinka asettaa luokkatie Java-käyttöjärjestelmään Windows 10: ssä
y_pred = luokittelija.ennuste (X_test)

Nyt voimme tarkistaa, kuinka monta ennustusta oli tarkka ja kuinka moni ei käyttänyt sekaannusmatriisi . Määritellään Y positiivisina ja N negatiivisina esiintyminä. Neljä lopputulosta on muotoiltu 2 * 2 sekoitusmatriisiin, kuten alla on esitetty:

from sklearn.metrics tuo sekaannusmatriisi cm = sekaannusmatriisi (y_testi, y_pred) tulosta (cm)

Tuotos-

[[65 3] [8 24]]

Seuraavaksi voimme sekaannusmatriisimme perusteella laskea tarkkuuden. Joten edellisessä esimerkissämme tarkkuus olisi:

= TP + TN / FN + FP

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

= 89%

Olemme tehneet tämän manuaalisesti! Katsotaan nyt, kuinka kone laskee saman meille, sillä meillä on sisäänrakennettu toiminto 'Tarkkuus_pisteet', joka laskee tarkkuuden ja tulostaa sen, kuten alla on esitetty:

from sklearn.metrics tuonti tarkkuus_pisteet // tuo funktion tarkkuus_pisteet tulostus (tarkkuus_pisteet (y_testi, y_pred) * 100) // tulostaa tarkkuuden

Tuotos -

89,0

Hurraa! Olemme siten onnistuneesti toteuttaneet logistisen regressiota käyttämällä Scikit-oppimista 89%: n tarkkuudella.

Klikkaa tästä saadaksesi yllä olevan ennusteen täydellisen lähteen käyttämällä Python Scikit -oppimiskirjastoa.

Tällä olemme käsittäneet vain yhden monista suosituista algoritmeista, joita python tarjoaa.Olemme käsittäneet kaikki Scikit-oppimisen kirjaston perusteet,joten voit alkaa harjoitella nyt. Mitä enemmän harjoittelet, sitä enemmän opit. Pysy kuulolla muita python-opetusblogeja!

Onko sinulla kysymys meille? Mainitse se tämän Scikit oppia -blogin kommenttiosassa, niin otamme sinuun yhteyttä mahdollisimman pian. Voit saada syvällistä tietoa Pythonista sen eri sovellusten kanssa live-verkkokoulutukseen 24/7 tuella ja käyttöikä.