Klassifiseringsmodeller Ytelsesevaluering-CAP Curve

la oss begynne med å definere Hva Som menes Med Klassifisering, Klassifisering Er prosessen med å prøve å tildele noe til en av de tilgjengelige gruppene. Du kan ha 2 grupper (Binær Klassifisering) eller mer enn 2 grupper (Multi-klasse Klassifisering).

Klassifiseringsalgoritmer inkluderer: (Logistisk Regresjon, K-Nærmeste Nabo, Støttevektormaskin og Naive Bayes…etc)

for en datavitenskapsmann er det veldig viktig å sørge for hvor god klassifikasjonsmodellen din er. Det er noen kjente mulige måter å evaluere modellen på. De kan være oppført som følgende:

  1. Forvirring Matrix — Det kan beregnes enkelt ved Hjelp Av Scikit-Lær Biblioteket implementering. Du må bare mate den en vektor som inneholder forutsigelsene til din avhengige variabel y ^ og en vektor av de faktiske verdiene til din avhengige variabel y

cikit-learn confusion matrix module

nå etter at du har beregnet din forvirringsmatrise som vil være en 2*2-matrise for et binært klassifiseringsproblem, vil den resulterende matrisen være slik

confusion matrix

A confusion matrix consists of 4 values which are very valuable to know for every data scientist:Falsk positiv (fp) — forekomster som er feil klassifisert Som Positive Klasseforekomster (0,1) = 5

  • Falsk negativ (FN) — forekomster som er feil klassifisert Som Negative klasseforekomster (1,0) = 10
  • Sann Positiv (Tp) — forekomster som er riktig klassifisert Som Positive Klasseforekomster (1,1) = 50
  • Sann Negativ (TN) — forekomster som er riktig klassifisert Som Negative Klasseforekomster (0,0) = 35
  • Totale Forekomster AV DATASETTET (opplæring + test forekomster) = 5+10+50+35 = 100

    Nå kan vi beregne 2 viktige prosenter:

    1-Nøyaktighet = Korrekt / total = (50+35)/ 100 = 85%

    2 – feilrate = Feil / total = (5+10)/ 100 = 15%

    Nå skal jeg feire etter å ha bygget en slik klassifikator, den har en så god nøyaktighetsgrad, …eller Skal jeg ?!

    La Oss se, følg meg i følgende scenario «Du er en dataforsker som jobber i en bank og har bygget en klassifiseringsmodell for å klassifisere svindel og ikke-svindeltransaksjoner, du vil evaluere modellen din slik at du bestemte deg for å beregne forvirringsmatrisen, og det var resultatet:»

    ved å analysere forvirringsmatrisen kan vi si at vi har en ganske god klassifikator med nøyaktighetsgrad = 9,800/10,000 = 98%

    men datavitenskaperen har en ganske merkelig ide om at han vil prøve; Tanken er å stoppe klassifikatoren fra å klassifisere noen av transaksjonene som svindel (positiv klasse ‘1’) da beregnet han den nye forvirringsmatrisen og det var som følgende:

    klassifikatorens nøyaktighetsgrad = 9,850/10,000 = 98,5%, noe som betyr at det er en 0,5% økning i nøyaktighetsgraden selv om klassifikatoren ikke fungerer som den skal!

    og det kalles Nøyaktighetsfelle, så vi sier definitivt at måling av nøyaktighetsgrad ikke er nok til å svare på spørsmålet ‘ Hvor bra er klassifikatoren din?!’

    løsningen er å prøve en annen målemetode som er

    2. Cumulative Accuracy Profile (CAP) Curve-det er en mer robust metode for å hjelpe vår maskinmodell. For å forstå intuisjonen bak den, må du følge meg i følgende scenarier:Scenario#1-Tenk deg at du som datavitenskapsmann jobber i et selskap som ønsker å markedsføre sitt nye produkt, slik at de vil sende en e-post med tilbudet til alle kundene og vanligvis 10% av kundens svar og faktisk kjøper produktet, slik at de selv om det vil være tilfelle for denne gangen, og det scenariet kalles Tilfeldig Scenario.

    scenario#2 — du jobber fortsatt i samme selskap, men denne gangen bestemte du deg for å gjøre det på en mer systematisk måte:

    1. inspiser dine historiske data og ta en gruppe kunder som faktisk kjøpte tilbudet og prøv å trekke ut denne informasjonen
    2. mål disse faktorene og prøv å oppdage hvilke av dem som påvirker antall kjøpte produkter eller med andre ord passe dataene til en logistisk regresjonsmodell.
    3. Lag en prediksjon av hvilke kunder som er mer sannsynlig å kjøpe produktet.
    4. deretter spesielt målrette de menneskene som du spådd er mer sannsynlig å kjøpe produktet.
    5. deretter ved å måle responsen til den målrettede gruppen representert i den kurven ‘CAP Curve’.

    vi definitivt kan merke forbedring; når du kontaktet 20.000 målrettede kunder du fikk om 5000 positive svar der i scenario # 1 ved å kontakte samme antall kunder, du fikk bare 2000 positive svar.

    men hvordan analyserer du den resulterende grafen ?

    jo bedre modellen din er, desto større blir området mellom KAPPEKURVEN og den tilfeldige scenarioens rette linje.

    Hypotetisk kan Vi tegne den Såkalte Perfekte Modellen som representerer en modell som er litt umulig å bygge med mindre du har En Slags Krystallkule . Det viser at når du sender tilbudet til 10.000 mulig kunde du fikk en perfekt positiv respons der alle kontaktet folk kjøpte produktet.

    Plotting slik hypotetisk modell vil hjelpe oss som en referanse for å evaluere modeller CAP kurver.

    det er 2 tilnærminger for å analysere forrige graf:Beregn området under Den Perfekte Modellkurven (aR)

  • Beregn Nøyaktighetsgrad (AR) = aR/aP; as(AR)~1 (jo bedre er modellen din) og As (AR)~0 (jo verre er modellen din)
  • Andre —

    1. Tegn en linje fra 50% —punktet (50 000) i den totale kontaktede aksen opp til modellkapselkurven
    2. og deretter fra det skjæringspunktet, projiser det til Den kjøpte Aksen
    3. denne x% – verdien representerer hvor god modellen Din er:
    • Hvis X < 60% /(6000) så har du en søppelmodell
    • Hvis 60% < x < 70% /(7000) så har du en dårlig modell
    • hvis 70% < x < 80% /(8000) så har du en god modell
    • hvis 80% < x < 90%/ (9000) da har du en veldig god modell
    • hvis 90% < x < 100% / (10,000) så er modellen din for god til å være sant! det jeg mener er at dette vanligvis skjer på Grunn Av Overfitting, noe som definitivt ikke er bra, da modellen din vil være god til å klassifisere bare dataene den er trent på, men svært dårlig med nye usynlige tilfeller.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert.