Scikit learn - Gépi tanulás Python használatával



A Scikit Learn blog bemutatja a gépi tanulást a pythonban. Tartalmaz egy felhasználási esetet, amikor a logikai regressziót a scikit tanulás segítségével valósítjuk meg.

Ebben a blogban a Scikit Learn Python-ban fogunk tárgyalni. Mielőtt a Scikit learn-ről beszélne, meg kell értenie a gépi tanulás fogalmátés tudnia kell a használatát . A gépi tanulás során nem kell manuálisan összegyűjteni a betekintést. Csak algoritmusra van szükséged, és a gép megteszi neked a többit! Nem izgalmas ez? A Scikit learning az egyik vonzerő, ahol a gépi tanulást a Python segítségével valósíthatjuk meg. Aztegy ingyenes gépi tanulási könyvtár, amely egyszerű és hatékony eszközöket tartalmaz adatelemzéshez és bányászati ​​célokra.A következő témákat ismertetem, amelyek a következő blogok alapjait szolgálják:

Mi az a gépi tanulás?

A gépi tanulás egy olyan mesterséges intelligencia, amely lehetővé teszi a szoftveralkalmazások számára, hogy tanuljanak az adatokból, és emberi beavatkozás nélkül pontosabbá váljanak az eredmények előrejelzésében. De hogyan történik ez? Ehhez a gépet bizonyos adatokra ki kell képezni, és ez alapján felismer egy mintát a modell létrehozásához.Az adatokból történő ismeretszerzés és az erőteljes betekintés folyamata a gépi tanulásról szól. Tekintse meg az alábbi képet, hogy jobban megértse működését:





MachineLearning - Scikit Learn - Edureka

Az adatok felhasználásával a rendszer megtanul egy algoritmust, majd egy prediktív modell felépítésére használja fel. Később a modellt igazítjuk, vagy a visszacsatolási adatok felhasználásával növeljük a modell pontosságát. Ezen visszacsatolási adatok felhasználásával hangoljuk be a modellt és megjósoljuk az új adatsor cselekvését. Mi fogunktárgyaljon a használati eset az egyik algoritmus-megközelítés, ahol kiképezzük és teszteljük az adatokat, amelyek segítenek abban, hogy jobban megértsék, jól fognak-e illeszkedni az adott problémához.



Ezután a gépi tanulásnak három típusa van:

    • Felügyelt tanulás : Ez egy algoritmus folyamata, amely a képzési adatkészletből tanul. A felügyelt tanulás során létrehoz egy leképezési függvényt a bemeneti változó (X) és a kimeneti változó (Y) között, és algoritmust használ egy függvény létrehozására közöttük. Prediktív modellezés néven is ismert, amely az adatok felhasználásával történő előrejelzések folyamatára utal. Néhány algoritmus a lineáris regressziót, a logisztikai regressziót, a döntési fát, a Random forest és a Naive Bayes osztályozót tartalmazza. Tovább fogjuk megvitatni a felügyelt tanulás olyan felhasználási esetét, amikor a gépet betanítjuk logisztikus regresszió .
    • Felügyelet nélküli tanulás : Ez egy olyan folyamat, ahol a modellt olyan információk felhasználásával képzik ki, amelyek nincsenek felcímkézve. Ez a folyamat felhasználható a bemeneti adatok klaszterekbe történő klaszterezésére statisztikai tulajdonságaik alapján. A felügyelet nélküli tanulást c-nek is nevezikfényűző elemzés, amely az objektumok csoportosítását jelenti az objektumokat vagy azok kapcsolatát leíró adatokban található információk alapján. A cél az, hogy az egyik csoportban lévő objektumok hasonlóak legyenek egymáshoz, de különbözzenek egy másik csoport objektumaitól. Az algoritmusok egy része magában foglalja a K-jelentésű klaszterezést, a hierarchikus klaszterezést stb.
    • Megerősítő tanulás: A megerősítő tanulás egy térrel vagy környezettel való interakció révén történő tanulás.Az RL-ügynök nem a kifejezett tanítás, hanem a cselekvés következményei alapján tanul. Műveleteit korábbi tapasztalatai (kizsákmányolás) és új választások (feltárás) alapján választja ki.

A Scikit Learn áttekintése

A Scikit learn egy könyvtár, amelyet a gépi tanulás Pythonban történő végrehajtására használnak. A Scikit learn egy nyílt forráskódú könyvtár, amely BSD alapján engedélyezett, és különféle körülmények között újrafelhasználható, ösztönözve a tudományos és kereskedelmi felhasználást. Felügyelt és felügyelet nélküli tanulási algoritmusokat kínál a Pythonban.A Scikit learn népszerű algoritmusokból és könyvtárakból áll. Ezen kívül a következő csomagokat is tartalmazza:



típusú megjegyzések java-ban
  • NumPy
  • Matplotlib
  • SciPy (tudományos Python)

A Scikit tanulás megvalósításához először importálnunk kell a fenti csomagokat. Ha még nem ismeri ezeket a könyvtárakat, megnézheti a korábbi blogjaimat és . Ezt a két csomagot letöltheti a parancssorból, vagy ha P-t használYVarázsa, közvetlenül telepítheti, ha ugyanúgy megy a beállításához, mint más csomagokhoz.

Ezután hasonló módon, importálnia kell az Sklearn-t.A Scikit learning a SciPy-re (Scientific Python) épül, amelyet telepíteni kell a Scikit-learn használatához. Erre hivatkozhat weboldal hogy ugyanazt töltse le. Telepítse a Scipy és a wheel csomagot is, ha nincs, írja be az alábbi parancsot:

pip install scipy

Már letöltöttem és telepítettem, bármilyen zavart okozhat az alábbi képernyőképen.

A fenti könyvtárak importálása után ássunk mélyebbre és értsük meg, hogyan használják pontosan a Scikit learning programot.

A Scikit learn mintadatkészletekkel érkezik, mint pl írisz és számjegyeket . Importálhatja az adatkészleteket és játszhat velük. Ezt követően importálnia kell az SVM-et, amely a Support Vector Machine rövidítése. Az SVM a gépi tanulás egyik formája, amelyet adatok elemzésére használnak.

Vegyünk egy példát, ahova fogunk vinni számjegyeket adathalmaz és kategorizálja a számokat számunkra, például 0 0 2 2 4 4 6 6 8 8 9. Lásd az alábbi kódot:

import matplotlib.pyplot plt-ként a sklearn-ből importálja az adatkészleteket a sklearn-ből importál svm digits = datasets.load_digits () print (digits.data)

Kimenet -

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

Itt importáltuk a könyvtárakat, az SVM-et, az adatkészleteket és kinyomtattuk az adatokat. Ez egy hosszú számjegyű adat, ahol az adatokat tárolják. Hozzáférést biztosít azokhoz a tulajdonságokhoz, amelyek felhasználhatók a számjegyeket minták. Ezután kipróbálhat más műveleteket is, például a célt, a képeket stb. Vegye figyelembe az alábbi példát:

import matplotlib.pyplot plt-ként a sklearn-ből importálja az adatkészleteket a sklearn-ből importál svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Kimenet -

[0 1 2 ..., 8 9 8] // az adatok célpontja [[0. 0. 5. 13. 9. 1. 0. 0.] // az adatok képe [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.]]

Mint fent látható, a céljegyek és a számjegyek képe kinyomtatásra kerül. számjegyek.cél megalapozza az igazságot a számjegy adatkészlet, ez az egyes számjegyű képeknek megfelelő szám. Ezután az adatok mindig egy 2D-s tömbök, amelyeknek alakja van (n_minták, n_jellemzők), bár az eredeti adatok más alakúak lehetnek. De a számjegyek esetében minden eredeti minta egy formájú kép (8,8), és a segítségével érhető el számjegyeket . kép.

mi az az esemény a javascriptben

Tanulás és előrejelzés

Ezután a Scikit tanulás során egy adatkészletet használtunk (10 lehetséges osztály mintája, nulla és kilenc közötti számjegy), és meg kell jósolnunk a kép megadásakor a számokat. Az osztály megjóslásához szükségünk van egy becslő amely segít megjósolni azokat az osztályokat, amelyekhez nem látott minták tartoznak. A Scikit learnben van egy becslésünk az osztályozáshoz, amely egy python objektum, amely megvalósítja a módszereket illeszkedés (x, y) és megjósolni (T). Vizsgáljuk meg az alábbi példát:

import matplotlib.pyplot plt-ként a sklearn-ből importálja az adatkészleteket a sklearn-ből importál svm digits = datasets.load_digits () // adatkészlet clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // az adatok kiképzése clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // megjósolja az adatokat plt.imshow (számjegyek. képek [-1], cmap = plt.cm.szürke_r, interpoláció = 'legközelebbi') plt.show ()

Kimenet -

1796
Jóslás: [8]


A fenti példában először megtaláltuk a hosszát és betöltöttünk 1796 példát. Ezután ezeket az adatokat tanulási adatokként használtuk fel, ahol tesztelni kell az utolsó elemet és az első negatív elemet. Ezenkívül ellenőriznünk kell, hogy a gép megjósolta-e a megfelelő adatokat, vagy sem. Ehhez a Matplotlib-et használtuk, ahol a számjegyek képét jelenítettük meg.Összegzésképpen: számjegyadatokkal rendelkezik, megkapta a célt, illeszkedik és megjósolja azt, és így jól megy! Nagyon gyors és egyszerű, nem?

A célcímkéket képpel is megjelenítheti, csak olvassa el az alábbi kódot:

import matplotlib.pyplot plt-ként a sklearn-ből importálja az adatkészleteket a sklearn-ből importál svm digits = datasets.load_digits () # Csatlakoztassa a képeket és a célcímkéket egy listába images_and_labels = list (zip (digits.images, digits.target)) # minden elemhez az index listájában, (kép, címke) felsorolásban (images_and_labels [: 8]): # inicializálja a 2X4-es részterületet az i + 1-edik pozícióban plt. subplot (2, 4, index + 1) # Képek megjelenítése minden részterületen plt.imshow (kép, cmap = plt.cm.gray_r, interpoláció = 'legközelebbi') # Adjon címet az egyes subplotokhoz plt.title ('Képzés:' + str (címke)) # Mutassa meg a plot plt. előadás()

Kimenet-


Ahogy a fenti kódban láthatja, a „zip” függvényt alkalmaztuk a képek és a célcímkék összekapcsolására egy listában, majd egy változóba való mentésbe, például images_and_labels. Ezt követően az első nyolc elemet indexeltük egy-egy 2–4-es rácsban minden helyzetben. Ezt követően a Matplotlib segítségével most bemutattuk a képeket, és hozzáadtuk a címet „edzésként”.

Használjon esetet - Jóslás logisztikai regresszióval

Probléma nyilatkozat - Egy autóipari vállalat új terepjárót adott ki a piacon. A terepjáróik eladásaival kapcsolatos korábbi adatok felhasználásával meg akarják jósolni az emberek kategóriáját, akiket érdekelhet ennek megvásárlása.

Ehhez lássunk egy adatkészletet, ahol van UserId, nem, életkor, becsült fizetés és vásárolt oszlopként. Ez csak egy minta adatkészlet, amelyről a teljes adatkészlet letölthető itt . Miután az adatokat importáltuk a pyCharm-ba, kissé így néz ki.

Most értsük meg ezeket az adatokat. Amint a fenti adatkészletből látható, vannak olyan kategóriáink, mint az azonosító, a nem, az életkor stb. Most ezekre a kategóriákra alapozva képezni fogjuk gépünket és megjósoljuk a nemet. vásárlások. Tehát itt van független változók mint „életkor”, „várható fizetés” és függő változó mint „megvásárolt”. Most a felügyelt tanulást fogjuk alkalmazni, azaz logisztikai regressziós algoritmus hogy a meglévő adatok alapján megtudja a vásárlás számát.

Először nyerjünk áttekintést a logisztikai regresszióról.

Logisztikus regresszió - A logisztikai regresszió bináris formátumban eredményez, amelyet egy kategorikus függő változó eredményének megjóslására használnak. A legszélesebb körben akkor alkalmazzák, ha a függő változó bináris, azaz a rendelkezésre álló kategóriák száma kettő, például a logisztikai regresszió szokásos kimenetei:

  • Igen és nem
  • Igaz és hamis
  • Magas és alacsony
  • Pass and Fail

A kóddal kezdve először ezeket a könyvtárakat - Numpy, Matplotlib és Pandas - importáljuk. Nagyon könnyű behozni a pandákat Pycharmba az alábbi lépések végrehajtásával:

Beállítások -> Csomag hozzáadása -> Pandák -> Telepítés

Ezt követően importáljuk az adatkészletet és az elkülönített változót (megvásárolt) és a független változót (életkor, fizetés) az alábbiak szerint:

mysql workbench bemutató kezdőknek
dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. értékek y = dataset.iloc [:, 4]. értékek print (X) print (y)

A következő lépés az oktatás és az adatok tesztelése lenne. Általános stratégia az összes felcímkézett adat összegyűjtése, és képzési és tesztelési részhalmazokra bontása, amelyet általában 70-80% -kal vesznek fel a képzési részhalmazra és 20-30% -ra a tesztelési részhalmazra. Ezért létrehoztunk egy képzési és tesztelési készletet a cross_validation segítségével.

from sklearn.cross_validation vonat_teszt_split importálása X_train, X_test, y_train, y_test = train_test_split (X, y, teszt_méret = 0,25, random_state = 0)

A bemeneti értékeket a jobb teljesítmény érdekében a StandarScaler használatával is méretezhetjük, az alábbiak szerint:

from sklearn.preprocessing importálás StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Most elkészítjük a logisztikai regressziós modellünket.

from sklearn.linear_model import LogisticRegression osztályozó = LogisticRegresszió (random_state = 0) osztályozó.fit (X_train, y_train)

Ezt felhasználhatjuk és megjósolhatjuk tesztkészletünk eredményeit.

y_pred = osztályozó.predict (X_test)

Most ellenőrizhetjük, hogy hány jóslat volt pontos és hány nem használta zavartsági mátrix . Határozzuk meg Y-t pozitív és N-t negatív példányként. A négy eredmény 2 * 2 összetévesztési mátrixban van megfogalmazva, az alábbiak szerint:

from sklearn.metrics importálja a zavart_mátrix cm = zavart_mátrix (y_test, y_pred) nyomtatás (cm)

Kimenet-

[[65 3] [8 24]]

Ezután a zavartsági mátrixunk alapján kiszámíthatjuk a pontosságot. Tehát a fenti példánkban a pontosság a következő lenne:

= TP + TN / FN + FP

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

= 89%

Ezt manuálisan tettük meg! Most nézzük meg, hogyan számítja ki a gép számunkra ugyanazt, ehhez van egy beépített „pontosság_sorozat” függvényünk, amely kiszámítja a pontosságot és kinyomtatja az alábbiak szerint:

a sklearn.metrics fájlból importálja a pontosság_pontszámot // importálja a pontosság_ pontszám nyomtatás funkciót (pontosság_pontszám (y_teszt, y_pred) * 100) // kinyomtatja a pontosságot

Kimenet -

89,0

Hurrá! Így sikeresen megvalósítottuk a logisztikai regressziót a Scikit tanulás segítségével 89% -os pontossággal.

Kattints ide hogy megkapja a fenti jóslat teljes forrását a Python Scikit tanulási könyvtár használatával.

Ezzel a Python által kínált számos népszerű algoritmus közül csak az egyiket ismertettük.A Scikit megtanulja a könyvtár összes alapját áttekintettük,így most elkezdheti a gyakorlást. Minél többet gyakorolsz, annál többet fogsz tanulni. Maradj velünk a további python oktató blogokról!

Van egy kérdésünk? Kérjük, említse meg a „Scikit tanulni” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel. Ha részletes ismereteket szeretne szerezni a Pythonról és annak különböző alkalmazásokról, megteheti élő online képzéshez, napi 24 órás támogatással és életre szóló hozzáféréssel.