Klassificeringsmodeller præstationsevaluering-CAP Curve

lad os starte med at definere, hvad der menes med klassificering, klassificering er processen med at forsøge at tildele noget til en af de tilgængelige grupper. Du kan have 2 grupper (binær klassificering) eller mere end 2 grupper (klassificering i flere klasser).

Klassificeringsalgoritmer inkluderer: (logistisk Regression, K-nærmeste nabo, Supportvektormaskine og Naive Bayes…osv.)

for en dataforsker er det virkelig vigtigt at sikre dig, hvor god din klassificeringsmodel er. Der er nogle berømte mulige måder at evaluere din model på. De kan være opført som følgende:

  1. forvirring Matrice — det kan beregnes nemt ved hjælp af Scikit-Learn Bibliotek implementering. Du skal bare fodre den med en vektor, der indeholder forudsigelserne for din afhængige variabel y ^ og en vektor af de faktiske værdier for din afhængige variabel y
/div >

scikit-Lær forvirringsmatricemodul

nu efter at du har beregnet din forvirringsmatrice, som vil være en 2*2-matrice for ethvert binært klassificeringsproblem, ville den resulterende matrice være sådan

confusion matrix

A confusion matrix consists of 4 values which are very valuable to know for every data scientist:

  1. False Positive (FP) — forekomster, der fejlagtigt klassificeres som Positive Klassetilfælde (0,1) = 5
  2. False negative (FN) — forekomster, der fejlagtigt klassificeres som Negative Klassetilfælde (1,0) = 10
  3. True Positive (TP) — forekomster, der korrekt klassificeres som Positive Klassetilfælde (1,1) = 50
  4. True Negative (TN) — forekomster, der korrekt klassificeres som Negative Klassetilfælde (0,0) = 35

samlede forekomster af datasættet (træning + testforekomster) = 5+10+50+35 = 100

nu kan vi beregne 2 vigtige procenter:

1-Nøjagtighedsrate = korrekt / total = (50+35)/ 100 = 85%

2-fejlprocent = forkert / total = (5+10)/ 100 = 15%

nu skal jeg fejre efter at have bygget en sådan klassifikator, at den har en så god nøjagtighedsrate, …eller skal jeg ?!

lad os se, følg mig venligst i følgende scenarie “Du er en dataforsker, der arbejder i en bank og har bygget en klassificeringsmodel til at klassificere svig og ikke-svigtransaktioner, du vil evaluere din model, så du besluttede at beregne forvirringsmatricen, og det var resultatet:”

konfusionsmatrice — afsløring af svig

ved at analysere forvirringsmatricen kan vi sige, at vi har en ret god klassifikator med nøjagtighedsrate = 9.800 / 10.000 = 98%

men dataforskeren har en ret underlig ide om, at han vil prøve; Ideen er at stoppe klassificeringsenheden fra at klassificere nogen af transaktionerne som svig (positiv klasse ‘1’) Derefter beregnede han den nye forvirringsmatrice, og det var som følgende:

klassificeringsnøjagtighedsgraden=9.850/ 10.000 = 98,5%, hvilket betyder, at der er en stigning på 0,5% i nøjagtighedsgraden, selvom klassificeringsenheden ikke fungerer korrekt!

og det kaldes Nøjagtighedsfælde, så vi siger bestemt, at måling af nøjagtighedshastighed ikke er nok til at besvare spørgsmålet ‘hvor god er din klassifikator?!’

løsningen er at prøve en anden målemetode, som er

2. Kumulativ Nøjagtighedsprofil (CAP) kurve – det er en mere robust metode til at hjælpe vores maskinmodel. For at forstå intuitionen bag det skal du følge mig i følgende scenarier:1-Forestil dig, at du som dataforsker arbejder i et firma, der ønsker at promovere sit nye produkt, så de sender en e-mail med deres tilbud til alle kunder og normalt 10% af kundesvarene og faktisk køber produktet, så de dog, at det vil være tilfældet for denne gang, og det scenarie kaldes tilfældigt Scenario.

scenario#2 — du arbejder stadig i samme firma, men denne gang besluttede du at gøre det på en mere systematisk måde:

  1. Undersøg dine Historiske data og tag en gruppe kunder, der faktisk har købt tilbuddet, og prøv at udtrække disse oplysninger
  2. mål disse faktorer og prøv at finde ud af, hvilken af dem der påvirker antallet af købte produkter eller med andre ord tilpasse dataene til en logistisk regressionsmodel.
  3. lav en forudsigelse af, hvilke kunder der er mere tilbøjelige til at købe produktet.
  4. Målret derefter specielt de mennesker, som du forudsagde, er mere tilbøjelige til at købe produktet.
  5. derefter ved at måle svaret fra den målrettede gruppe repræsenteret i denne kurve ‘CAP Curve’.

Vi kan helt sikkert mærke forbedringen; da du kontaktede 20.000 målrettede kunder, fik du omkring 5.000 positive svar, hvor du i scenario#1 ved at kontakte det samme antal kunder kun fik 2.000 positive svar.

så ideen her er at sammenligne din model med det tilfældige scenario, og du kan tage det til næste niveau ved at bygge en anden model måske en supportvektormaskine (SVM) / kerne SVM-model for at sammenligne den med din nuværende logistiske regressionsmodel.

men hvordan analyseres den resulterende graf ?

jo bedre din model er, desto større bliver området mellem dens HÆTTEKURVE og den tilfældige scenarie lige linje.

hypotetisk kan vi tegne den såkaldte den perfekte Model, der repræsenterer en model, der er slags umulig at bygge, medmindre du har en slags krystalkugle . Det viser, at når du sender tilbuddet til 10.000 mulige kunder, fik du et perfekt positivt svar, hvor alle kontaktede folk købte produktet.

plotning af en sådan hypotetisk model hjælper os som reference til at evaluere dine modeller CAP kurver.

der er 2 tilgange til at analysere den tidligere graf:

først —

  1. Beregn område under den perfekte Modelkurve (aP)
  2. Beregn område under den perfekte Modelkurve (aR)
  3. Beregn Nøjagtighedsrate(AR) = aR/ aP; as (AR)~1 (jo bedre er din model) og as (AR)~0 (jo værre er din model)

sekund —

  1. Tegn en linje fra 50% – punktet (ar)0.000) i den samlede kontaktede akse op til modeldækningskurven
  2. derefter projiceres den fra det skæringspunkt til den købte akse
  3. denne værdi% repræsenterer, hvor god din model er:
  • hvis < 60% /(6000) så har du en affaldsmodel
  • hvis 60% < 70%/(7000) så er du nødt til at har en dårlig model
  • hvis 70%<< 80%/(8000) så har du en god model
  • hvis 80%<< 90%/(9000) så har du en meget god model
  • hvis 90%<<

100%/(10.000) så er din model for god til at være sand! hvad jeg mener er det, dette sker normalt på grund af Overfitting, hvilket bestemt ikke er en god ting, da din model kun vil være god til at klassificere de data, den er trænet på, men meget dårlig med nye usete tilfælde.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.