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 -
- Gépi tanulási technikák
- Mi az a mély tanulás?
- Data Scientist vs Machine Learning
- Felügyelt tanulás vs nem felügyelt tanulás
- Hiperparaméter gépi tanulás
- Mi az a megerősítéses tanulás?
- Az együttesek tanulásának leggyakrabban használt technikái
- Teljes útmutató a C ++ algoritmus példáira
- Útmutató a gépi tanulás életciklusának szakaszaihoz