Sammenligning av lineær og logistisk regresjon

Diskusjon om et datavitenskapelig intervjuspørsmål på inngangsnivå

Data Science-intervjuer varierer i dybde. Noen intervjuer går virkelig dypt og tester kandidatene på deres kunnskap om avanserte modeller eller vanskelige finjusteringer. Men mange intervjuer gjennomføres på inngangsnivå, og prøver å teste kandidatens grunnleggende kunnskap. I denne artikkelen vil vi se et spørsmål som kan diskuteres i et slikt intervju. Selv om spørsmålet er veldig enkelt, tar diskusjonen opp mange interessante aspekter ved det grunnleggende om maskinlæring.

Spørsmål: Hva er forskjellen mellom lineær regresjon og logistisk regresjon?

Det er faktisk mange likheter mellom de to, og starter med det faktum at navnene deres er veldig like. De bruker begge linjer som modellfunksjoner. Grafene deres ser også veldig like ut.

Bilde av forfatter

Men til tross for disse likhetene, er de veldig forskjellige i metode så vel som anvendelse. Vi vil fremheve disse forskjellene nå. Til sammenligning vil vi bruke følgende punkter som generelt vurderes når vi diskuterer maskinlæringsmodeller:

  • Hypotese eller modellfamilie
  • Input og output
  • Tapsfunksjon
  • Optimaliseringsteknikk
  • Søknad

Vi vil nå sammenligne lineær regresjon (LinReg) og logistisk regresjon (LogReg) på hvert av disse punktene. La oss starte med applikasjonen for å sette diskusjonen på rett spor.

Bilde av Rajashree Rajadhyax

Lineær regresjon brukes for å estimere en mengde basert på andre mengder. Tenk deg som et eksempel at du som student driver en lemonadestand i sommerferien. Du vil finne ut hvor mange glass limonade som selges i morgen, slik at du kan kjøpe nok sitroner og sukker. Fra din lange erfaring med salg av limonade har du funnet ut at salget har et sterkt forhold til makstemperaturen i døgnet. Så du vil bruke den anslåtte makstemperaturen til å forutsi salget av limonade. Dette er en klassisk LinReg-applikasjon, vanligvis kalt prediksjon i ML-litteratur.

LinReg brukes også for å finne ut hvordan en bestemt inngang påvirker utgangen. I eksemplet med limonadebod, anta at du har to innganger - maksimal temperatur og om dagen er en helligdag. Du vil finne ut hva som påvirker salget mest — maks temperatur eller ferie. LinReg vil være nyttig for å identifisere dette.

LogReg brukes hovedsakelig til klassifisering. Klassifisering er handlingen for å kategorisere input i en av de mange mulige kurvene. Klassifisering er så sentral for menneskelig intelligens at det ikke ville være galt å si "det meste av intelligensen er klassifisering". Et godt eksempel på klassifisering er klinisk diagnose. Tenk på den eldre, pålitelige fastlegen. En dame kommer inn og klager over uopphørlig hoste. Legen gjennomfører ulike undersøkelser for å avgjøre mellom mange mulige tilstander. Noen mulige tilstander er relativt ufarlige, som et anfall av halsinfeksjon. Men noen er alvorlige, for eksempel tuberkulose eller til og med lungekreft. Basert på ulike faktorer bestemmer legen hva hun lider av og starter passende behandling. Dette er klassifisering på jobb.

Vi må huske på at både estimering og klassifisering er gjetteoppgaver snarere enn beregninger. Det finnes ikke noe eksakt eller riktig svar i slike typer oppgaver. Gjetteoppgavene er det maskinlæringssystemer er gode på.

ML-systemer løser gjetteproblemer ved å oppdage mønstre. De oppdager et mønster fra de gitte dataene og bruker det deretter til å utføre oppgaven som estimering eller klassifisering. Et viktig mønster som finnes i naturfenomener er relasjonsmønsteret. I dette mønsteret er en mengde relatert til den andre mengden. Denne relasjonen kan tilnærmes med en matematisk funksjon i de fleste tilfellene.

Å identifisere en matematisk funksjon fra de gitte dataene kalles "læring" eller "trening". Det er to trinn for læring:

  1. "Typen" funksjon (for eksempel lineær, eksponentiell, polynom) velges av et menneske
  2. Læringsalgoritmen lærer parametrene (som helningen og skjæringspunktet til en linje) fra de gitte dataene.

Så når vi sier at ML-systemer lærer av data, er det bare delvis sant. Det første trinnet for å velge type funksjon er manuelt og er en del av modelldesignet. Typen funksjon kalles også 'hypotese' eller 'modellfamilie'.

I både LinReg og LogReg er modellfamilien den lineære funksjonen. Som du vet, har en linje to parametere - helning og avskjæring. Men dette gjelder bare hvis funksjonen tar bare én inngang. For de fleste problemer i den virkelige verden er det mer enn én inngang. Modellfunksjonen for disse tilfellene kalles en lineær funksjon, ikke en linje. En lineær funksjon har flere parametere å lære. Hvis det er n innganger til modellen, har den lineære funksjonen n+1 parametere. Som nevnt læres disse parameterne fra de gitte dataene. For formålet med denne artikkelen vil vi fortsette å anta at funksjonen er den enkle linjen med to parametere. Modellfunksjonen for LogReg er litt mer kompleks. Linjen er der, men den er kombinert med en annen funksjon. Vi vil se dette om et øyeblikk.

Som vi sa ovenfor, lærer både LinReg og LogReg parameterne til den lineære funksjonen fra de gitte dataene, kalt treningsdata. Hva inneholder treningsdataene?

Treningsdata utarbeides ved å registrere noen virkelige fenomener (RWP). For eksempel er forholdet mellom maksimal dagtemperatur og salg av limonade en RWP. Vi har ingen synlighet av den underliggende sammenhengen. Alt vi kan se er verdiene av temperaturen og salget hver dag. Mens vi registrerer observasjonene, angir vi noen mengder som innganger til RWP og andre som utgang. I limonadeeksemplet kaller vi maks temperatur som input og salg av limonade som output.

Bilde av forfatter

Treningsdataene våre inneholder par med innganger og utganger. I dette eksemplet vil dataene ha rader med daglig maksimal temperatur og glass med limonade solgt. Slik vil input og output til LinReg være.

Oppgaven som LogReg utfører er klassifisering, så utgangen bør være en klasse. La oss tenke oss at det er to klasser som heter 0 og 1. Utgangen til modellen bør da også være enten 0 eller 1.

Denne metoden for å spesifisere utdata er imidlertid ikke særlig hensiktsmessig. Se følgende diagram:

Bilde av forfatter

Punktene i gult tilhører klasse 1 og de lyseblå tilhører 0. Linjen er vår modellfunksjon som skiller de to klassene. I følge denne separatoren tilhører begge de gule punktene (a og b) klasse 1 . Medlemskapet til punkt b er imidlertid mye sikrere enn punkt a. Hvis modellen bare gir ut 0 og 1, er dette faktum tapt.

For å rette opp denne situasjonen produserer LogReg-modellen sannsynligheten for at hvert punkt tilhører en bestemt klasse. I eksemplet ovenfor er sannsynligheten for at punkt 'a' tilhører klasse 1 lav, mens den for punkt 'b' er høy. Siden sannsynlighet er et tall mellom 0 og 1, er det også utdata fra LogReg.

Se nå følgende diagram:

Bilde av forfatter

Dette diagrammet er det samme som det tidligere, med punkt c lagt til. Dette punktet tilhører også klasse 1 og er faktisk sikrere enn punkt b. Det ville imidlertid være feil å øke sannsynligheten for et punkt i forhold til avstanden fra linjen. Intuitivt, når du går et visst stykke unna linjen, er vi mer eller mindre sikre på medlemskapet til disse punktene. Vi trenger ikke øke sannsynligheten ytterligere. Dette er i tråd med arten av sannsynligheter, hvis maksimalverdi kan være 1.

For at LogReg-modellen skal kunne produsere slik utgang, må linjefunksjonen kobles til en annen funksjon. Denne andre funksjonen kalles sigmoid og den har ligningen:

Dermed ser LogReg-modellen slik ut:

Bilde av forfatter

Sigmoidfunksjonen kalles også "logistisk" og er årsaken til navnet "Logistisk regresjon".

Hvis det er mer enn to klasser, er utdata fra LogReg en vektor. Elementene i utgangsvektoren er sannsynligheter for at inngangen er av den spesielle klassen. For eksempel, hvis det første elementet i den kliniske diagnosemodellen har verdien 0.8, betyr det at modellen tror det er 80 % sannsynlighet for at pasienten lider av forkjølelse.

Vi så at både LinReg og LogReg lærer parametrene til den lineære funksjonen fra treningsdataene. Hvordan lærer de disse parameterne?

De bruker en metode som kalles "optimalisering". Optimalisering fungerer ved å generere mange mulige løsninger for det gitte problemet. I vårt tilfelle er de mulige løsningene settene med (helling, avskjæring) verdier. Vi evaluerer hver av disse løsningene ved å bruke et ytelsesmål. Den løsningen som viser seg å være best på dette tiltaket er til slutt valgt.

I læringen av ML-modeller kalles ytelsesmålet noen ganger «tap» og funksjonen som hjelper oss å beregne det kalles «tapsfunksjon». Vi kan representere dette som:

Tap = Tap_Function (Parameters_being_evalued)

Begrepene ‘tap’ og ‘tapsfunksjon’ har en negativ konnotasjon, som betyr at en lavere verdi på tap indikerer en bedre løsning. Læring er med andre ord en optimalisering som tar sikte på å finne parametere som produserer minimumstap.

Vi vil nå se de vanlige tapsfunksjonene som brukes for å optimalisere LinReg og LogReg. Merk at mange forskjellige tapsfunksjoner brukes i praksis, så vi kan diskutere de som er mest vanlige.

For optimalisering av LinReg-parametere kalles den vanligste tapsfunksjonen Sum of Squares Error (SSE). Denne funksjonen tar følgende innganger:

1) Alle treningsdatapunktene. For hvert punkt spesifiserer vi:

a) inngangene, for eksempel maksimal datatemperatur,

b) utgangene, som antall solgte limonadeglass

2) Den lineære ligningen med parametere

Funksjonen beregner deretter tap ved å bruke følgende formel:

SSE-tap = Sum_for_alle_poeng(
Square_of(
output_of_linear_equation_for_the_inputs - faktisk_output_from_the_data point
))

Optimaliseringstiltaket for LogReg er definert på en helt annen måte. I SSE-funksjonen stiller vi følgende spørsmål:

Hvis vi bruker denne linjen for å tilpasse treningsdataene, hvor mye feil vil den gjøre?

Ved utformingen av tiltaket for LogReg-optimalisering spør vi:

Hvis denne linjen er skillelinjen, hvor sannsynlig er det at vi får fordelingen av klasser som sees i treningsdataene?

Resultatet av dette tiltaket er derfor en sannsynlighet. Den matematiske formen til målfunksjonen bruker logaritmer, og gir den dermed navnet Log Likelihood (LL). Mens vi diskuterte utdataene, så vi at LogReg-funksjonen involverer eksponentielle termer (begrepene med e 'hevet til' z) Logaritmene hjelper til med å håndtere disse eksponentialene effektivt.

Det bør være intuitivt klart for deg at optimalisering bør maksimere LL. Tenk slik: vi ønsker å finne linjen som gjør treningsdataene mest sannsynlige. I praksis foretrekker vi imidlertid et tiltak som kan minimeres, så vi tar bare det negative ved LL. Vi får dermed Negative Log Likelihood (NLL) tapsfunksjonen, selv om det ifølge meg ikke er særlig riktig å kalle det en tapsfunksjon.

Så vi har de to tapsfunksjonene: SSE for LinReg og NLL for LogReg. Merk at disse tapsfunksjonene har mange navn, og du bør gjøre deg kjent med begrepene.

Selv om lineær regresjon og logistisk regresjon ser ut og høres veldig like ut, er de i virkeligheten ganske forskjellige. LinReg brukes for estimering/prediksjon og LogReg er for klassifisering. Det er riktig at de begge bruker den lineære funksjonen som grunnlag, men LogReg legger videre til den logistiske funksjonen. De er forskjellige i måten de bruker treningsdataene sine på og produserer modellutgangene sine. De to bruker også en helt annen tapsfunksjon.

Ytterligere detaljer kan undersøkes. Hvorfor SSE? Hvordan beregnes sannsynligheten? Vi gikk ikke inn på optimaliseringsmetoden her for å unngå mer matematikk. Du må imidlertid huske på at optimalisering av LogReg vanligvis krever den iterative gradientnedstigningsmetoden, mens LinReg vanligvis kan gjøre med en rask lukket formløsning. Vi kan diskutere disse og flere punkter i en annen artikkel.

Sammenligning av lineær og logistisk regresjon publisert på nytt fra kilde https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Tidstempel:

Mer fra Blockchain-konsulenter