Zou u denken dat iemand die beweert een model te maken dat volledig in zijn hoofd zit om terroristen te spotten die met meer dan 99% nauwkeurigheid aan boord van vluchten proberen te komen? Nou, hier is dat het model: simpelweg elke persoon die vanaf een Amerikaanse luchthaven vliegt, bestempelen als geen terrorist. Gezien de 800 miljoen gemiddelde passagiers op Amerikaanse vluchten per jaar en dus de 19 (bevestigde) terroristen die in de periode 2000-2017 aan boord gingen van Amerikaanse vluchten, bereikt dit model een verbazingwekkende nauwkeurigheid van 99,9999999%! wat misschien indrukwekkend klinkt, maar ik heb zelfs het vermoeden dat het Amerikaanse ministerie van Binnenlandse Veiligheid niet snel zal bellen om voor dit model te gaan winkelen. Hoewel deze oplossing een bijna perfecte nauwkeurigheid heeft, is dit probleem er een waarbij de nauwkeurigheid duidelijk geen adequate metriek is!

De opsporingstaak van terroristen is een onevenwichtig classificatieprobleem: we hebben twee klassen die we graag willen opsporen – terroristen en geen terroristen – waarbij één categorie de overgrote meerderheid van de infopunten vertegenwoordigt. Een ander onevenwichtig classificatieprobleem doet zich voor bij de opsporing van ziekten wanneer de snelheid van de ziekte bij het publiek extreem laag is. In beide gevallen wordt de positieve klasse – ziekte of terrorist – in grote mate overtroffen door de negatieve klasse. Dit soort problemen zijn voorbeelden van het vrij gangbare geval in de datawetenschap wanneer de nauwkeurigheid geen eerlijke maatstaf is voor het beoordelen van de prestaties van het model.

Intuïtief weten we allemaal dat het niet nuttig is om alle gegevenspunten als negatief te bestempelen binnen het terrorismedetectieprobleem en dat we ons in plaats daarvan altijd moeten specialiseren in het identificeren van de positieve gevallen. De metriek van onze intuïtie vertelt ons dat we altijd moeten maximaliseren wordt in de statistieken opgevat als recall, of de kracht van een model om alle relevante gevallen binnen een dataset op te sporen. De precieze definitie van recall is dat het aantal echte positieven gedeeld wordt door het aantal echte positieven plus het aantal valse negatieven. True positives zijn datums die door het model als positief worden geclassificeerd en die echt positief zijn (wat betekent dat ze correct zijn), en false negatives zijn datapunten die het model identificeert als negatief en die echt positief zijn (incorrect). in het geval van terrorisme zijn true positives correct geïdentificeerde terroristen, en false negatives zouden individuen zijn die door het model als terroristen worden bestempeld en niet als terroristen die echt terroristen zijn. Recall wordt vaak beschouwd als het vermogen van een model om alle informatiepunten van een dataset op te sporen.

https://miro.medium.com/max/1533/1*gscG4JdjnyU5QkqNDqBg_w.png

Je zou iets kunnen opmerken aan deze vergelijking: als we alle individuen als terroristen bestempelen, dan gaat onze recall naar 1.0! we hebben een ideale classificator toch? Wel, niet precies. zoals de meeste concepten in de datawetenschap, is er een wisselwerking binnen de metriek die we kiezen om te maximaliseren. binnen het geval van recall, zodra we de recall verhogen, verminderen we de precisie. Nogmaals, we weten intuïtief dat een model dat 100% van de passagiers als terroristen bestempelt, misschien niet nuttig is omdat we dan misschien elke persoon moeten verbieden om te vliegen. De statistieken geven ons de woordenschat om onze intuïtie te preciseren: dit nieuwe model zou lijden onder een lage precisie, of de kracht van een classificatiemodel om alleen de relevante gegevenspunten te herkennen.

Precisie is gedefinieerd omdat het aantal echte positieven gedeeld wordt door het aantal echte positieven plus het aantal valse positieven. Valspositieven zijn gevallen die het model ten onrechte als positief bestempelt en die letterlijk negatief zijn, of in ons voorbeeld, individuen die het model classificeert als terroristen die dat niet zijn. Terwijl recall de macht uitdrukt om alle relevante gevallen tijdens een dataset uit te zoeken, drukt precisie het aandeel van de infopunten uit waarvan ons model zegt dat ze relevant waren, waren ze in feite relevant.

https://miro.medium.com/max/1577/1*FKXzF6DYSP2mV4HUBftRgg.png

Nu zullen we zien dat ons eerste model dat alle individuen als niet-terroristen bestempelde, niet erg nuttig was. Hoewel het een bijna perfecte nauwkeurigheid had, had het 0 precisie en 0 recall omdat er geen echte positieven zijn geweest! Stel dat we het model een beetje aanpassen, en één individu correct identificeren als een terrorist. Nu, onze precisie zal 1.0 zijn (geen valse positieven) maar onze recall zal zeer laag zijn omdat we nog steeds veel valse negatieven zullen hebben. Als we het tegenovergestelde extreme bijwonen en alle passagiers als terroristen classificeren, zullen we een recall van 1.0 hebben – we zullen elke terrorist vangen – maar onze precisie zal zeer laag zijn en we zullen veel onschuldige individuen vasthouden. Met andere woorden, als we de precisie verhogen, verminderen we het aantal terugroepacties en vice versa.

https://miro.medium.com/max/810/0*XEO3pwAee7tBT_D1.png

Combinatie van Precisie en Reclame

In sommige situaties zouden we weten dat we ofwel de recall ofwel de precisie willen maximaliseren ten koste van de tegenovergestelde metriek. zo zouden we bij de voorafgaande screening van patiënten voor vervolgonderzoeken waarschijnlijk een recall in de buurt van 1,0 nodig hebben – we zouden alle patiënten die zelfs de ziekte hebben willen opzoeken – en dat we een koffieprecisie kunnen accepteren als de waarde van het vervolgonderzoek niet significant is. Echter, in gevallen waar we een optimale mix van precisie en recall willen zoeken, zullen we de 2 metrieken combineren met behulp van de zogenaamde F1-score.

De F1-score is dat het gemiddelde van de precisie en recall die beide metrieken in overweging nemen binnen de volgende vergelijking:

https://miro.medium.com/max/338/1*UJxVqLnbSj42eRhasKeLOA.png

We gebruiken het gemiddelde in plaats van een eenvoudig gemiddelde omdat het extreme waarden bestraft. Een classificator met een precisie van 1,0 en een recall van 0,0 heeft een eenvoudig gemiddelde van 0,5 maar een F1-score van 0. De F1-score geeft een gelijk gewicht aan beide maatstaven en kan een specifiek voorbeeld zijn van de totale Fβ-metriek waarbij β vaak wordt aangepast om meer gewicht te bieden aan ofwel recall ofwel precisie. (Er zijn andere metrieken voor het combineren van precisie en recall, zoals het gemiddelde van precisie en recall, maar de F1-score is de meest gebruikelijke). Als we een gebalanceerd classificatiemodel willen maken met de optimale balans tussen recall en precisie, dan proberen we de F1-score te maximaliseren.

Visualiseren van Precisie en Recall

Ik heb een paar nieuwe termen naar je gegooid en we zullen een voorbeeld repeteren om te laten zien hoe ze worden gebruikt in de praktijk. Voordat we daar aankomen, willen we graag kort twee concepten noemen die gebruikt worden voor het tonen van precisie en het terughalen.

Ten eerste is er de verwarringsmatrix die gunstig is voor het snel berekenen van de precisie en het terugroepen, gezien de verwachte labels van een model. Een verwarringsmatrix voor binaire classificatie toont de vier verschillende uitkomsten: waar positief, onwaar positief, waar negatief en onwaar negatief. de specifieke waarden vormen de kolommen, en dus de voorspelde waarden (labels) vormen de rijen. Het snijpunt van de rijen en de kolommen laat één van de vier uitkomsten zien. Als we bijvoorbeeld voorspellen dat een kennispunt positief is, maar dat het eigenlijk negatief is, dan is dat vaak een vals-positief.

https://miro.medium.com/max/717/1*CPnO_bcdbE8FXTejQiV2dg.png

Om van de verwarringsmatrix naar de recall en de precisie te gaan, moeten de respectieve waarden binnen de matrix worden gevonden en moeten de vergelijkingen worden toegepast:

https://miro.medium.com/max/1219/1*6NkN_LINs2erxgVJ9rkpUA.png

De andere belangrijkste visualisatietechniek voor het weergeven van de prestaties van een classificatiemodel is dat de Receiver Operating Characteristic (ROC) curve. Laat u niet afschrikken door de ingewikkelde naam! de gedachte is relatief eenvoudig: de ROC-curve laat zien hoe de relatie tussen recall en precisie verandert als we de rand voor het identificeren van een positief in ons model variëren. de rand vertegenwoordigt de waarde waarboven een kennispunt binnen de positieve klasse in aanmerking wordt genomen. Als we een model hebben voor het identificeren van een ziekte, zou ons model een score kunnen geven voor elke patiënt tussen 0 en 1 en dat we tijdens dit bereik een drempel kunnen instellen voor het labelen van een patiënt als zijnde de ziekte (een positief label). Door het veranderen van de rand, zullen we proberen de juiste precisie vs. recall balans te bereiken.

Een ROC-curve geeft de waarheidspositieve snelheid aan op de y-as versus de vals-positieve snelheid op de x-as. De waarheidspositieve snelheid (TPR) is dat de recall en dus de vals-positieve snelheid (FPR) is dat de waarschijnlijkheid van een waarschuwing . Beide worden vaak berekend uit de verwarringsmatrix:

https://miro.medium.com/max/1082/1*Uh9YUp632ktSd75bZDeB0Q.png

https://miro.medium.com/max/443/0*2iHR8dFXev5GWo_f.png

De zwarte diagonale lijn geeft een willekeurige classificatie aan en daarom tonen de rode en blauwe curven twee verschillende classificatiemodellen. Voor een bepaald model blijven we slechts één curve over, maar we bewegen ons langs de curve door onze drempel aan te passen voor het classificeren van een positief geval. Over het algemeen gaan we, als we de rand verlagen, naar de juiste en naar boven langs de curve. Bij een drempelwaarde van 1.0 kunnen we ons linksonder in de grafiek bevinden omdat we geen gegevenspunten als positief identificeren, wat resulteert in geen echte positieven en geen valse positieven (TPR = FPR = 0). Als we de rand verlagen, identificeren we meer datapunten als positief, wat resulteert in meer echte positieven, maar ook meer vals-positieven (de TPR en FPR nemen toe). Uiteindelijk identificeren we bij een drempel van 0.0 alle datapunten als positief en bevinden we ons in de rechter bovenhoek van de ROC-curve (TPR = FPR = 1.0).

Tot slot zullen we de ROC-curve van een model kwantificeren door het hele Area Under the Curve (AUC) te berekenen, een metriek die tussen 0 en 1 valt met een beter getal dat wijst op een betere classificatieprestatie. binnen de bovenstaande grafiek zal de AUC voor de blauwe curve groter zijn dan die voor de rode curve, wat betekent dat het blauwe model het beste een mix van precisie en recall kan bereiken. Een willekeurige classificator (de zwarte lijn) bereikt een AUC van 0,5.

Recapitulatie

We hebben een paar termen behandeld, die geen van allen moeilijk zijn, maar die samen vaak een beetje overweldigend zijn! Laten we een snelle recapitulatie doen en dan een voorbeeld repeteren om de nieuwe ideeën die we geleerd hebben goed in te studeren.

Vier resultaten van de Binaire Classificatie

Echte positieven: als positief bestempelde gegevenspunten die letterlijk positief zijn

Valse positieven: als positief bestempelde gegevenspunten die letterlijk negatief zijn

Ware negatieven: als negatief bestempelde gegevenspunten die letterlijk negatief zijn

Valse negatieven: als negatief bestempelde gegevenspunten die letterlijk positief zijn

Recall en Precisie Metriek

Herinnering: mogelijkheid van een classificatiemodel om alle relevante gevallen te spotten

Precisie: vermogen van een classificatiemodel om alleen relevante gevallen terug te sturen

F1-score: een enkele metrische waarde die het terugroepen en de precisie met behulp van het gemiddelde mengt.

Het visualiseren van de oproep en de precisie

Verwarringsmatrix: toont de specifieke en voorspelde etiketten van een classificatieprobleem

Ontvangerkarakteristiek (ROC): plot waarheidsgetrouw positief tarief (TPR) versus vals positief tarief (FPR) als functie van de drempelwaarde van het model om een positief te classificeren.

Oppervlakte onder de curve (AUC): metrisch voor de berekening van de algemene prestaties van een classificatiemodel ondersteund gebied onder de ROC-curve.

Voorbeeld Toepassing

https://miro.medium.com/max/1016/1*3SjX3LaLUfJ3Yf7xU1QhmA.png

Onze taak zal zijn om 100 patiënten met een ziekte in 50% van de totale populatie te diagnosticeren. we gaan uit van een recordermodel, waarbij we informatie over patiënten inbrengen en een score tussen 0 en 1 krijgen. we zullen de rand voor het labelen van een patiënt als positief (heeft de ziekte) veranderen om de classificerende prestaties te maximaliseren. we zullen drempels van 0,0 tot 1,0 evalueren in stappen van 0,1, bij elke stap het berekenen van de precisie, recall, F1, en de locatie op de ROC-curve. Hierna volgen de classificatieresultaten bij elke drempelwaarde:

We doen een voorbeeldberekening van het terugroepen, de precisie, het ware positieve percentage en het fout-positieve percentage bij een drempelwaarde van 0,5. Eerst maken we de verwarringsmatrix:

We kunnen de getallen in de matrix gebruiken om de recall-, precisie- en F1-score te berekenen:

https://miro.medium.com/max/1441/1*XQOYd2mheHyVVR9H-ENtIQ.png

Vervolgens berekenen we de ware positieve en de valse positieve koers om de y- en x-coördinaten voor de ROC-curve te vinden.

https://miro.medium.com/max/1360/1*HzWxvbikCtiB-QtFb48WoQ.png

Om de hele ROC-curve te kunnen maken, wordt dit proces bij elke drempelwaarde uitgetekend. Zoals je misschien zou denken is dit vaak behoorlijk vervelend, dus in plaats van het met de hand te doen, gebruiken we een taal als Python om het voor ons te proberen! Het Jupyter Notebook met de berekeningen staat op GitHub voor iedereen om de implementatie vast te stellen. de uiteindelijke ROC-curve wordt hieronder getoond met de drempels boven de punten.

https://miro.medium.com/max/555/1*ZAH33g5FD9xYZRadgmqWVw.png

Hier zien we alle concepten samenkomen! Bij een drempel van 1,0 classificeren we geen patiënten als patiënten die de ziekte hebben en hebben we dus een recall en precisie van 0,0. Omdat de drempel afneemt, neemt de recall toe omdat we meer patiënten identificeren die de ziekte hebben. Echter, als onze recall toeneemt, neemt onze precisie af omdat we naast het verhogen van de waarheidsgetrouwe positieven, ook de valse positieven verhogen. Bij een drempel van 0,0, onze recall is ideaal – we ontdekken alle patiënten met de ziekte – maar onze precisie is laag omdat we veel valse positieven hebben. we zullen bewegen langs de curve voor een bepaald model door het veranderen van de rand en kies de rand die de F1-score maximaliseert. Om de hele curve te verschuiven, moeten we misschien een speciaal model bouwen.

De uiteindelijke modelstatistieken bij elke drempel liggen onder:

https://miro.medium.com/max/529/1*TESjAFBurN7RVXyb5KDOxg.png

Op basis van de F1-score komt het algemeen beste model tot stand bij een drempelwaarde van 0,5. Als we meer nadruk wilden leggen op precisie of recall, konden we het overeenkomstige model kiezen dat het best presteert op die maatregelen.