GAMMA FACET: een nieuwe benadering voor universele uitleg van Machine Learning-modellen

(Konstantin Hemker)

Auteurs: Jan Ittner, Konstantin Hemker & Malo Grisard

Snelle vooruitgang in kunstmatige intelligentie (AI) -technologieën rust ons uit met een steeds evoluerende toolset om zelfs de meest complexe zakelijke problemen en processen uit de echte wereld te analyseren. State-of-the-art algoritmen voor machine learning stellen besluitvormers in staat om bedrijfskritische resultaten zoals kosten, snelheid, kwaliteit of opbrengst nauwkeurig te voorspellen. Maar vaker wel dan niet, ligt de echte zakelijke waarde van AI niet alleen in het voorspellen van de resultaten (welke klanten zullen waarschijnlijk hun contract opzeggen?), Maar in het uitleggen en het optimaliseren van die resultaten (wat moeten we doen om hoogwaardige klanten te behouden?).

Bovendien is de bereidheid van een manager om het gebruik van machine learning te accepteren om dagelijkse beslissingen te nemen vaak hangt af van zijn of haar vertrouwen in het algoritme, dat op zijn beurt enig begrip vereist van hoe een AI-model voorspellingen doet en beslissingen neemt. De noodzaak om AI-modellen uit te leggen zal nog belangrijker worden naarmate bedrijven een groter bewustzijn van ethische AI ​​ ontwikkelen en AI-modellen proberen te ontwerpen die in staat zijn tot onbevooroordeelde, veilige en verantwoorde besluitvorming.

Coöperatieve speltheorie gebruiken om functiebijdragen uit te leggen

Door mensen verklaarbare AI heeft de afgelopen jaren enorme vooruitgang geboekt, vooral met de komst van Shapley Additive Explanations (SHAP), een verenigende theorie en algoritme die coöperatieve speltheorie toepassen individuele voorspellingen van een machine learning-model verklaren. Wat SHAP zo aantrekkelijk maakt, is dat de resultaten, ondanks de geavanceerde wiskundige onderbouwing, zelfs voor een algemeen publiek intuïtief zijn.

SHAP kwantificeert de bijdragen van alle variabelen van een model aan een bepaald voorspeld resultaat. We kunnen bijvoorbeeld een model gebruiken om het risico van een patiënt om diabetes te ontwikkelen te voorspellen op basis van variabelen zoals gewicht, leeftijd en bewegingsgewoonten. Het model zou ons kunnen vertellen dat het risico 67% is. SHAP gaat verder en vertelt ons bijvoorbeeld dat de leeftijd van de patiënt het diabetesrisico met 5% verhoogt, terwijl haar gewicht met 2% afneemt.

De verduidelijkende rol van modelinspectie en virtuele experimenten

SHAP biedt een zeer nuttige manier om individuele voorspellingen uit te leggen. Tot voor kort waren er echter maar beperkte middelen om het model als geheel uit te leggen – om in het algemeen uit te leggen hoe variabelen werken en interageren om tot voorspellingen te komen. GAMMA FACET presenteert een nieuwe, holistische benadering om machine learning-modellen uit te leggen. Het doet dit vanuit twee invalshoeken: ten eerste gebruikt het een nieuw ontwikkeld modelinspectie -algoritme om uit te leggen hoe variabelen van een voorspellend model samenwerken om resultaten te voorspellen door patronen te identificeren in de verklaringen van veel individuele voorspellingen. GAMMA FACET zou bijvoorbeeld kunnen vinden dat gewicht en lichaamsgewicht in combinatie moeten worden overwogen om het diabetesrisico te beoordelen, terwijl de body-mass index en de lengte / taille-verhouding onderling uitwisselbaar kunnen zijn. Ten tweede past het een simulatiebenadering toe om in “virtuele experimenten” te bepalen hoe systematische veranderingen in sleutelfactoren de voorspelde resultaten beïnvloeden, zoals hoe een toename in leeftijd het diabetesrisico beïnvloedt bij een populatie patiënten.

Casestudy: storingen in waterboringen voorkomen

