AI 101
Generativa vs. Diskriminativa MaskinlÀrningsmodeller

Vissa maskinlärningsmodeller tillhör antingen “generativa” eller “diskriminativa” modellkategorier. Men vad är skillnaden mellan dessa två kategorier av modeller? Vad betyder det att en modell är diskriminativ eller generativ?
Det korta svaret är att generativa modeller är de som innehåller fördelningen av datamängden och returnerar en sannolikhet för ett givet exempel. Generativa modeller används ofta för att förutsäga vad som händer nästa i en sekvens. Samtidigt används diskriminativa modeller för antingen klassificering eller regression och returnerar en förutsägelse baserad på villkorlig sannolikhet. Låt oss undersöka skillnaderna mellan generativa och diskriminativa modeller i mer detalj, så att vi kan förstå vad som skiljer de två typerna av modeller och när varje typ ska användas.
Generativa vs. Diskriminativa Modeller
Det finns flera sätt att kategorisera en maskinlärningsmodell. En modell kan klassificeras som tillhörande olika kategorier som: generativa modeller, diskriminativa modeller, parametriska modeller, icke-parametriska modeller, träd-baserade modeller, icke-träd-baserade modeller.
Den här artikeln kommer att fokusera på skillnaderna mellan generativa modeller och diskriminativa modeller. Vi kommer att börja med att definiera både generativa och diskriminativa modeller, och sedan kommer vi att undersöka några exempel på varje typ av modell.
Generativa Modeller
Generativa modeller är de som fokuserar på fördelningen av klasserna inom datamängden. Maskinlärningsalgoritmerna modellerar vanligtvis fördelningen av datapunkterna. Generativa modeller förlitar sig på att hitta den gemensamma sannolikheten. De skapar punkter där en given indatafunktion och en önskad utdata/etikett existerar samtidigt.
Generativa modeller används vanligtvis för att uppskatta sannolikhet och sannolikhet, modellera datapunkter och diskriminera mellan klasser baserat på dessa sannolikhet. Eftersom modellen lär sig en sannolikhetsfördelning för datamängden, kan den hänvisa till denna sannolikhetsfördelning för att generera nya dataexempel. Generativa modeller förlitar sig ofta på Bayes sats för att hitta den gemensamma sannolikheten, hitta p(x,y). I princip modellerar generativa modeller hur datat genererades, besvarar följande fråga:
“Vilken är sannolikheten att denna klass eller en annan klass genererade detta datapunkt/exempel?”
Exempel på generativa maskinlärningsmodeller inkluderar Linjär Diskriminantanalys (LDA), Dolda Markovmodeller och Bayesianska nätverk som Naiv Bayes.
Discriminativa Modeller
Medan generativa modeller lär sig om fördelningen av datamängden, lär diskriminativa modeller om gränsen mellan klasser inom en datamängd. Med diskriminativa modeller är målet att identifiera beslutsgränsen mellan klasser för att tillämpa tillförlitliga klassetiketter på dataexempel. Diskriminativa modeller separerar klasserna i datamängden genom att använda villkorlig sannolikhet, utan att göra några antaganden om enskilda datapunkter.
Discriminativa modeller syftar till att besvara följande fråga:
“På vilken sida av beslutsgränsen finns detta exempel?”
Exempel på diskriminativa modeller i maskinlärning inkluderar stödvektor-maskiner, logistisk regression, besluts-träd och slumpmässiga skogar.
Skillnader Mellan Generativa och Diskriminativa
Här är en snabb översikt av de stora skillnaderna mellan generativa och diskriminativa modeller.
Generativa modeller:
- Generativa modeller syftar till att fånga den faktiska fördelningen av klasserna i datamängden.
- Generativa modeller förutsäger den gemensamma sannolikhetsfördelningen – p(x,y) – med hjälp av Bayes sats.
- Generativa modeller är beräkningsmässigt dyra jämfört med diskriminativa modeller.
- Generativa modeller är användbara för oövervakade maskinlärningsuppgifter.
- Generativa modeller påverkas av närvaron av utliggare mer än diskriminativa modeller.
Discriminativa modeller:
- Discriminativa modeller modellerar beslutsgränsen för datamängdens klasser.
- Discriminativa modeller lär sig den villkorliga sannolikheten – p(y|x).
- Discriminativa modeller är beräkningsmässigt billiga jämfört med generativa modeller.
- Discriminativa modeller är användbara för övervakade maskinlärningsuppgifter.
- Discriminativa modeller har fördelen av att vara mer robusta mot utliggare, till skillnad från generativa modeller.
- Discriminativa modeller är mer robusta mot utliggare jämfört med generativa modeller.
Vi kommer nu att kort undersöka några olika exempel på generativa och diskriminativa maskinlärningsmodeller.
Exempel på Generativa Modeller
Linjär Diskriminantanalys (LDA)
LDA-modeller fungerar genom att uppskatta variansen och medelvärdet av datat för varje klass i datamängden. Efter att medelvärdet och variansen för varje klass har beräknats, kan förutsägelser göras genom att uppskatta sannolikheten att en given uppsättning indata tillhör en given klass.
Dolda Markovmodeller
Markovkedjor kan betraktas som grafer med sannolikhet som indikerar hur sannolikt det är att vi kommer att flytta från en punkt i kedjan, en “tillstånd”, till ett annat tillstånd. Markovkedjor används för att bestämma sannolikheten för att flytta från tillstånd j till tillstånd i, som kan betecknas som p(i,j). Detta är bara den gemensamma sannolikhet som nämns ovan. En Dold Markovmodell är där en osynlig, icke-observerbar Markovkedja används. Dataindata ges till modellen och sannolikheterna för det aktuella tillståndet och tillståndet som föregår det används för att beräkna det mest sannolika resultatet.
Bayesianska Nätverk
Bayesianska nätverk är en typ av sannolikhetsgrafisk modell. De representerar villkorliga beroenden mellan variabler, som representeras av en riktad acyklisk graf. I ett Bayesianskt nätverk representerar varje kant i grafen ett villkorligt beroende, och varje nod motsvarar en unik variabel. Den villkorliga oberoendet för de unika relationerna i grafen kan användas för att bestämma den gemensamma fördelningen av variablerna och beräkna den gemensamma sannolikheten. Med andra ord fångar ett Bayesianskt nätverk en delmängd av de oberoende relationerna i en specifik gemensam sannolikhetsfördelning.
När ett Bayesianskt nätverk har skapats och korrekt definierats, med slumpmässiga variabler, villkorliga relationer och sannolikhetsfördelningar kända, kan det användas för att uppskatta sannolikheten för händelser eller resultat.
En av de vanligaste typerna av Bayesianska nätverk är en Naiv Bayes-modell. En Naiv Bayes-modell hanterar utmaningen att beräkna sannolikhet för datamängder med många parametrar/variabler genom att behandla alla funktioner som oberoende av varandra.
Exempel på Diskriminativa Modeller
Stödvektor-maskiner
Stödvektor-maskiner fungerar genom att rita en beslutsgräns mellan datapunkter, hitta beslutsgränsen som bäst separerar de olika klasserna i datamängden. Stödvektor-algoritmen ritar antingen linjer eller hyperplan som separerar punkter, för 2-dimensionella utrymmen och 3D-utrymmen respektive. Stödvektor-maskiner försöker hitta linjen/hyperplanet som bäst separerar klasserna genom att maximera marginalen, eller avståndet mellan linjen/hyperplanet och de närmaste punkterna. Stödvektor-modeller kan också användas på datamängder som inte är linjärt separerbara genom att använda “kernel-tricken” för att identifiera icke-linjära beslutsgränser.
Logistisk Regression
Logistisk regression är en algoritm som använder en logit (log-odds) funktion för att bestämma sannolikheten för en indata som tillhör en av två tillstånd. En sigmoidfunktion används för att “krama” sannolikheten mot antingen 0 eller 1, sant eller falskt. Sannolikhet som är större än 0,50 antas vara klass 1, medan sannolikhet som är 0,49 eller lägre antas vara 0. Av denna anledning används logistisk regression vanligtvis i binära klassificeringsproblem. Men logistisk regression kan också tillämpas på multi-klassproblem genom att använda en “en mot alla”-ansats, skapa en binär klassificeringsmodell för varje klass och bestämma sannolikheten att ett exempel är en målklas eller en annan klass i datamängden.
Besluts-träd
En besluts-träd modell fungerar genom att dela en datamängd ner i mindre och mindre delar, och när delarna inte kan delas längre är resultatet ett träd med noder och blad. Noder i ett besluts-träd är där beslut om datapunkter fattas med hjälp av olika filterkriterier. Bladen i ett besluts-träd är datapunkterna som har klassificerats. Besluts-träd-algoritmer kan hantera både numeriska och kategoriska data, och delningar i trädet baseras på specifika variabler/funktioner.
Slumpmässiga Skogar
En slumpmässig skog modell är i princip bara en samling av besluts-träd där förutsägelserna från de enskilda träden genomsnittas för att komma till ett slutgiltigt beslut. Den slumpmässiga skog-algoritmen väljer observationer och funktioner slumpmässigt, bygger de enskilda träden baserat på dessa val.
Denna tutorial-artikel kommer att undersöka hur man skapar en Box Plot i Matplotlib. Box plot används för att visualisera sammanfattningsstatistik för en datamängd, visa attribut för fördelningen som datapunkternas omfång och fördelning.












