Mitkä ovat näiden kolmen menetelmän yhtäläisyydet ja erot:
- laukku,
- Tehostaminen,
- pinoaminen?
Mikä on paras? Ja miksi?
Voitteko antaa minulle esimerkki jokaiselle?
Kommentit
- oppikirjaviitteelle, suosittelen: ” Ensemble -menetelmät: perustukset ja algoritmit ”, esittäjä Zhou, Zhi-Hua
- Katso tästä liittyvä kysymys .
vastaus
Kaikki kolme ovat ns. ”meta-algoritmeja”: lähestymistapoja useiden koneoppimistekniikoiden yhdistämiseen yhdeksi ennakoivaksi malliksi varianssin ( pussitus ), ennakkoluulojen ( lisääminen ) vähentämiseksi tai ennustavan voiman parantamiseksi ( pinoaminen alias yhtye ).
Jokainen algoritmi koostuu kahdesta vaiheesta:
-
Piirin tuottaminen yksinkertaisten ML-mallien käyttö alkuperäisten tietojen alajoukoilla.
-
Jakelun yhdistäminen yhdeksi ”kootuksi” malliksi.
Tässä on lyhyt kuvaus kaikista kolmesta menetelmästä:
-
Bagging (lyhenne sanoista B ootstrap Agg regat in ) on tapa vähentää ennustesi varianssi luomalla lisätietoa harjoittelua varten alkuperäisestä tietojoukostasi -yhdistelmien ja toistojen avulla tuottaaksesi -joukot samankaltainen / kokoinen kuin alkuperäiset tiedot. Lisäämällä harjoitusjoukkoasi et voi parantaa mallin ennustavaa voimaa, mutta vain pienentää varianssia säätämällä kapeasti ennustetta odotettuun tulokseen.
-
Tehostaminen on kaksivaiheinen lähestymistapa, jossa ensin käytetään alkuperäiset tiedot tuottavat sarjan keskimäärin suoriutuvia malleja ja ”lisäävät” niiden suorituskykyä yhdistämällä ne yhteen käyttämällä tiettyä kustannusfunktiota (= enemmistöäänestys). Toisin kuin pussituksessa, klassinen tehostaminen osajoukon luominen ei ole satunnaista ja riippuu edellisten mallien suorituskyvystä: jokainen uusi osajoukko sisältää elementit, jotka (todennäköisesti) luokittelivat aiemmat mallit väärin.
-
Pinoaminen on samanlainen kuin tehostaminen : käytät myös useita malleja alkuperäisiin tietoihisi. Ero tässä on, Kuitenkin, että sinulla ei ole vain empiiristä kaavaa painofunktiollesi, pikemminkin esität metatason ja käytät toista mallia / lähestymistapaa tulojen arvioimiseksi yhdessä jokaisen mallin tulosten kanssa estimoidaksesi painot tai toisin sanoen, määrittää, mitkä mallit toimivat hyvin ja mitkä huonosti antaneet nämä syötetiedot.
Tässä on vertailutaulukko:
Kuten näette, nämä kaikki ovat erilaisia lähestymistapoja yhdistää useita malleja paremmiksi, ja on olemassa täällä ei ole yhtä voittajaa: kaikki riippuu verkkotunnuksestasi ja siitä, mitä aiot tehdä. Voit silti pitää pinoamista eräänlaisena lisäetuna tehostamisena , mutta vaikeuksia löytää hyvä lähestymistapa metatasolle vaikeuttaa tämän lähestymistavan soveltamista käytännössä .
Lyhyt esimerkki kustakin:
- pussitus : Otsonitiedot .
- Tehostaminen : käytetään optisen merkintunnistuksen (OCR) tarkkuuden parantamiseen.
- pinoaminen : käytetään -luokituksessa syöpämikroaaltoja lääketieteessä.
Kommentit
- Vaikuttaa siltä, että tehostamismäärittelysi on erilainen kuin wikissä (johon olet linkittänyt) tai tässä artikkelissa . Molemmat sanovat, että seuraavan luokittelun parantamisessa käytetään aiemmin koulutettujen tuloksia, mutta et ’ maininnut sitä. Toisaalta kuvaamasi menetelmä muistuttaa joitain äänestys- / mallikeskiarvoistamistekniikoita.
- @ a-rodin: Kiitos tämän tärkeän näkökohdan osoittamisesta. Kirjoitin tämän osan kokonaan uudestaan vastaamaan tätä paremmin. Toisen huomautukseni osalta ymmärrän, että tehostaminen on myös eräänlainen äänestys / keskiarvo, vai ymmärsinkö sinä väärin?
- @AlexanderGalkin Minulla oli mielessä kaltevuusvaikutus kommentoinnin aikana: se ei ’ t näyttää äänestykseltä, vaan pikemminkin iteratiivisena funktion lähentämistekniikkana. Kuitenkin esim. AdaBoost näyttää enemmän kuin äänestys, joten en voittanut ’ t kiistellä siitä.
- Ensimmäisessä lauseessasi sanot, että Boosting vähentää ennakkoluuloja, mutta vertailutaulukossa sanot se lisää ennustavaa voimaa.Ovatko nämä molemmat totta?
Vastaa
Laukkujen :
-
rinnakkainen kokonaisuus: kukin malli on rakennettu itsenäisesti
-
tavoitteena vähentää varianssia , ei puolueellisuus
-
soveltuu suuritehoisten variaatioiden matalan esijännityksen malleihin (monimutkaiset mallit)
-
esimerkki puupohjaisen menetelmän menetelmä on satunnainen metsä , joka kehittää täysin kasvaneet puut (huomaa, että RF muuttaa kasvanutta menettelyä korrelaation vähentämiseksi puiden välissä)
Tehostaminen :
-
peräkkäinen yhtye: yritä lisätä uusia malleja, jotka toimivat hyvin missä edellisistä malleista puuttuu
-
tavoitteena vähentää b ias , ei varianssi
-
sopii pienen varianssin suuriharvoisiin malleihin
-
esimerkki puupohjaisesta menetelmästä on kaltevuuden lisääminen
Kommentit
- Kommentoimalla kutakin kohtaa vastaamaan miksi niin ja miten se saavutetaan, olisi hienoa parannus vastauksessasi.
- Voitteko jakaa asiakirjan / linkin, joka selittää, että tehostaminen vähentää varianssia ja miten se tapahtuu? Haluan vain ymmärtää syvällisemmin
- kiitos Tim, minä ’ lisän kommentteja myöhemmin. @ML_Pro, tehostamismenettelystä (esim. Sivu cs.cornell.edu/courses/cs578/2005fa/… ), on ’ ymmärrettävää, että tehostaminen voi vähentää ennakkoluuloja.
Vastaa
Yuqianin vastauksen tarkentamiseksi vain vähän. Laukkujen idea on, että kun YLITÄN ei-parametrisella regressiomenetelmällä (yleensä regressio- tai luokituspuilla, mutta voi olla melkein mikä tahansa ei-parametrinen menetelmä), taipumus mennä suureen varianssiin, ei (tai vähän) puolueellisuusosaan bias / varianssi-kompromississa.Tämä johtuu siitä, että ylivarustettu malli on erittäin joustava (niin pieni puolueellisuus monien saman populaation näytteiden osalta, jos sellaisia oli saatavilla), mutta on suuri vaihtelu (jos kerään otoksen ja sovitan sen liikaa, ja sinä otat näytteen ja sovitat sen liikaa, tulokset eroavat toisistaan, koska ei-parametrinen regressio seuraa melua tiedoissa.) Mitä voimme tehdä? Voimme ottaa monia uudelleennäytteitä ( bootstrapping) , kukin ylikuntoinen, ja keskiarvo ne yhdessä. Tämän pitäisi johtaa samaan ennakkoon (matalaan), mutta poistaa ainakin osa teorian varianssista.
Gradientin tehostaminen ytimessä toimii UNDERFIT -parametristen regressioiden kanssa, jotka ovat liian yksinkertaisia eivätkä näin ollen ”t”. riittävän joustava kuvaamaan todellista suhdetta tiedoissa (ts. puolueellinen), mutta koska ne ovat sopivia, niiden varianssi on pieni (sinulla on taipumus saavuttaa sama tulos, jos keräät uusia tietojoukkoja). Kuinka korjaat tämän? Pohjimmiltaan, jos olet sopiva, mallisi Jäännökset sisältävät edelleen hyödyllisen rakenteen (tietoa populaatiosta), joten lisäät olemassa olevaa puuta (tai mitä tahansa muuta kuin parametrista ennustinta) jäännöksille rakennettuun puuhun. Tämän pitäisi olla joustavampi kuin alkuperäinen puu. Luodat toistuvasti enemmän ja enemmän puita, joista jokainen vaiheessa k lisätään painotetulla puulla, joka perustuu vaiheeseen k-1 jäännöksiin sovitettuun puuhun. Yhden näistä puista tulisi olla optimaalisia, joten päätät joko painottaa kaikki nämä puut yhdessä tai valita parhaiten sopivan puun. Siten kaltevuuslisäys on tapa rakentaa joukko joustavampia ehdokaspuita.
Kuten kaikki muut kuin parametriset regressio- tai luokittelumenetelmät, joskus laukkujen asettaminen tai lisääminen toimii hyvin, toisinaan toinen tai toinen lähestymistapa on keskinkertainen, ja toisinaan yksi tai toinen lähestymistapa (tai molemmat) kaatuu ja palaa.
Molempia tekniikoita voidaan soveltaa myös muihin regressiolähestymiin kuin puihin, mutta ne liittyvät yleisimmin puihin, ehkä siksi, että se on vaikeaa asettaaksesi parametreja välttääksesi sovittamista tai yliasennusta.
Kommentit
- +1 overfit = varianssi, underfit = bias-argumentille! Yksi syy päätöksentekopuiden käyttöön on, että ne ovat rakenteellisesti epävakaita, joten hyötyvät enemmän olosuhteiden pienistä muutoksista. ( abbottanalytics.fi / asset / pdf / … )
vastaus
vastaus
Yhteenvetona lyhyesti: Laukkujen ja Boosting käytetään yleensä yhden algoritmin sisällä, kun taas pinoaminen on yleensä käytetään tiivistämään useita tuloksia eri algoritmeista.
- Laukkujen asettaminen : Bootstrap ominaisuuksien ja näytteiden alijoukot, jotta saat useita ennusteita ja keskiarvoja (tai muilla tavoin) tulokset, esimerkiksi
Random Forest
, jotka eliminoivat varianssin ja joilla ei ole yliasennettavia ongelmia. - Tehostaminen : Ero pakkaamiseen on, että myöhempi malli yrittää oppia edellisen tekemä virhe, esimerkiksi
GBM
jaXGBoost
, jotka eliminoivat varianssin, mutta joilla on liian sopiva ongelma. - Pinoaminen : käytetään yleensä kilpailuissa, kun harjoitellaan useilla algoritmeilla samalla tietojoukolla ja keskiarvolla (max, min tai muut yhdistelmät) tulos saadaksesi paremman ennusteen.
Vastaa
molemmat pussit ja tehostaminen käyttää yhtä oppimisalgoritmia kaikissa vaiheissa; mutta he käyttävät erilaisia menetelmiä harjoittelunäytteiden käsittelyssä. molemmat ovat yhdistelmämenetelmä, joka yhdistää useiden mallien päätökset
Bagging :
1. kerää koulutustiedot uudelleen saadaksesi M osajoukot (käynnistyshihna);
2. kouluttaa M-luokittelijoita (sama algoritmi) M-tietojoukkojen perusteella (eri näytteet);
3. lopullinen luokittelija yhdistää M-lähtöä äänestämällä;
näytteet painavat tasaisesti;
luokittelijat painavat tasaisesti;
vähentää virhettä pienentämällä varianssia
Tehostus : tässä keskitytään adaboost-algoritmiin
1. aloitetaan kaikkien näytteiden ensimmäisellä kierroksella samalla painolla;
2. lisää seuraavilla M-1-kierroksilla näytteitä, jotka on luokiteltu väärin viimeisellä kierroksella, pienennä, vähennä viimeisellä kierroksella oikein luokiteltujen näytteiden painot
3. painotettua äänestystä käyttämällä lopullinen luokittelija yhdistää useita edellisten kierrosten luokittelijoita ja antaa suuremman painon luokittelijoille, joilla on vähemmän väärin luokituksia.
vaiheittaiset uudelleenpunnitusnäytteet; jokaisen kierroksen painot viimeisen kierroksen tulosten perusteella
uudelleenpunnitse näytteet (tehostaminen) uudelleen näytteenoton (pussitus) sijaan.
Vastaa
Laukkujen asettaminen
Bootstrap AGGregatING (pussitus) on kokonaisuusmuodostusmenetelmä, joka käyttää muunnelmia näytteistä , joita käytetään perusluokittelijoiden kouluttamiseen. Jokaiselle luotavalle luokittelijalle Bagging valitsee (toistamalla) N näytettä koosta N, jonka koko on N, ja kouluttaa perusluokittelijan. Tätä toistetaan, kunnes haluttu kokoonpanokoko on saavutettu.
Säkitystä tulisi käyttää epävakailla luokittelijoilla, ts. Luokittelijoilla, jotka ovat herkkiä koulutusjoukon vaihteluille, kuten päätöspuut ja Perceptrons.
Satunnainen alitila on mielenkiintoinen samanlainen lähestymistapa, joka käyttää ominaisuuksien muunnelmia näytteiden muunnosten sijaan, yleensä ilmoitettuna tietojoukoissa, joissa on useita ulottuvuuksia ja niukka ominaisuus.
Boosting
Boosting luo kokonaisuuden lisäämällä luokittelijat , jotka luokittelevat oikein ”vaikeat näytteet” . Jokaisella iteraatiolla tehostaminen päivittää näytteiden painot, jotta näytteillä, jotka ryhmittymä luokittelee väärin, voi olla suurempi paino ja siten suurempi todennäköisyys tulla valituksi uuden luokittelijan koulutukseen.
Tehostaminen on mielenkiintoinen lähestymistapa, mutta on erittäin meluherkkä ja on tehokas vain käyttämällä heikkoja luokittelijoita. Tehostustekniikoita on useita muunnelmia AdaBoost, BrownBoost (…), jokaisella on oma painon päivityssääntönsä tiettyjen ongelmien (melu, luokan epätasapaino …) välttämiseksi.
Pinoaminen
Pinoaminen on meta-oppimisen lähestymistapa , jossa ryhmää käytetään ”poimimaan ominaisuuksia” , joita toinen kerros yhtyeestä. Seuraava kuva ( Kaggle Ensemble -oppaasta ) näyttää, miten tämä toimii.
Ensinnäkin (alhaalta) useita eri luokittelijoita koulutetaan harjoittelusarjan kanssa, ja niiden tuotokset (todennäköisyydet) käytetään seuraavan kerroksen (keskikerroksen) kouluttamiseen, lopuksi toisen kerroksen luokittelijoiden tuotokset (todennäköisyydet) yhdistetään käyttämällä keskiarvoa (AVG).
On olemassa useita strategioita, joissa käytetään ristivalidointi, sekoitus ja muut lähestymistavat päällekkäisen pinonnan välttämiseksi. Joitakin yleisiä sääntöjä on kuitenkin välttää tällaista lähestymistapaa pienissä aineistoissa ja yrittää käyttää erilaisia luokittelijoita, jotta ne voivat ”täydentää” toisiaan.
Pinoamista on käytetty useissa koneoppimiskilpailuissa, kuten Kaggle ja Top Coder. Se on ehdottomasti välttämätön tieto koneoppimisessa.
Vastaus
Laukkujen lisääminen ja nostaminen käyttävät yleensä monia homogeenisia malleja.
Pinoaminen yhdistää heterogeenisten mallityyppien tulokset.
Koska mikään yksittäinen mallityyppi ei yleensä sovi mihinkään koko jakeluun, voit nähdä, miksi tämä voi lisätä ennakointitehoa.