De beste manier om deze concepten te verkennen, is aan de hand van een praktijkvoorbeeld . Het boren van een waterput is erg gevaarlijk en kostbaar. De kosten van dergelijk boren worden bepaald door de tijd die nodig is om een ​​put af te werken om er water uit te pompen. Om die kosten te verlagen, worden boormachines meestal gestimuleerd om in een hoger tempo te boren, gemeten als de penetratiegraad (ROP). Afhankelijk van de bodemkenmerken kunnen dagtarieven variëren van $ 30.000 tot $ 250.000. Maar er is een afweging: sneller boren vergroot de kans op incidenten, zoals het instorten van een formatie of een gasinfiltratie. We zullen daarom een ​​machine-leermodel bouwen om de impact van boorsnelheid op het incidentrisico te begrijpen, in de context van andere risicofactoren.

Voor de duidelijkheid gebruiken we voor dit voorbeeld een vereenvoudigde dataset . De dataset bevat 500 waarnemingen, waarbij elke rij een booroperatie uit het verleden weergeeft, samen met een binaire indicator of er al dan niet een boorincident in de operatie heeft plaatsgevonden.

Op basis van huidige en vroegere bedrijfsomstandigheden kan een voorspellend algoritme worden gebruikt om de booroperator te waarschuwen voor een hoog incidentrisico. De operators zouden dan de mogelijkheid hebben om boorparameters aan te passen. Weten wanneer moet echter vaak niet voldoende zijn.De operator moet ook begrijpen waarom er incidenten zijn, en welke de optimale booromstandigheden zijn waarbij de boorkosten in evenwicht zijn met de kosten van een mogelijk incident. GAMMA FACET kan helpen om deze bruikbare inzichten te leveren.

scikit-learn en de Model Pipeline

Om de ruggengraat te vormen van ons verklaarbare machine learning-model, moeten we eerst een modelpijplijn bouwen waarmee we alle output van het model kunnen herleiden naar de initiële data-input, over alle transformatie- en trainingsstappen heen.

GAMMA FACET is ontworpen rond scikit-learn, de de-facto industriestandaard voor machine learning in Python. scikit-learn biedt een breed scala aan regressie- en classificatie-algoritmen. Het biedt ook een universele benadering voor het bouwen van machine learning-pijplijnen, waarbij gegevensvoorverwerking wordt gecombineerd met het daadwerkelijke model dat past in één geïntegreerde workflow.

FACET verbetert scikit-learn op drie essentiële manieren :

  1. End-to-end traceerbaarheid van functies : terwijl native scikit-learn is gebouwd rond numpy en produceert alle outputs als numerieke arrays, FACET biedt verbeterde versies van meer dan 150 scikit-learn transformatoren, regressors en classificaties die alle outputs leveren als pandas dataframes. Bovendien bevat FACET attributen om de namen van afgeleide features terug te koppelen aan de features waarvan ze afkomstig zijn. Deze mapping is essentieel als er verder stroomafwaarts in de machine learning-pijplijn naar de functies moet worden verwezen.
  2. Verbeterde pipelining : FACET introduceert extra tweestaps pijplijnklassen die één voorverwerkingsstap (die zelf een pijplijn kan zijn) en een leerstap bevatten. Onze ervaring is dat deze ogenschijnlijk kleine toevoeging leidt tot aanzienlijk beknoptere en leesbare pipelining-code.
  3. Verbeterde validatie : FACET introduceert kruisvalidators voor verschillende varianten van bootstrapping, een statistische techniek die vooral relevant is in de context van de simulatiemogelijkheden van FACET.

Terugverwijzend naar het boorvoorbeeld, hier is hoe we zou een pijplijn kunnen construeren met behulp van FACETs ondersteuning voor traceerbaarheid van functies:

Zoals u in dit codefragment ziet, ziet de bovenstaande pijplijn er bijna hetzelfde uit als een pijplijn die is opgebouwd met pure scikit-learn . Merk echter op dat we alle pijplijnen, transformatoren en schatters importeren uit FACETs sklearndf pakket, en dat de namen van de bekende scikit-learn klassen allemaal Achtervoegsel “DF”. Let ook op de speciale ClassifierPipelineDF, een van de verbeterde pijplijnen van FACET die een optionele voorbewerkingsstap omvat, samen met een daaropvolgende leererstap die gegarandeerd een classificator is. Zoals u in de uitvoer kunt zien, is het resultaat van de voorbewerking een dataframe dat alle feature-namen behoudt.

Vervolgens willen we de hyperparameters van ons model afstemmen met behulp van FACETs LearnerRanker. LeanerRanker werkt op dezelfde manier als de gridzoeker van scikit-learn , maar maakt het veel gemakkelijker om verschillende typen modellen met elkaar te laten concurreren, in plaats van de hyper- parameters van één model:

Modelverklaringen: wat veroorzaakt incidenten?

We hebben nu een afgestemd en getraind model dat het incidentrisico van onze booractiviteiten voorspelt. Maar we willen proactiever zijn dan alleen het model inzetten en ad hoc reageren op voorspelde risicos. In plaats daarvan willen we weten wat het model heeft geleerd over waarom en wanneer incidenten plaatsvinden. We willen dat het model ons helpt te begrijpen hoe we systematisch de manier waarop we onze boormachines bedienen kunnen veranderen om het risico op incidenten te verkleinen.

FACET benadert modelverklaring als een combinatie van twee methoden:

  1. Globale functie-interacties uitleggen : deze methode vertelt ons wat het model heeft geleerd over hoe functies zowel individueel als collectief bijdragen naar uitkomsten. FACET introduceert een nieuw algoritme dat voor elk paar functies synergie, redundantie en onafhankelijkheid kwantificeert (zie hieronder voor meer details). Dit algoritme is gebaseerd op SHAP-vectordecompositie , een wiskundig raamwerk dat we hebben ontwikkeld voor verklaringen van globale modellen en dat we in een komende publicatie verder zullen uitwerken.
  2. Modelgebaseerde simulaties : deze methode stelt ons in staat om te bepalen hoe systematische wijzigingen in functies kunnen helpen een gewenste resultaat, in dit geval om het risico van een boorstoring te minimaliseren. We bereiken dit resultaat door synthetische steekproeven te maken voor een reeks waarden en vervolgens het model te gebruiken om veranderingen in het voorspelde risico te evalueren. Zoals u hieronder zult zien, is het begrijpen van globale interacties tussen kenmerken (dwz methode 1) een essentiële stap om ervoor te zorgen dat onze simulaties geldig zijn onder reële omstandigheden.

Wanneer gebruikt in ons boorvoorbeeld , FACETs LearnerInspector -klasse biedt een overzicht van feature-interacties door paarsgewijze synergie en redundantie te berekenen:

Redundantie en synergie matrix

De resultaten zijn twee matrices die, voor elk paar features, ons de mate van synergie en redundantie tussen deze twee kenmerken.

Synergie

Synergie is de mate waarin het model informatie van het ene kenmerk met het andere combineert om het doel te voorspellen. Laten we bijvoorbeeld aannemen dat we de cardiovasculaire gezondheid voorspellen op basis van leeftijd en geslacht, en dat het aangepaste model een complexe interactie tussen beide omvat. Dit betekent dat deze twee kenmerken synergetisch zijn voor het voorspellen van cardiovasculaire gezondheid. Verder zijn beide functies belangrijk voor het model en het verwijderen van een van beide zou de prestaties aanzienlijk beïnvloeden. Laten we aannemen dat leeftijd een belangrijker kenmerk is dan geslacht en dus draagt ​​leeftijd meer bij aan de gecombineerde voorspelling dan geslacht. Door deze asymmetrische bijdrage is de synergie voor (leeftijd, geslacht) kleiner dan de synergie voor (geslacht, leeftijd). Om er op een andere manier over na te denken, stel je voor dat de voorspelling een coördinaat is die je probeert te bereiken. Vanaf je startpunt brengt leeftijd je veel dichter bij dit punt dan geslacht, maar je hebt beide nodig om daar te komen. Synergie weerspiegelt het feit dat geslacht meer hulp krijgt van leeftijd (hogere synergie vanuit het perspectief van geslacht) dan leeftijd van geslacht (lagere synergie vanuit het perspectief van leeftijd) om de voorspelling te bereiken.

Dit leidt tot een belangrijk punt: synergie is een van nature asymmetrische eigenschap van de globale informatie. Twee op elkaar inwerkende kenmerken dragen bij aan de modelvoorspellingen. Synergie wordt uitgedrukt in een percentage variërend van 0% (volledige autonomie) tot 100% (volledige synergie). Merk op dat synergetische kenmerken volledig niet-gecorreleerd kunnen zijn, en ze kunnen moeilijk te herkennen zijn door middel van regelmatige verkennende analyse.

Om de synergiematrix te interpreteren, is het eerste kenmerk in een paar de rij (“Perspectief van”), en de tweede functie de kolom. In ons boorvoorbeeld meldt FACET dat “vanuit het perspectief” van de rotatiesnelheid 67% van de informatie wordt gecombineerd met het gewicht op de boor om falen te voorspellen. Dit lijkt in de context zinvol, omdat boren met zowel een hoog bitgewicht als een hoge rotatie een onevenredig grote impact kan hebben op de slijtage van de apparatuur, en zo het risico op incidenten drastisch verhoogt. Het is begrijpelijk dat de synergie ook hoog is vanuit het oogpunt van gewicht op het bit (61%). Dit vertelt ons dat we de rotatiesnelheid en het gewicht van het bit samen moeten bekijken om hun bijdragen aan het risico op incidenten te begrijpen.

Redundantie

Redundantie is de mate waarin een kenmerk in een model dupliceert de informatie van een tweede kenmerk om het doel te voorspellen. Laten we bijvoorbeeld aannemen dat we de grootte van het huis en het aantal slaapkamers hadden om de huizenprijs te voorspellen. Deze functies leggen vergelijkbare informatie vast, want hoe meer slaapkamers, hoe groter het huis en waarschijnlijk gemiddeld een hogere prijs. De redundantie voor (aantal slaapkamers, woninggrootte) zal groter zijn dan de redundantie voor (woninggrootte, aantal slaapkamers). Dit komt doordat de grootte van het huis meer “weet” van het aantal slaapkamers dat de huizenprijs voorspelt dan andersom. Vandaar dat er meer redundantie is vanuit het oogpunt van het aantal slaapkamers. Een andere manier om erover na te denken, is dat het verwijderen van de grootte van het huis schadelijker is voor de prestaties van het model dan het verwijderen van het aantal slaapkamers, omdat de grootte van het huis het ontbreken van een aantal slaapkamers beter kan compenseren. Dit impliceert ook dat de grootte van het huis een belangrijker kenmerk zou zijn dan het aantal slaapkamers in het model.

Het belangrijke punt hier is dat redundantie, net als synergie, een van nature asymmetrische eigenschap is van het globale informatie-element. paren hebben voor het voorspellen van een uitkomst. Redundantie wordt uitgedrukt als een percentage variërend van 0% (volledig uniek) tot 100% (volledige redundantie). Redundantie kan niet noodzakelijkerwijs worden opgemerkt in verkennende analyse als twee kenmerken redundant zijn maar niet lineair gecorreleerd.

Net als bij synergie is de matrixrij het perspectief van-kenmerk in het rij-kolom-kenmerkpaar.Voor ons boorvoorbeeld zien we twee paar zeer redundante features:

  • Het eerste redundante feature-paar is ROP en IROP. De redundantie is vergelijkbaar vanuit het perspectief van beide kenmerken (75%) omdat de ene het omgekeerde is van de andere en ze elkaar dus kunnen vervangen in het model voor incidentrisicos. Dit is een goed voorbeeld van het vermogen van FACET om overtolligheden tussen kenmerken op te vangen, zelfs als ze niet lineair gecorreleerd zijn.
  • Het tweede paar overtollige kenmerken is de diepte van de bewerking en de diameter van het gat. Vanuit het perspectief van de gatdiameter wordt 53% van de informatie gedupliceerd met de diepte van de operatie om mislukking te voorspellen. Intuïtief kunnen we zien waarom, aangezien de diepte van de bewerking en de gatdiameter sterk met elkaar verbonden zijn, aangezien boormachines dunnere boorkoppen gebruiken terwijl ze dieper in de aarde boren. De reden dat de redundantie voor (diepte van de operatie, gatdiameter) iets lager is dan (gatdiameter, diepte van de operatie), is omdat de diepte van de operatie een iets belangrijker kenmerk is in het model.

FACET kan een tweede type diagram produceren dat erg handig is voor het beoordelen van synergie- of redundantierelaties als een hiërarchisch clusterend dendrogram. Merk op dat deze benadering berust op een symmetrische variant van redundantie (of synergie) die niet alleen een vereenvoudigd perspectief biedt, maar ook een objectafstand (1 – metrisch) voor clustering. In ons voorbeeld zijn we geïnteresseerd in het redundantie-dendrogram:

Facets feature redundancy dendrogram

Het redundantie dendrogram onthult clusters van overtollige features, geeft aan de mate van wederzijdse redundantie tussen kenmerken in een cluster (de verder linkse kenmerken worden samengevoegd in het dendrogram, hoe sterker hun redundantie) en toont, met behulp van een kleurenschaal, het belang van kenmerken voor individuele kenmerken en clusters van kenmerken.

Onze twee paar overtollige kenmerken zijn duidelijk herkenbaar in het dendrogram, inclusief hun gecombineerde belang. De penetratiegraad (ROP) is zeer redundant met zijn inverse feature (IROP) (> 80% redundantie), en het gecombineerde belang van beide features is 36%. Aangezien we ROP willen simuleren, zullen we IROP verwijderen om er zeker van te zijn dat de functie die we simuleren een unieke bijdrage levert aan het resultaat (we zullen een meer gedetailleerde uitleg geven in de volgende sectie).

Er is een interessante observatie wanneer we een nieuw redundantie-dendrogram genereren na het verwijderen van IROP en het opnieuw trainen van het model: het kenmerk belang van ROP is gestegen tot 35%, wat aangeeft dat ROP de rol heeft overgenomen van het voormalige ROP / IROP-cluster bij het verklaren van ROP -gerelateerde bijdragen aan het incidentrisico.

Redundantiekoppeling dendrogram na snoeien van functies

Functie-verhoging simuleren

Na inspectie model, hebben we een goed begrip gekregen van hoe het model een voorspelling doet en hoe de voorspellers met elkaar omgaan.

Vaak leiden deze inzichten rechtstreeks tot een wat als-vraag: H hoe kunnen we systematisch een beïnvloedbare variabele veranderen om het resultaat te verbeteren? In ons voorbeeld willen we begrijpen hoe veranderingen in de mate van penetratie het risico op incidenten beïnvloeden. Vanuit economisch oogpunt zullen booroperators proberen zo snel mogelijk te boren met behoud van veiligheid en het verminderen van storingen. Soortgelijke vragen zijn van toepassing op andere zakelijke contexten, waar het doel is om kosten te verlagen, opbrengst te maximaliseren, klanten te behouden of, inderdaad, elk bedrijfsresultaat te optimaliseren op basis van gegevens.

De simulatiebenadering van FACET onderscheidt één functie en wordt vervolgens uitgevoerd een reeks virtuele experimenten voor een reeks waarden, waarbij voor elk experiment wordt beweerd dat het gesimuleerde kenmerk altijd de gegeven waarde heeft aangenomen voor elke historische waarneming.

Bij deze benadering is het cruciaal dat het kenmerk dat we simuleren is niet overbodig met enig ander kenmerk in het model. Als u dit wel doet, bestaat het risico dat er onhaalbare scenarios ontstaan ​​door de waarde van één kenmerk aan te passen, maar niet van zijn overtollige broer of zus. Als we in ons voorbeeld ROP zouden simuleren voor een reeks waarden, maar IROP in het model zouden houden, zouden we hoogstwaarschijnlijk onhaalbare scenarios creëren.

Een simulatie wordt uitgevoerd in twee stappen: Ten eerste, we besluiten een feature te simuleren en kiezen een van de FACETs partitioner klassen om het bereik van eerder waargenomen waarden voor die feature op te splitsen in partities . Ten tweede voeren we één simulatie per partitie uit, waarbij we elke keer de waarde van de gesimuleerde feature fixeren op de centrale waarde van de partitie voor alle observaties.

Daarom stelt de simulatie in ons voorbeeld de vraag: mijn gemiddelde incidentrisico was als ik altijd met X m / s ROP had geboord?”ROP wordt gemeten als een reëel getal, dus gebruiken we een ContinuousRangePartitioner om een ​​reeks partities van gelijke grootte te maken binnen het bereik van waarden die historisch zijn waargenomen voor ROP. Het is belangrijk dat we alleen simuleren binnen het historisch waargenomen bereik van waarden, aangezien het model is getraind op waarden in dat bereik en meestal niet in staat zal zijn om geldige extrapolaties buiten het bereik te bedenken.

Simulatie Stap 1 – Partitioneren van de waargenomen waarden voor de ROP-functie in emmers van gelijke grootte

Met het beste model, identificeerden we eerder uit de LearnerRanker, de simulator bepaalt nu het gemiddelde voorspelde incidentrisico voor elke partitie. FACET ondersteunt bootstrapping, waardoor we elke simulatie vele malen kunnen herhalen op variaties van het model die zijn getraind op verschillende subsets van de gegevens, en de distributie van simulatieresultaten kunnen gebruiken om het betrouwbaarheidsniveau in de simulatie te kwantificeren.

Simulatie Stap 2 – Resultaten simuleren voor verschillende waarden van de ROP-functie

De bovenstaande visualisatie toont het effect van ROP op het incidentrisico, terwijl het ook een gevoel van vertrouwen geeft in de simulatie. De x-as toont de verschillende partities waarvoor de simulatie is uitgevoerd. De balken onder de x-as geven het aantal waarnemingen in de oorspronkelijke steekproef aan dat binnen de partitie valt, wat aangeeft hoeveel steun we hebben voor elke gesimuleerde waarde. (Merk op hoe het betrouwbaarheidsinterval zich uitbreidt naar de marges, aangezien we minder werkelijk waargenomen waarden voor deze partities zien.) De centrale oplopende lijn vertegenwoordigt het mediane voorspelde risico op incidenten voor elke partitie, terwijl de buitenste lijnen het 95% betrouwbaarheidsinterval van alle kruispunten weergeven. validatie splitst zich af van onze voorspelling.

De simulatie bevestigt dat de kans op incidenten aanzienlijk toeneemt naarmate we de ROP verhogen. Het geeft inzicht in de risiconiveaus van werken met een snellere ROP. We kunnen ook zien dat er meerdere gevallen zijn geweest waarbij de ROP op een gevaarlijk hoog niveau (> 30 ft / u) werd gebruikt, waardoor de kans op incidenten groter was dan 70%.

Whats Next?

Vanuit zakelijk perspectief is het hebben van de antwoorden op deze wat als-vragen buitengewoon waardevol voor het inschatten van risicos en manieren vinden om huidige processen te verbeteren. In ons voorbeeld zou de reis hier niet eindigen. Op basis van de resultaten van de simulatie zou een volgende stap kunnen zijn om een ​​kosten-batenanalyse uit te voeren van boren met een langzamere of snellere ROP om de beste afweging te maken tussen boorkosten en het financiële risico van een boorincident.

U kunt gemakkelijk een ritje maken met GAMMA FACET. conda install gamma-facet -c bcg_gamma -c conda-forge en bekijk onze GitHub-opslagplaats voor meer documentatie en uitgewerkte voorbeelden.

Dankbetuigingen

Dit pakket zou niet mogelijk geweest zonder de beschikbaarheid van twee uitstekende Python-pakketten voor machine learning en modeluitlegbaarheid:

1. scikit-learn biedt de leerlingen en transformatoren die de onderliggende machine learning-pijplijnen van FACET vormen. Bovendien hebben we de FACET API ontworpen in lijn met het basis fit / transform / predict paradigma scikit-learns om datawetenschappers een gemakkelijke start te geven met FACET.

2. De SHAP -implementatie door Scott Lundberg wordt gebruikt om te schatten welke SHAP-vectoren worden opgesplitst in de synergie , redundantie- en onafhankelijkheidsvectoren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *