Site Overlay

En Forsiktig Introduksjon til Tilfeldige Skoger, Ensembler, og resultatberegninger i et Kommersielt System

Dette er den første i en serie innlegg som illustrerer hva våre data team er opp til, eksperimentere med, og bygningen som er «under panseret» på CitizenNet.

Dr. Arshavir Blackwall er CitizenNet er bosatt Data Vitenskapsmann. Han har vært involvert i web-skala maskinlæring og henting av informasjon for over 10 år.

Hot tips: Klikk på bildene for å se større bilder.,

En av de første innlegg vi publiserte talte på et høyt nivå av teknisk problem CitizenNet prøver å løse. I hovedsak prøver vi å forutsi hvilke kombinasjoner av demografiske og interesse mål vil være interessert i noen del av innholdet.

På CitizenNet plattform, en bruker ville skape et prosjekt som skulle definere (grovt) målgruppen, biter av Facebook-innhold de ønsker å fremme, og andre kampanjen og finansiell informasjon.

Bak kulissene, en robust prediksjon system bygger på målene for prosjektet., Denne spådommen system er trent på tidligere atferd, som det bruker da å forutsi hvordan en fremtidig (ukjent) prosjektet kan bli beste målrettet. En av komponentene i prediksjon system er en classifier, som er en dag å bli et ensemble av både Nevrale Nettverk og Random Forest classifiers. Denne bloggen har som mål å illustrere det grunnleggende av disse metodene.

Nevrale Nettverk

Nevrale nettverk har lenge vært brukt i slike problemer som dette, med en masse data, mange variabler, og muligheten for støy i data.

Hver inngang point er en høy-dimensjonal vektor., Nevrale nettverk er organisert i en rekke lag (se figur), hvor inn-vektor går på venstre side av nettverket, som deretter projisert til en «skjult lag.»Hver enhet i det skjulte laget er en vektet sum av verdiene i den første lag. Dette laget deretter prosjekter til en output lag, som er der de ønsket svar vises.

nettverket er trent med innspill og ønsket utgang, som i vårt tilfelle er om punkt representerer en lav click-through-rate (CTR) eller høy CTR søkeord., Deretter trening oppstår: vekter på både skjult og utgang lag er justert slik at den faktiske utgang svarer til ønsket resultat. Når trent, nevrale nettverk bør ta en ny datapunkt og produksjon enten en null (lav CTR) eller en (høy CTR). Hvis classifier er usikker, vil den produsere en verdi på et sted i mellom.

Styrker og svakheter. Nevrale nettverk har ganske mange fordeler., Hvis vi har mye av input og output data for å lære, men ingen anelse om hva funksjonen kartlegging av de to sammen er at nettverket kan lære denne funksjonen uten at vi har eksplisitt gi det. Nevrale nettverk er også bra med datasett som er støyende, eller der noen innganger manglende variabler., Imidlertid, nevrale nett har også en viktig ulempe med mange andre tilnærminger: svaret som kommer fra en nevrale nettverk er vekter kan være vanskelig å forstå (det kan fungere, men vi vet ikke hvordan), og nettverket er trening kan ta lengre tid enn visse andre metoder for maskinlæring, som for eksempel tilfeldig skog, som vi nå slå til.

Tilfeldig Skog, et Ensemble som Metode

random forest (Breiman, 2001) er et ensemble tilnærming som også kan være tenkt som en form for nærmeste nabo prediktor.

Ensembler er et skille-og-hersk metoden brukt for å forbedre ytelsen., Hovedprinsippet bak ensemble metoder er at en gruppe av «svake elever» kan komme sammen for å danne en «sterk elev». Figuren nedenfor (hentet fra her) gir et eksempel. Hver classifier, individuelt, er en «svak elev,» mens alle classifiers tatt sammen er en «sterk elev».

data som skal modelleres er den blå sirkler. Vi antar at de representerer noen underliggende funksjon pluss støy. Hver enkelt elev er vist som grå kurve. Hver grå kurve (en svak elev) er en god tilnærming til den underliggende data., Den røde kurven (ensemblet «sterke eleven») kan sies å være en mye bedre tilnærming til den underliggende data.

Trær og Skog. Random forest starter med en standard maskin læring teknikk som kalles en «decision tree» som, i ensemble vilkårene, tilsvarer våre svake eleven. I en avgjørelse treet, en inngang er angitt på toppen og som det traverses ned treet data blir bucketed i mindre og mindre sett. For mer informasjon se her, som figuren nedenfor er tatt.

I dette eksempelet, treet råder oss, basert på vær forhold, om å spille ball., For eksempel, hvis outlook er det sol og fuktighet er mindre enn eller lik 70, så det er nok OK for å spille.

random forest (se figur nedenfor) tar denne ideen til neste nivå ved å kombinere trær med oppfatningen av et ensemble. Derfor, i ensemble vilkår, trærne er svake elever og random forest er en sterk elev.

Her er hvordan et slikt system er utdannet; for noen antall trær T:

  1. Eksempel N tilfeller tilfeldig med erstatning for å skape et delsett av data (se øverste laget av figuren ovenfor). Den samlinga bør være ca 66% av de totalt sett.,
  2. Ved hver node:
    1. For noen tall m (se nedenfor), m prediktor variablene er valgt tilfeldig fra alle de prediktor variabler.
    2. prediktor variabel som gir den beste split, i henhold til noen objektiv funksjonen, brukes til å gjøre en binær delt på at noden.
    3. Ved neste node, velger en annen m variabler tilfeldig fra alle prediktor variabler og gjøre det samme.,

Avhengig av verdien av m, det er tre litt ulike systemer:

  • Tilfeldig splitter utvalg: m =1
  • Breiman er bagger: m = totalt antall prediktor variabler
  • Random forest: m << antall prediktor variabler. Brieman antyder tre mulige verdier for m: ½√m, √m, og 2√m

å Kjøre en Vilkårlig Skogen. Når en ny input er lagt inn i systemet, det er å kjøre ned alle trærne., Resultatet kan enten være et gjennomsnitt eller et vektet gjennomsnitt av alle terminal noder som er nådd, eller, i tilfelle av kategoriske variabler, en stemme flertall.

Merk:

  • Med et stort antall prediktorer, kvalifiserte prediktor sett vil være ganske forskjellig fra en node til node.
  • større inter-treet korrelasjon, jo større random forest feil pris, så man press på modellen er å ha trær som ukorrelerte som mulig.
  • Som m går ned, både inter-treet korrelasjon og styrken av enkelte trær gå ned., Så noen optimal verdi av m må bli oppdaget.

Styrker og svakheter. Random forest runtimes er ganske rask, og de er i stand til å håndtere ubalansert og mangler data. Random Forest svakheter er at når den brukes for regresjon de ikke kan forutsi utenfor det området som er i trening data, og at de kan over-fit datasett som er spesielt støyende. Selvfølgelig, den beste testen av noen algoritme er hvor godt det fungerer på dine egne data.,

Teste våre Classifiers

for Å forstå hvordan vi teste classifier, må vi forklare flere begreper:

  • cross-validation
  • terskler
  • mener presisjon
  • presisjon over sjansen

Cross-validation

Vår classifier test bør være økologisk gyldig. Det skulle vise seg vår classifier under forhold som ligger så nært som mulig til produksjonsmiljøet.,

I produksjon classifier er trent på mange prosjekter der vi vet at Ctr, men egentlig vi ønsker å vite hvordan classifier spår Ctr for et nytt prosjekt, og det har aldri sett før.

Vi tester våre classifier ved hjelp av en teknikk som kalles «cross-validation»: trene classifier på alle prosjektene med unntak av én. Selvfølgelig, vi også vite riktig Ctr for dette holdt ut prosjektet, slik at vi kan se hvor godt classifier ikke på det, uten juks ved å trene classifier på hold ut. Vi gjør dette i sin tur med hvert enkelt prosjekt. Se figur nedenfor.,

La oss si at vi har prosjekter fra A til F. Vi trener en classifier på prosjekter fra A til E, og test på F. Så vi trener på A og C til F, og test på B. Vi gjør dette i sin tur, holde ut hvert prosjekt, før vi trener på A til E og test på F. Hvert prosjekt er et tema i vår eksperiment, med motiver fra A til F (se figur nedenfor).

til Slutt, vi samle resultatene fra hver cross-validation kjøre for statistisk analyse. Den eksperimentelle spørsmålet vi ønsker å besvare: har classifier gi oss alle mer informasjon om CTR enn bare gjette?,

Terskler

classifier spår om innspill vektor ville resultere i en lav eller høy CTR. Den classifier utgang er et tall fra null til en, gi eller ta. En null spår lav CTR, en spår høy CTR. Men hva gjør vi hvis classifier utganger en verdi i mellom, sier 0,4 eller 0,6 til? Vi må velge en terskel. Over denne verdien vi behandle classifier utgang som spår høy CTR. Under denne verdien vi behandle classifier utgang som spår lav CTR.

classifier er ikke perfekt, så noen ganger vil det gjøre feil., Noen ganger classifier vil feil forutsi at en høy CTR elementet er lav (en «glipp»), og noen ganger classifier vil feil forutsi at en lav CTR elementet er høy (en «falsk alarm»).

følgende tall viser en frekvens fordeling for classifier utgang for både lav og høy CTR elementer. Høy CTR elementer, i grønn, tendens til å resultere i en classifier utgang mot 1. Lav CTR elementer, i rødt, har en tendens til å resultere i classifier utgang mot 0. Merk at i alle tre tallene at avstanden mellom de to kurvene forblir uendret. Alle som endres er terskelen.,

Anta vi har en sum av 1000 datapunkter, jevnt fordelt mellom lav og høy CTR. I figuren over, våre terskelen er ganske høy (si, 0.85). Dette resulterer i en relativt lav falsk alarm pris (bare 50 elementer i sum er falske alarmer), og en ganske høy glipp pris (100 elementer som er i sannhet høy CTR er savnet).

I figuren nedenfor, på den lavest terskel (si, 0.40), vår falsk alarm pris går opp til 100, og våre glipp pris går ned til 75. Slik som vi lavere vår terskel, vår falsk alarm pris går opp fra 50 til 75 til 100, mens våre glipp pris går ned fra 100 til 90 til 75.,

Vi trekke grensen basert på hvilken type feil vi ønsker å unngå mer, savner eller falske alarmer. En høyere terskel betyr mer bommer og færre falske alarmer. En lavere terskel betyr det motsatte. Endre terskelen, endres ikke de underliggende nøyaktigheten av classifier, det bare flytter feil rundt.

Mener Presisjon

effektiviteten av classifier er avstanden mellom to midler, som ikke varierer så terskelen endringer. En måte å måle effektiviteten av classifier er «presisjon»., Presisjon er antall virkelig rette elementer («treff») dividert med antall elementer som classifier sier er riktig (treff + falske alarmer).

I vårt eksempel ovenfor, har vi 1000 datapunkter, hvorav 500 er høy CTR. Våre classifier riktig fanger 400 høy Ctr. Den classifier indikerer en ytterligere 50 poeng er høy Ctr, når de faktisk er lav Klikkfrekvens. Dette betyr at vi har 50 falske alarmer. Disse resultatene i en presisjon på 400/450 = 88.88% elementer som classifier sier er riktig (treff + falske alarmer).,

«Betyr presisjon» tar hensyn til problemene med å velge en terskel, som er nevnt ovenfor, ved å utføre denne beregningen på en rekke terskler og tar gjennomsnittet.

Forbedring Over Sjansen

Dessverre, i virkeligheten er det ikke så enkelt som dette: prosjekter som varierer sterkt i antall i høy CTR søkeord. Noen prosjekter virkelig inneholder bare 15% høy CTR, mens andre er så høy som 80% eller 90%. Finanssektoren, som et eksempel, vil alltid ha en lavere gjennomsnittlig KLIKKFREKVENS enn en populære Facebook spillet. Vi trenger mer enn gjennomsnittlig presisjon for å måle classifier ytelse.,

Tenk deg vår classifier har en gjennomsnittlig presisjon på 95%. Selv om dette høres bra ut, hvis prosjektet er 95% høy CTR, er det mindre imponerende. I dette tilfellet, hvis vi alltid gjettet at det var noe høy CTR, ville vi gjøre så vel som classifier! Dermed må vi rapportere mener presisjon etter å trekke ut den virkelige prosent av høy CTR elementer for det prosjektet. Vi kaller dette «betyr presisjon ovenfor sjanse». I våre rapporter, vil en gjennomsnittlig nøyaktighet på 10% betyr at classifier har en 10-poeng høyere presisjon enn å gjette alene.,

Resultater

I vår test sett, prosjekter som hadde en ekte høy CTR verdien 1 (alle høy CTR), eller mindre enn 0.05 (mindre enn 5% høy CTR), ble fjernet, noe som resulterer i 72 prosjekter for videre analyse. Husk at hvert prosjekt kan inneholde dusinvis av målretting kombinasjoner, og hver målretting kombinasjon kan inneholde hundrevis av søkeord.

For det nevrale nettverket, det betyr forbedring for classifier var 0.15 (se tabell nedenfor). En paret t-test på resultatene viste t(71) = 7.72, p < 0.0001 (en p-verdi på mindre enn 0.,05 er tradisjonelt ansett å være statistisk signifikant, noe som betyr at sjansen for at denne effekten blir på grunn av sjanse er 1 i 20 eller mindre). Dette betyr at det nevrale nettverket classifier viste en statistisk signifikant forbedring i å oppdage høy CTR elementer i forhold til tilfeldighetene.

For tilfeldige skog, mener forbedring for classifier var 0.06 (se tabell nedenfor). En paret t-test på resultatene viste t(71) = 3.17, p < 0.003., Dette betyr at random forest classifier viste en statistisk signifikant forbedring i å oppdage høy CTR elementer i forhold til tilfeldighetene.

å sammenligne gjennomsnittlig forbedring mellom de to classifiers, forskjellen var 0.09, i favør av nevrale nettverk. En paret t-test på resultatene viste t(71) = 3.63, p < 0.0006. Dette betyr at det nevrale nettverket classifier viste en statistisk signifikant forbedring i å oppdage høy CTR elementer i forhold til random forest classifier.

Begge classifiers arbeid., Nevrale nettverk er vesentlig bedre enn den tilfeldige skogen av og 0,09.

Betyr høy CTR Mener presisjon av classifier Betyr forbedring
nevrale nettverk 0.44 0.59 0.15
random forest 0.44 0.50 0.,06

Frekvens Histogrammer

Denne figuren viser en frekvens histogram av gjennomsnittlig presisjon forbedring i forhold til sjansen for 72 prosjekter for nevrale nettverk:

Denne figuren viser en frekvens histogram av gjennomsnittlig presisjon forbedring i forhold til sjansen for 72 prosjekter for tilfeldige skogen:

Nevrale Nettverk vs Random Forest

grafen nedenfor sammenligner resultatene av fire nevrale nettverk med tre tilfeldige skoger., Det viser oss at det er en god del av variasjonen i presisjon mellom prosjektene, og at hver metode har en tendens til å spore den andre, med en korrelasjon på 0.8677.

Verken metoden kan sies å være bedre enn andre i alle tilfeller. Det gjenstår å se om det er noen systematicity til hvorfor og hvor en metode er bedre enn en annen.

Som de neste to figurene viser, både nevrale nettverk og tilfeldig skog viser lite variasjon over våre data i de fleste, men ikke alle tilfeller: det er, for de fleste prosjekter, kjøre den classifier flere ganger resulterer vanligvis i omtrent samme presisjon., I de to neste tallene, ulike prosjekter, i rekkefølge av økende presisjon i hvert enkelt tilfelle, er på x-aksen og presisjon er på y-aksen.

I den neste grafen, har vi trukket presisjon av nevrale nettverk går fra presisjon av tilfeldige skogen går, for det samme prosjektet, av en total av 123 prosjekter. I denne neste figur, ulike prosjekter, i rekkefølge av økende presisjon, er på x-aksen og presisjon er på y-aksen.

Hva dette bildet forteller oss, er at i et så komplisert område, vil det være områder som vil være vanskelig å modellere med bare en læringsmetode., Vi intuitivt vet at Nevrale Nettverk og Tilfeldig Skog er tilstrekkelig ulike algoritmer, men dette er bevis på at prosjekter på venstre side av S-kurve stå mer for å få med Random Forest metode. Slik ensemble tilnærminger er noen ganger den eneste måten å oppnå vanskelig å komme gevinster (vinnerne av Netflix Premien hadde et stort eksempel på en — de til og med navnet sitt lag etter det!)

Disse resultatene er bare foreløpig, skjønt, så følg med for å se hva som videre tilpasning gir! Kontakt oss i dag for å lære mer.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *