Linjär klassificerare

Från Rilpedia

(Omdirigerad från Lineär klassificerare)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Linjär klassificerare är en enkel form av klassificerare.

Innehåll

Enkel linjär klassificerare

Den enkla linjära klassificeraren har följande form:

f(x) = \mathbf{sign} \sum \alpha_i \left\langle x_i, x \right\rangle + b, där x är en attributvektor (ett exempel) som ska klassificeras, \left\{ \alpha_i \right\} en mängd av konstanter, \left\{ x_i \right\} en mängd av andra attributvektorer (som typiskt kommer från en mängd av träningsexempel), samt \left\langle \cdot , \cdot \right\rangle den vanliga skalärprodukten. \mathbf{sign} är en stegfunktion som är 1 för positiva tal och -1 för negativa tal, så klassificeraren kan alltså skilja mellan två klasser.

Begränsning

Den enkla linjära klassificeraren kan inte beskriva funktioner som inte är linjärt separabla, till exempel en XOR-funktion.

Exempel på metoder att skapa linjära klassificerare

Generaliserad linjär klassificerare

Man kan ersätta skalärprodukten i formeln ovan med en mer generell funktion, en kärna. Vi får då en generaliserad linjär klassificerare som har följande form:

f(x) = \mathbf{sign} \sum \alpha_i K(x_i, x) + b

Motivering för den generaliserade linjära klassificeraren

Som nämndes ovan så kan den enkla linjära klassificeraren inte representera vissa funktioner, till exempel en vanlig XOR-funktion av två logiska variabler A och B. Detta kan kringgås genom att vi inför en hjälpvariabel C = AB.

För att generellt lösa den typen av problem kan vi göra en olinjär avbildning av vektorerna i attributrummet till ett rum av högre dimension. I exemplet ovan har vi alltså avbildat en tvådimensionell vektor x = (A,B) på en tredimensionell φ(x) = (A,B,AB), och i det tredimensionella rummet kan vi använda en vanlig linjär klassificerare för att beskriva funktionen.

Eftersom attributvektorerna i formeln för den linjära klassificeraren enbart förekommer i skalärprodukter så behöver vi inte explicit beskriva avbildningen från attributrummet till rummet av högre dimension, utan det räcker med att vi anger hur skalärprodukten av de avbildade vektorerna ser ut, dvs vi anger K(x,y) = \left\langle \phi (x),  \phi (y) \right\rangle, en så kallad kärna. Detta brukar kallas kärntricket (kernel trick), och är praktiskt eftersom det ofta är betydligt enklare att beräkna värdet för kärnan än att explicit utföra avbildningen.

Exempel på olinjära kärnor

  • Polynomiell (oftast kvadratisk eller kubisk, dvs d är 2 eller 3): K(x,y) = \gamma \left\langle x, y \right\rangle^d eller K(x,y) = (\gamma \left\langle x, y \right\rangle + 1)^d
  • Gaussisk: K(x,y) = e^{-\gamma \left\| x - y \right\|^2}

Exempel på metoder att skapa generaliserade linjära klassificerare

Icke-binär klassificering

Den linjära klassificeraren (inklusive den generaliserade) kan bara skilja mellan två klasser. För att kringgå detta problem använder man två metoder:

  • En-mot-alla
  • Alla-mot-alla

Antag till exempel att vi har fyra klasser A, B, C och D. Vid en-mot-alla-klassificering skapar man en klassificerare per klass, dvs fyra stycken. Klassificeraren för A kan då skilja mellan A och icke-A. För att klassificera kör man alla fyra klassificerarna och väljer den klass som ger störst positivt utslag.

Vid alla-mot-alla-klassificering skapar man i stället klassificerare för alla par av klasser, till exempel A-mot-B, A-mot-C, osv. Metoden påminner om seriespel i till exempel fotboll. För denna metod får vi alltså sex stycken klassificerare för detta exempel. För att utföra klassificeringen kör man alla klassificerarna och räknar vilken klass som får flest antal vinster (och eventuellt också "målskillnad" om det skulle bli samma antal vinster).

Personliga verktyg
På andra språk