modele de clasificare Evaluarea performanței-curba CAP

să începem prin definirea a ceea ce se înțelege prin clasificare, clasificarea este procesul de încercare de a atribui ceva unuia dintre grupurile disponibile. Este posibil să aveți 2 grupuri (clasificare binară) sau mai mult de 2 grupuri (clasificare Multi-clasă).

algoritmi de clasificare include: (regresie logistică, K-cel mai apropiat vecin, suport Vector mașină, și Bayes naiv…etc)

pentru un om de știință de date este foarte important să vă asigurați cât de bun este modelul de clasificare. Există câteva modalități posibile celebre de a vă evalua modelul. Acestea pot fi enumerate după cum urmează:

  1. matrice de confuzie — poate fi calculată cu ușurință folosind implementarea Bibliotecii Scikit-Learn. Trebuie doar să-i alimentați un vector care conține predicțiile variabilei dvs. dependente y ^ și un vector al valorilor reale ale variabilei dvs. dependente y

scikit-learn confusion Matrix module

acum, după ce ați calculat matricea de confuzie care va fi o matrice 2*2 pentru orice problemă de clasificare binară, matricea rezultată ar fi astfel

confusion matrix

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

  1. fals pozitiv (FP) — instanțe care sunt clasificate incorect ca instanțe de clasă pozitivă (0,1) = 5
  2. fals negativ (FN) — instanțe care sunt clasificate incorect ca instanțe de clasă negativă (1,0) = 10
  3. adevărat pozitiv (TP) — instanțe care sunt clasificate corect ca instanțe de clasă pozitivă (1,1) = 50
  4. adevărat negativ (TN) — instanțe care sunt clasificate corect/li>

Total instanțe ale setului de date (instanțe de instruire + testare) = 5+10+50+35 = 100

acum, putem calcula 2 procente importante:

1-Rata de precizie = corectă / totală = (50+35)/ 100 = 85%

2-Rata de eroare = incorectă / totală = (5+10)/ 100 = 15%

acum, ar trebui să sărbătoresc după construirea unui astfel de clasificator are o rată de precizie atât de bună, …sau ar trebui ?!

Să vedem, vă rog să mă urmați în următorul scenariu „sunteți un om de știință de date care lucrează într-o bancă și a construit un model de clasificare pentru a clasifica tranzacțiile de fraudă și non-fraudă, doriți să evaluați modelul dvs., astfel încât ați decis să calculați matricea de confuzie și acesta a fost rezultatul:”

matrice confuzie — detectarea fraudei

analizând matricea confuziei putem spune că avem un clasificator destul de bun cu o rată de precizie = 9.800 / 10.000 = 98%

dar omul de știință de date are o idee destul de ciudată pe care vrea să o încerce; Ideea este de a opri clasificatorul să clasifice oricare dintre tranzacții drept fraudă (clasa pozitivă ‘1’) apoi, el a calculat noua matrice de confuzie și a fost după cum urmează:

rata de precizie a clasificatorului = 9.850/ 10.000 = 98,5% ceea ce înseamnă că există o creștere de 0,5% a ratei de precizie, deși clasificatorul nu funcționează corect!

și asta se numește capcana de precizie, așa că spunem cu siguranță că măsurarea ratei de precizie nu este suficientă pentru a răspunde la întrebarea ‘Cât de bun este clasificatorul tău?!’

soluția este de a încerca o altă metodă de măsurare care este

2. Curba profilului de precizie cumulativă (CAP) — este o metodă mai robustă pentru a ajuta modelul mașinii noastre. Pentru a înțelege intuiția din spatele ei, trebuie să mă urmați în următoarele scenarii:

Scenariul#1 — Imaginați-vă că, în calitate de om de știință de date, lucrați într-o companie care dorește să promoveze noul său produs, astfel încât să trimită un e-mail cu oferta lor tuturor clienților și, de obicei, 10% din răspunsurile clienților și cumpără de fapt produsul, astfel încât acestea să fie cazul pentru acest moment și acel scenariu se numește scenariu aleatoriu.

scenariul#2 — încă lucrați în aceeași companie, dar de data aceasta ați decis să o faceți într-un mod mai sistematic:

  1. inspectați datele istorice și luați un grup de clienți care au cumpărat efectiv oferta și încercați să extrageți acele informații
  2. măsurați acei factori și încercați să descoperiți care dintre ei afectează numărul de produse achiziționate sau, cu alte cuvinte, potriviți datele într-un model de regresie logistică.
  3. faceți o predicție a clienților care au mai multe șanse să cumpere produsul.
  4. apoi țintă special acei oameni care ai prezis sunt mult mai probabil să cumpere produsul.
  5. apoi prin măsurarea răspunsului grupului vizat reprezentat în curba respectivă.

cu siguranță putem observa îmbunătățirea; când ați contactat 20.000 de clienți vizați, ați primit aproximativ 5.000 de răspunsuri pozitive, unde în scenariul#1 contactând același număr de clienți, ați primit doar 2.000 de răspunsuri pozitive.

deci, ideea aici este de a compara modelul dvs. cu scenariul aleatoriu și îl puteți duce la nivelul următor construind un alt model poate un model de mașină vector suport (SVM) / kernel SVM pentru a-l compara cu modelul dvs. actual de regresie logistică.

dar, cum să analizăm graficul rezultat ?

cu cât modelul dvs. este mai bun, cu atât va fi mai mare zona dintre curba capacului și linia dreaptă a scenariului aleatoriu.

ipotetic putem desena așa-numitul Model Perfect care reprezintă un model care este un fel de imposibil de construit dacă nu aveți un fel de Glob de cristal . Acesta arată că atunci când trimiteți oferta către 10.000 de clienți posibili, ați primit un răspuns pozitiv perfect în care toți oamenii contactați au cumpărat produsul.

trasarea unui astfel de model ipotetic ne va ajuta ca referință pentru a evalua curbele capac modele.

există 2 abordări pentru a analiza graficul anterior:

în primul rând —

  1. calculați zona sub curba modelului Perfect (aP)
  2. calculați zona sub curba modelului Perfect (ar)
  3. calculați rata de precizie(AR) = AR/ aP; ca (ar)~1 (cu atât mai bine este modelul dvs.) și ca (AR)~0 (cu atât mai rău este modelul dvs.)

În al doilea rând —

  1. desenați o linie din punctul de 50% 50.000) în axa totală contactată până la curba capacului modelului
  2. apoi din acel punct de intersecție, proiectați-l pe axa achiziționată
  3. această valoare x% reprezintă cât de bun este modelul dvs:
  • dacă X < 60% /(6000) atunci aveți un model de gunoi
  • Dacă 60% < x < 70% /(7000) atunci aveți un model slab
  • dacă 70% < x < 80% /(8000) atunci aveți un model bun
  • dacă 80% < x < 90%/ (9000) atunci aveți un model foarte bun
  • dacă 90% < x < 100% / (10.000) atunci modelul dvs. este prea bun pentru a fi adevărat! ceea ce vreau să spun este că, acest lucru se întâmplă de obicei din cauza Overfitting, care nu este cu siguranta un lucru bun ca modelul dvs. va fi bun în clasificarea numai datele pe care este instruit pe, dar foarte săraci cu noi instanțe nevăzute.

Lasă un răspuns

Adresa ta de email nu va fi publicată.