Bevezetés a gépi tanulási algoritmusokba

A Machine Learning egy prediktív elemzés, amely azon az elven működik, amely szerint a számítógépek a múltbeli adatokból tanulnak, majd előrejelzéseket készítenek az új adatokra. A Machine Learning algoritmusok megjelenése már régen jött létre, amikor a számítógépeket kifejlesztették. A közelmúltbeli hype azonban a nagy mennyiségű adat előállítása és a modern számítógépek birtokában lévő óriási számítási teljesítmény eredménye. Ennek eredményeként kialakult a Deep Learning, amely a Machine Learning alterülete, amely több adaton nyer. Úgy működik, mint egy emberi agy, ahol az idegsejteket használják jobb döntések meghozatalára. Hasonlóképpen, a mély tanulásban az idegi hálózatok képezik azokat a rétegeket, amelyek a továbbfejlesztés és a hátraterjedés elvét követik, hogy jobb döntéseket hozzanak.

Gépi tanulási algoritmusok kategóriái

A gépi tanulási algoritmusok területét a következő kategóriákba lehet sorolni:

  • Felügyelt tanulás - A felügyelt tanulásban az adatkészlet címkével van ellátva, azaz minden elemre vagy független változóra van egy megfelelő cél adat, amelyet felhasználnánk a modell kiképzéséhez.
  • ENSZ által felügyelt tanulás - ellentétben a felügyelt tanulással, ebben az esetben az adatkészlet nincs megcímkézve. Ezért fürtözési technikával az adatokat az azonos csoportba tartozó adatpontok közötti hasonlóság alapján csoportosítják.
  • Megerősítő tanulás - A gépi tanulás egy speciális típusa, ahol a modell megtanul minden megtett műveletből. A modell jutalmazni fog minden meghozott helyes döntésért, és büntetendő minden olyan helytelen döntésért, amely lehetővé teszi a minták megismerését és az ismeretlen adatokra vonatkozó pontosabb döntések meghozatalát.

Gépi tanulási algoritmusok felosztása

A gépi tanulási algoritmusok problémáit fel lehet osztani -

  • Regresszió - A függõ és a független változók között folyamatos kapcsolat van. A célváltozó numerikus jellegű, míg a független változók lehetnek numerikusak vagy kategorikusak.
  • Osztályozás - A leggyakoribb problémamegjegyzés, amelyet a valós világban talál, az adatpont osztályozása valamilyen bináris, multinomális vagy rendi osztályba. A bináris osztályozás problémájában a célváltozónak csak két kimenetele van (igen / nem, 0/1, igaz / hamis). A Multinomial Classification probléma esetén a célváltozóban több osztály található (Apple / Orange / Mango és így tovább). Az Ordinal osztályozási feladatban a célváltozót rendezik (pl. A hallgatók fokozatát).

Most, hogy megoldja ezt a fajta problémát, a programozók és a tudósok kifejlesztettek néhány programot vagy algoritmust, amelyek felhasználhatók az adatokra előrejelzések készítéséhez. Ezek az algoritmusok lineáris és nemlineáris vagy faalapú algoritmusokra oszthatók. A lineáris algoritmusokat, mint például a Lineáris Regresszió, a Logisztikus Regresszió általában akkor alkalmazzák, amikor a szolgáltatás és a célváltozó között lineáris kapcsolat van, míg a nemlineáris mintákat mutató adatok, a fáalapú módszerek, például a döntési fa, a Random Forest, a gradiensnövelés, stb., előnyösek.

Eddig rövidebb intuíciót kaptunk a gépi tanulásról. Most megtanul néhány előre beprogramozott algoritmust, amelyeket felhasználhat a következő projektben.

algoritmusok

Számos gépi tanulási algoritmus létezik a piacon, és ez csak növekedni fog, figyelembe véve az ezen a területen végzett kutatások mennyiségét. A lineáris és a logisztikus regresszió általában az első olyan algoritmus, amelyet adattudósként megtanulsz, és ezt tovább fejlett algoritmusok követik.

Az alábbiakban néhány a gépi tanulás algoritmusa, valamint a python mintakódrészletei.

1. Lineáris regresszió

Ahogy a neve is sugallja, ezt az algoritmust lehet használni olyan esetekben, amikor a folyamatos jellegű célváltozó lineárisan függ a függő változóktól. Ezt képviseli -

y = a * x + b + e, ahol y a célváltozó, amelyet megpróbálunk megjósolni, a a lehallgatás és b a lejtő, x a függő változónk, amelyet a becsléshez használunk. Ez egy egyszerű lineáris regresszió, mivel csak egy független változó létezik. Többszörös lineáris regresszió esetén az egyenlet így lenne:

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

E e a hiba kifejezés, és a1, a2 .. a (n) a független változók együtthatója.

A modell teljesítményének értékeléséhez egy olyan mutatót használunk, amely ebben az esetben a gyökér átlag négyzet hibája lehet, amely a tényleges és a becsült értékek közötti különbség összegének átlagának négyzetgyöke.

A Lineáris Regresszió célja a legmegfelelőbb vonal megtalálása, amely minimalizálja a tényleges és a becsült adatpontok közötti különbséget.

A lineáris regressziót a Python-ban az alábbiak szerint lehet írni -

2. Logisztikus regresszió

A lineáris kapcsolat fenntartása szempontjából megegyezik a lineáris regresszióval. A lineáris regresszióval ellentétben a logisztikus regresszió célváltozója azonban kategorikus, azaz bináris, multinomális vagy ordinális jellegű. Az aktivációs függvény megválasztása fontos a logisztikus regressziónál, mivel bináris osztályozási problémák esetén az esélyek naplóját használják, azaz a szigmoid függvényt kell használni.

Többosztályú probléma esetén a softmax függvényt részesítjük előnyben, mivel a szigmoid függvény sok számítási időt vesz igénybe.

Az osztályozási probléma értékeléséhez használt mutató általában a pontosság vagy a ROC-görbe. Minél több a ROC alatti terület, annál jobb a modell. Egy véletlenszerű grafikon AUC-értéke 0, 5. Az 1 érték a legnagyobb pontosságot, míg a 0 a legkisebb pontosságot jelzi.

A logisztikus regresszió a tanulás során írható -


3. K-Legközelebbi szomszédok

A gépi tanulási algoritmusok felhasználhatók mind osztályozási, mind regressziós problémákra. A KNN-módszer mögött az az elképzelés áll, hogy a K legközelebbi szomszédai alapján megjósolja egy új adatpont értékét. K-t általában páratlan számként részesítik előnyben a konfliktusok elkerülése érdekében. Bármely új adatpont osztályozásakor a Szomszédokon belül a legmagasabb üzemmóddal rendelkező osztályt veszik figyelembe. Míg a regressziós probléma esetén az átlagot tekintik értéknek.

Megtanultam, hogy a KNN így van írva:


A KNN-t használják az ajánlási motor felépítéséhez.

4. Támogassa a vektorgépeket

Osztályozási algoritmus, amelyben a hiper sík elválasztja a két osztályt. Egy bináris osztályozási probléma esetén két különálló osztályból származó két vektort támogató vektoroknak tekintünk, és a hiper síkot a támasztól való vektoroktól maximális távolságra húzzuk.

Mint láthatja, egyetlen sor választja el a két osztályt. Az esetek többségében azonban az adatok nem lennének olyan tökéletesek, és egy egyszerű hipergép nem lenne képes elválasztani az osztályokat. Ezért be kell hangolnia azokat a paramétereket, mint a Szabályozás, Kernel, Gamma stb.

A kernel lehet lineáris vagy polinomiális, az adatok elválasztásától függően. Ebben az esetben a kernel lineáris jellegű. Szabályozás esetén meg kell választania a C optimális értékét, mivel a magas érték túllépéshez vezethet, míg egy kis érték alulteljesítheti a modellt. Az egyetlen edzési példa befolyását Gamma határozza meg. A vonalhoz közeli pontokat nagy gamma, és fordítva az alacsony gamma értékeket veszi figyelembe.

A sklearnban az SVM a következőképpen íródik:


5. Naiv Bayes

A Bayes-tétel elvén működik, amely megállapítja az esemény valószínűségét, figyelembe véve néhány valódi körülményt. A Bayes tételt a következőképpen reprezentáljuk:

Az algoritmust naivnak hívják, mivel úgy véli, hogy minden változó független, és az egyik változó jelenléte nincs kapcsolatban a többi változóval, ami a való életben soha nem fordul elő. A Naive Bayes felhasználható az e-mail spam osztályozásban és a szöveges osztályozásban.

Naiv Bayes-kód Pythonban -

6. Döntési fa

Az osztályozási és regressziós problémákra egyaránt felhasználva a Döntési fa algoritmus az egyik legegyszerűbb és legjobban értelmezhető Machine Learning algoritmus. Nem befolyásolja a kimenetek vagy az adatok hiányzó értékei, és rögzíthetik a függõ és a független változók közötti nemlineáris kapcsolatokat.

A döntési fa felépítéséhez az összes funkciót először figyelembe vesszük, de a maximális információnyereséggel rendelkező funkciót vesszük az utolsó gyökércsomópontnak, amely alapján az egymást követő felosztás megtörténik. Ez a felosztás a maximális információs kritériumok alapján folytatódik a gyermekcsomóponton, és addig áll le, amíg az összes példányt nem osztályozták, vagy az adatokat nem lehetett tovább felosztani. A döntési fák gyakran hajlamosak a túlteljesítésre, ezért be kell hangolni a hiperparamétert, például a maximális mélységet, a minimális levélcsomópontokat, a minimális mintákat, a maximális tulajdonságokat és így tovább. A túlzott felszerelés csökkentése érdekében van egy kapzsi megközelítés, amely minden lépésben korlátozásokat állít fel, és kiválasztja a lehető legjobb kritériumokat erre a megosztásra. Van még egy jobb megközelítés, a Metszés neve, ahol a fát először egy meghatározott előre meghatározott mélységre építik fel, majd az aljától kezdve eltávolítják a csomópontokat, ha ez nem javítja a modellt.

A sklearnban a döntési fák kódja:



7. Véletlenszerű erdő

A döntési fa túlzott felszerelésének csökkentése érdekében csökkenteni kell a modell szórását, és így a zsákolás koncepciója lépett hatályba. A zsákolás olyan technika, amelyben több osztályozó kimenete képezi a végső eredményt. A Random Forest az egyik ilyen csomagolási módszer, ahol az adatkészletből több adatkészletet vesznek mintába, és a szolgáltatásokat véletlenszerűen választják ki az egyes halmazokhoz. Ezután minden mintába felvett adatra a döntési fa algoritmust alkalmazzuk, hogy az egyes módokból kimenetet kapjunk. Regressziós probléma esetén az összes modell kimenetének átlagát vesszük figyelembe, míg osztályozási probléma esetén azt az osztályt vesszük figyelembe, amelyik a maximális szavazatot kapja, az adatpont osztályozására. A Random Forest-t nem befolyásolják a kiugró értékek, az adatokban hiányzó értékek, és ez szintén segít a dimenzió csökkentésében. Nem értelmezhető azonban, hogy melyik hátránya van a Random Forest-nek. A Pythonban a Random Forest kódolható:


8. K-jelentése a klaszterezés

Eddig felügyelt tanulási problémákkal dolgoztunk, ahol minden bemenetnek van megfelelő kimenete. Most megtudhatnánk a felügyelet nélküli tanulást, ahol az adatokat nem címkézzük, és meghatározott csoportokra kell csoportosítani. Számos klaszterezési technika létezik. Ezek közül a leggyakoribb a K-eszközök csoportosulása. Tinta-átlag, k azon klaszterek számát jelöli, amelyeket be kell állítani, mielőtt megőriznék az adatkészlet maximális varianciáját. Miután a k beállítva, a centridákat inicializálják. A centridákat ezután ismételten beállítják úgy, hogy a centridon belüli adatpontok közötti távolság a legnagyobb legyen, és a két különálló közötti távolság a legnagyobb. Az euklideszi távolság, a manhattani távolság stb. Az e célra használt távolság-képlet néhány része.

A k értéket a könyök módszerrel lehet megtalálni.

A K-eszközök klaszterezését az e-kereskedelemben használják, ahol az ügyfelek viselkedési mintáik alapján vannak csoportosítva. Ezt fel lehet használni a kockázatelemzésben is. Az alábbiakban található a python kód -


Következtetés: Gépi tanulási algoritmusok

Az Data Scientist a 21. század legszexisebb munkája, és a Machine Learning minden bizonnyal az egyik legfontosabb szakterülete. Adattudósnak kell lennie ahhoz, hogy alaposan megértse mindezeket az algoritmusokat, valamint számos más új technikát, például a mély tanulást.

Ajánlott cikkek

Ez egy útmutató a gépi tanulási algoritmusokhoz. Itt megvitatjuk a gépi nyelv fogalmát, kategóriáit, problémáit és különféle algoritmusait. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Gépi tanulási technikák
  2. Mi az a mély tanulás?
  3. Data Scientist vs Machine Learning
  4. Felügyelt tanulás vs nem felügyelt tanulás
  5. Hiperparaméter gépi tanulás
  6. Mi az a megerősítéses tanulás?
  7. Az együttesek tanulásának leggyakrabban használt technikái
  8. Teljes útmutató a C ++ algoritmus példáira
  9. Útmutató a gépi tanulás életciklusának szakaszaihoz

Kategória: