Az egészségügy, a marketing, az üzleti élet stb. Területén végzett számos előrelépés következtében szükségessé vált a fejlettebb és összetettebb fejlesztés. . A gépi tanulás fokozása egy ilyen technika, amely komplex, adatközpontú, valós problémák megoldására használható. Ez a blog teljes egészében a Boosting Machine Learning működésére és annak megvalósítására összpontosít, hogy növelje a Machine Learning modellek hatékonyságát.
A mesterséges intelligencia és a gépi tanulás mélyreható ismereteinek megszerzéséhez regisztrálhat élőben Edureka 24/7 támogatással és élethosszig tartó hozzáféréssel.
Itt van egy lista azokról a témákról, amelyekről szó lesz ebben a blogban:
- Miért használják a fokozást?
- Mi az a Boosting?
- Hogyan működik a Boosting Algorithm?
- A felfokozás típusai
- Demó
Miért használják az erősítést?
A tekervényes problémák megoldásához fejlettebb technikákat igényelünk. Tegyük fel, hogy macskák és kutyák képeit tartalmazó képek adatsorán arra kérték, hogy készítsen egy modellt, amely két külön osztályba sorolhatja ezeket a képeket. Mint minden más ember, a képek azonosításával is kezdi az alábbi szabályokat:
A kép hegyes fülű: Cat
A kép macskaszemű: Cat
A képnek nagyobb a végtagja: Kutya
A kép éles karmokkal rendelkezik: Cat
A kép szélesebb szájfelépítésű: Kutya
Mindezek a szabályok segítenek azonosítani, hogy a kép kutya vagy macska, azonban ha egy képet egyedi (egyetlen) szabály alapján osztályoznánk, akkor az előrejelzés hibás lenne. Ezeket a szabályokat külön-külön gyenge tanulóknak nevezik, mert ezek a szabályok nem elég erősek ahhoz, hogy a képet macskának vagy kutyának minősítsék.
Ezért annak biztosítása érdekében, hogy jóslatunk pontosabb legyen, a többségi szabály vagy a súlyozott átlag felhasználásával egyesíthetjük ezeknek a gyenge tanulóknak az előrejelzését. Ez egy erős tanuló modellt alkot.
A fenti példában 5 gyenge tanulót határoztunk meg, és ezeknek a szabályoknak a többsége (azaz 5 tanulóból 3 tanítja meg a képet macskaként) megjósolja hogy a kép egy macska. Ezért végeredményünk egy macska.
Tehát ez eljutott a kérdéshez,
Mi az a Boosting?
A Boosting egy olyan együttes tanulási technika, amely a Gépi tanulás algoritmusainak együttesével gyenge tanulót erős tanulóvá alakítja annak érdekében, hogy növelje a modell pontosságát.
Mi a Boosting - A gépi tanulás fellendítése - Edureka
Mint említettem, a Boosting együttes tanulási módszer, de mi is pontosan az együttes tanulás?
php mysql_fetch_array
Mi az együttes a gépi tanulásban?
Az együttes tanulás egy olyan módszer, amelyet a gépi tanulási modell teljesítményének javítására használnak, több tanuló kombinálásával. Egyetlen modellhez képest ez a típusú tanulás jobb hatékonysággal és pontossággal épít modelleket. Pontosan ezért használják az együttes módszereket olyan piacvezető versenyek megnyerésére, mint a Netflix ajánlási verseny, a Kaggle versenyek és így tovább.
Mi az együttes tanulás - A gépi tanulás fellendítése - Edureka
Az alábbiakban a Boosting és a Bagging különbségét is megvitattam.
Fokozás vs zsákolás
Az együttes tanulása kétféleképpen hajtható végre:
Szekvenciális együttes, közismert nevén fellendítése , itt a gyenge tanulókat egymás után állítják elő a képzési szakaszban. A modell teljesítménye javul, ha az előző, helytelenül besorolt mintákhoz nagyobb súlyt rendelünk. Az erősítésre példa az AdaBoost algoritmus.
Párhuzamos készlet , közismert nevén zsákolás , itt a gyenge tanulókat a képzési szakaszban párhuzamosan állítják elő. A modell teljesítménye növelhető, ha pár gyengén tanulót párhuzamosan képezünk bootstrapped adathalmazokon. A zsákolás példája a Random Forest algoritmus.
Ebben a blogban a Boosting módszerre fogok összpontosítani, így az alábbi részben megértjük, hogyan működik a boosting algoritmus.
Hogyan működik a Boosting Algorithm?
A boosting algoritmus működésének alapelve az, hogy több gyenge tanulót kell létrehozni, és előrejelzéseiket egy erős szabály alkotja. Ezeket a gyenge szabályokat az alap Machine Learning algoritmusok alkalmazásával generálják az adatkészlet különböző eloszlásain. Ezek az algoritmusok gyenge szabályokat generálnak minden egyes iterációhoz. Többszörös ismétlések után a gyenge tanulókat egy erős tanulóvá alakítják, amely megjósolja a pontosabb eredményt.
Hogyan működik az algoritmus fokozása - a gépi tanulás fokozása - Edureka
Az algoritmus így működik:
1. lépés: Az alapalgoritmus beolvassa az adatokat, és minden minta megfigyeléshez azonos súlyt rendel.
2. lépés: Az alaptanuló által tett hamis jóslatok azonosításra kerülnek. A következő iterációban ezeket a hamis jóslatokat a következő alaptanulóhoz rendelik, akiknek nagyobb súlya van ezeken a helytelen előrejelzéseken.
3. lépés: Ismételje meg a 2. lépést, amíg az algoritmus nem tudja megfelelően osztályozni a kimenetet.
Ezért a Boosting fő célja az hogy jobban összpontosítson a hibásan besorolt jóslatokra.
Most, hogy tudjuk, hogyan működik a boosting algoritmus, értsük meg a boosting technikák különféle típusait.
A felfokozás típusai
Három fő módja van a fellendülésnek:
Adaptive Boosting vagy AdaBoost
Színátmenet növelése
XGBoost
Meg fogom vitatni ezeknek a típusoknak az alapjait.
Adaptív erősítés
Az AdaBoost úgy valósul meg, hogy több gyenge tanulót egyetlen erős tanulóvá egyesít.
Az AdaBoost gyenge tanulói egyetlen bemeneti jellemzőt vesznek figyelembe, és egyetlen osztott döntési fát rajzolnak ki, amelyet döntési csonknak neveznek. Minden megfigyelést egyformán mérlegelnek, miközben kihúzza az első döntési csonkot.
Az első döntési csonk eredményeit elemezzük, és ha bármilyen megfigyelést tévesen osztályozunk, nagyobb súlyokat rendelünk hozzájuk.
Ezt követően új döntési csonkot rajzolunk ki, ha a nagyobb súlyú megfigyeléseket tekintjük jelentősebbnek.
Ismételten, ha bármilyen megfigyelést rosszul osztályoznak, nagyobb súlyt kapnak, és ez a folyamat addig folytatódik, amíg az összes megfigyelés a megfelelő osztályba nem esik.
Az Adaboost osztályozásra és regresszió alapú problémákra egyaránt használható, azonban inkább osztályozási célokra.
Színátmenet növelése
A Gradient Boosting szintén a szekvenciális együttes tanuláson alapul. Itt az alaptanulókat szekvenciálisan generálják oly módon, hogy a jelenlegi alaptanuló mindig hatékonyabb legyen, mint az előző, vagyis a teljes modell minden iterációval egymás után javul.
A különbség az ilyen típusú ösztönzésben abban rejlik, hogy a rosszul besorolt eredmények súlyát nem növelik, ehelyett a Gradient Boosting módszer megpróbálja optimalizálni az előző tanuló veszteségfüggvényét egy új modell hozzáadásával, amely gyenge tanulókat ad hozzá a veszteségfüggvény csökkentése érdekében.
A fő gondolat itt az előző tanuló jóslatainak hibáinak leküzdése. Ennek a típusú fellendülésnek három fő eleme van:
Veszteség funkció ezt enyhíteni kell.
Gyenge tanuló előrejelzések kiszámításához és erős tanulók kialakításához.
An Adalék modell amely rendszeresíti a veszteségfüggvényt.
Az AdaBoosthoz hasonlóan a Gradient Boosting is alkalmazható mind osztályozási, mind regressziós problémákra.
XGBoost
Az XGBoost a Gradient boosting módszer fejlett változata, szó szerint eXtreme Gradient Boosting-et jelent. A Tianqi Chen által kifejlesztett XGBoost az Elosztott Gépi Tanulási Közösség (DMLC) kategóriájába tartozik.
Ennek az algoritmusnak a fő célja a számítás sebességének és hatékonyságának növelése. A Gradient Descent Boosting algoritmus lassabban számolja a kimenetet, mivel egymás után elemzik az adatsort, ezért az XGBoost-ot a modell teljesítményének növelésére vagy rendkívüli növelésére használják.
XGBoost - A gépi tanulás fokozása - Edureka
Az XGBoost célja a számítási sebesség és a modell hatékonyságának összpontosítása. Az XGBoost főbb jellemzői a következők:
Párhuzamosan döntési fákat hoz létre.
Elosztott számítási módszerek megvalósítása nagy és összetett modellek kiértékeléséhez.
Magon kívüli számítástechnika használata hatalmas adatkészletek elemzéséhez.
Gyorsítótár optimalizálás megvalósítása az erőforrások lehető legjobb kihasználása érdekében.
Tehát ezek voltaka különböző típusú Boosting Machine Learning algoritmusok. Hogy érdekessé tegyük a dolgokat, az alábbi szakaszban bemutatót futtatunk, hogy lássuk, hogyan lehet a boost algoritmusokat megvalósítani a Pythonban.
A gépi tanulás fokozása Pythonban
Rövid felelősségkizárás: A bemutató futtatásához a Python-t fogom használni, így ha nem ismeri a Pythont, akkor a következő blogokat tekintheti meg:
Itt az ideje, hogy bepiszkítsa a kezét, és elkezdjen kódolni.
Probléma nyilatkozat: A gomba adatsorának tanulmányozása és egy olyan gépi tanulási modell felépítése, amely a gomba tulajdonságait elemezve képes akár mérgezőnek, akár nem mérgezőnek minősíteni.
Adatkészlet leírása: Ez az adatsor részletesen leírja a hipotetikus mintákat 23 kopoltyús gombafajnak megfelelően. Minden faj étkezési gombának vagy nem ehető (mérgező) gombának minősül.
Logika: Gépi tanulási modell felépítése az egyik Boosting algoritmus használatával annak megjóslására, hogy egy gomba ehető-e vagy sem.
1. lépés: Importálja a szükséges csomagokat
from sklearn.ensemble import AdaBoostClassifier from sklearn.preprocessing import LabelEncoder from sklearn.tree import
2. lépés: Importálja az adatkészletet
# Betöltés az adatkészletbe = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')
3. lépés: Adatfeldolgozás
#Define the column names dataset.columns = ['target', 'cap-shape', 'cap-surface', 'cap-color', 'zúzódások', 'szag', 'kopoltyú-rögzítés', 'kopoltyúk távolsága ',' kopoltyúméret ',' kopoltyú-szín ',' szár-forma ',' szár-gyökér ',' szár-felület-gyűrű fölött ',' szár-felület-gyűrű alatt ',' szár-szín -abul-ring ',' szár-color-gyűrű alatt ',' fátyol-típusú ',' fátyol-color ',' ring-number ',' ring-type ',' spore-print-color ',' populáció ',' habitat '] a dataset.columns címkéhez: dataset [label] = LabelEncoder (). fit (dataset [label]). transform (dataset [label]) #Display információk az adatkészletről print (dataset.info ( )) Int64Index: 8124 bejegyzés, 6074–686 adatoszlop (összesen 23 oszlop): cél 8124 nem null int32 sapka alakú 8124 nem null int32 sapka felülete 8124 nem null int32 sapka szín 8124 nem null int32 zúzódás 8124 nem nulla int32 szag 8124 nem nulla int32 kopoltyús rögzítés 8124 nem nulla int32 kopoltyútávolság 8124 nem nulla int32 kopoltyúméret 8124 nem nulla int32 gill színű 8124 nem nulla int32 szároszlop 8124 nem null int32 szár-gyökér 8124 nem null int32 szár-felület-gyűrű fölött 8124 nem nulla int32 szár-felület-gyűrű alatt 8124 nem-nulla int32 szár-szín-gyűrű fölött 8124 nem nulla int32 szár-szín-gyűrű alatt 8124 nem nulla int32 fátyol- 8124 típusú nem null int32 fátyolszín 8124 nem null int32 gyűrűszám 8124 nem null int32 gyűrűs típus 8124 nem null int32 spóra-nyomtatás-szín 8124 nem null int32 populáció 8124 nem null int32 élőhely 8124 nem- null int32 dtypes: int32 (23) memóriahasználat: 793,4 KB
4. lépés: Adatok felosztása
X = dataset.drop (['target'], tengely = 1) Y = dataset ['target'] X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)
5. lépés: Készítse el a modellt
modell = DecisionTreeClassifier (kritérium = 'entrópia', max_mélység = 1) AdaBoost = AdaBoostClassifier (alap_értékelő = modell, n_értékelő = 400, tanulási_ráta = 1)
A fenti kódrészletben megvalósítottuk az AdaBoost algoritmust. Az „AdaBoostClassifier” függvénynek három fontos paramétere van:
parancssori argumentumok java példakódban
- base_estimator: Az alapbecslő (gyenge tanuló) alapértelmezés szerint a döntési fák
- n_becslés: Ez a mező meghatározza az alkalmazandó alaptanulók számát.
- learning_rate: Ez a mező meghatározza a tanulási arányt, amelyet az alapértelmezett értékre, azaz 1-re állítottunk be.
# Illessze be a modellt edzési adatokkal boostmodel = AdaBoost.fit (X_train, Y_train)
6. lépés: Modellértékelés
#Értékelje a modell pontosságát : 100,0%
100% -os pontosságot kaptunk, ami tökéletes!
Tehát ezzel véget értünk ennek a Boosting Machine Learning Blognak. Ha többet szeretne megtudni a gépi tanulásról, elolvashatja ezeket a blogokat:
Ha be akar jelentkezni a mesterséges intelligencia és a gépi tanulás teljes tanfolyamára, az Edureka speciálisan kurátora van amellyel jártas lesz az olyan technikákban, mint a felügyelt tanulás, a felügyelet nélküli tanulás és a természetes nyelv feldolgozása. Képzést tartalmaz a mesterséges intelligencia és a gépi tanulás legújabb fejleményeiről és technikai megközelítéseiről, mint például a mély tanulás, a grafikus modellek és a megerősítő tanulás.