Files
ExplainableAI/slides/slides.qmd

914 lines
24 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Explainable AI"
subtitle: "LIME & RBE auf Random Forest <br> mit Adult Census Datensatz"
filters:
- include-code-files
date: today
date-format: "D.M.YYYY"
format:
revealjs:
incremental: true
slide-number: c
css: custom.css
footer: "Mario, Jan, Nick, Andi, Sebastian, Paul | TINF22B3 | Explainable AI "
---
# Datensatz
Analyse der Daten
## Adult Census Datensatz
- Enthält demografische Informationen aus der US-Volkszählung
- Soll Einkommen einer Person vorhersagen (<|>50000$ pro Jahr)
## Datensatzauswahl
- Gut strukturiert und saubere Daten
- Weit verbreiteter Benchmark in der Forschung und im maschinellen Lernen --> wird in vielen Studien verwendet
- Vielfalt der Variablen Typen --> enthält sowohl kategorische als auch numerische Variablen
- Realistisches Datenset --> gut geeignet für praxisnahe Anwendungen
:::{.notes}
1. Gut strukturierte und saubere Daten
Der Datensatz enthält strukturierte, tabellarische Daten mit klar definierten Spalten.
Fehlende Werte sind begrenzt, sodass weniger Datenbereinigung erforderlich ist.
2. Klassifikationsproblem für Machine Learning
Zielvariable: Einkommen (über oder unter 50.000 USD jährlich).
Ideal für binäre Klassifikationsmodelle (z. B. Logistic Regression, Decision Trees, Random Forests, Neural Networks).
3. Vielfältige Feature-Typen
Beinhaltet sowohl kategorische (z. B. Beruf, Geschlecht, Bildungsniveau) als auch numerische (z. B. Alter, Arbeitsstunden pro Woche) Variablen.
Ermöglicht das Testen verschiedener Feature-Engineering-Methoden.
4. Ein realistisches Datenset
Reale demografische und sozioökonomische Daten aus der US-Volkszählung (1994).
Praktisch für praxisnahe Anwendungen wie Sozialforschung, Wirtschaftsanalyse oder politische Entscheidungsfindung.
5. Gut dokumentiert & weit verbreitet
Häufig verwendet in Tutorials, Forschungsarbeiten und Kaggle-Wettbewerben.
Viele Ressourcen und Beispielcodes verfügbar.
6. Ideal für Fairness- und Bias-Analysen
Der Datensatz enthält sensible Merkmale wie Geschlecht und Ethnie.
Eignet sich für Studien zur Diskriminierung und Fairness von Algorithmen.
:::
## Enthaltene Daten im Datensatz {.smaller}
| Column Name | Data Type |
|------------|-----------|
| age | int64 |
| workclass | object |
| fnlwgt | int64 |
| education | object |
| education.num | int64 |
| marital.status | object |
| occupation | object |
| relationship | object |
| race | object |
| sex | object |
| capital.gain | int64 |
| capital.loss | int64 |
| hours.per.week | int64 |
| native.country | object |
| income | object |
:::{.notes}
1. age (numerisch)
Alter der Person (in Jahren).
2. workclass (kategorisch)
Art der Anstellung der Person.
Private (privatwirtschaftlich)
Self-emp-not-inc (selbstständig, aber nicht als Unternehmen)
Self-emp-inc (selbstständig mit Unternehmen)
Government (staatliche Anstellung: Local, State, Federal)
Without-pay (ohne Bezahlung)
Never-worked (nie gearbeitet)
3. fnlwgt (numerisch)
Final weight: Gewichtungsfaktor für Hochrechnungen in der Volkszählung -> gibt an wie viele Menschen mit ähnlichen Merkmalen in der Gesamtbevölkerung durch diese einzelne Person repräsentiert werden
Wird meist für ML-Modelle nicht genutzt. --> für unseren Datensatz normalerweise nicht wichtig aber da wir eine Gewichtung machen
4. education (kategorisch)
Bachelors (Bachelor-Abschluss)
Masters (Master-Abschluss)
Doctorate (Promotion)
5. education.num (numerisch)
9 (High School)
16 (Promotion)
6. marital.status (kategorisch)
Familienstand der Person.
Married (verheiratet)
Divorced (geschieden)
Never-married (nie verheiratet)
Separated (getrennt lebend)
Widowed (verwitwet)
7. occupation (kategorisch)
Beruf der Person.
8. relationship (kategorisch)
Beziehung zur Familie im Haushalt.
Husband (Ehemann)
Wife (Ehefrau)
Own-child (eigenes Kind)
Unmarried (unverheiratet)
9. race (kategorisch)
Ethnische Zugehörigkeit der Person.
White (weiß)
Black (schwarz)
Asian-Pac-Islander (asiatisch-pazifische Herkunft)
10. sex (kategorisch)
Geschlecht der Person.
Werte: Male (männlich), Female (weiblich)
11. capital.gain (numerisch)
Kapitalgewinne (z. B. durch Investitionen).
12. capital.loss (numerisch)
Kapitalverluste (z. B. aus Investitionen).
13. hours.per.week (numerisch)
Durchschnittliche Arbeitsstunden pro Woche.
14. native.country (kategorisch)
Herkunftsland der Person.
15. income (Zielvariable, kategorisch)
Einkommensklasse der Person.
<=50K (Jahreseinkommen ≤50.000 USD)
>50K (Jahreseinkommen >50.000 USD)
:::
## Analyse des Datensatzes {.smaller}
- Datensatzgröße
- Anzahl und Art der Datentypen
- Fehlende Werte in den einzelnen Spalten
- Statistische Zusammenfasung
. . .
```{python}
import pandas as pd
# Daten einlesen
df = pd.read_csv("../sample_data/adult_census_income/adult.csv")
df.describe()
```
## Prozentuale Verteilung der Personen im Datensatz
![](img/Verteilung_Einkommensklassen.png){height=500 fig-align="center"}
# Datenvorverarbeitung
Auffüllen von fehlenden Werten, Umwandlung von Variablen
## Überprüfung auf fehlende oder ungültige Werte
```{python}
#| echo: true
# Überprüfen auf fehlende Werte oder '?'
for col in df.columns:
missing_count = df[df[col] == '?'].shape[0]
if missing_count > 0:
print(f"Spalte '{col}' hat {missing_count} Einträge mit '?'")
```
## Ersetzung von fehlenden/ ungültigen Werten (vorher) {.smaller}
```{python}
df.iloc[:5, :7]
```
## Ersetzung von fehlenden/ ungültigen Werten (nachher){.smaller}
```{python}
import numpy as np
# Ersetzen von '?' durch NaN und dann durch den häufigsten Wert
df_clean = df.copy()
for col in df_clean.columns:
if df_clean[col].dtype == 'object':
# Ersetze '?' durch NaN
df_clean[col] = df_clean[col].replace('?', np.nan)
# Ersetze NaN durch den häufigsten Wert
most_frequent = df_clean[col].mode()[0]
df_clean[col] = df_clean[col].fillna(most_frequent)
df_clean.iloc[:5, :7]
```
## Umwandlung der Variablen
- Von Katergorischen Variablen zu Numerischen
- Beispiel Geschlecht:
- Mann -> 1
- Frau -> 0
- Wird benötigt um mit dem Datensatz weiter zu arbeiten zu können -> ML-Modelle benötigen numerische Werte um sinnvolle Berechnungen
durchführen zu können
# ML-Modell
Auswahl, Beschreibung, Hyperparameter, Güte
## Auswahl eines geeigneten Modells
<br>
| Kriterium | Unsere Situation |
|- |-- |
| Art der Daten | Strukturiert |
| Datenmenge | ~32.500 Einträge |
| Komplexität | 13-dimensionale Daten --> eher komplex |
| Ziel und Art der Klassifizierung | Binäre Klassifizierung (>/< 50.000$ Einkommen)|
<br>
--> Gute Voraussetzungen für **Random Forest**
:::{.notes}
Außerdem:
- Rechenressourcen
- Zeit für Training
:::
## Random Forest
- **Ensemble-Learning-Verfahren**, bestehend aus vielen Entscheidungsbaummodellen (bei uns 100 Bäume)
- **Training:** Jeder Baum wird auf zufälliger Teilmenge der Daten und zufälliger Teilmenge der Features trainiert
- **Vorhersagen:** Ergebnisse aller Bäume werden aggregiert, um eine finale Vorhersage zu erhalten
- Keine Aktivierungsfunktionen oder Layer
:::{.notes}
- **Ensemble Learning**: Mehrere verschiedene Lernalgorithmen, um bessere Ergebnisse zu erhalten als mit einem einzelnen Lernalgorithmus
- Gute Leistung bei verschiedenen Arten von Daten
- Robustheit gegenüber Overfitting
- Fähigkeit, mit fehlenden Werten und kategorischen Variablen umzugehen
- **Eingebaute Feature Importance**
- **Aktivierungsfunktionen:** Entscheidungsbäume, basieren auf Regeln und Splits, ohne mathematische Aktivierungsfunktionen.
- **Layers:** Es gibt keine Schichten (Layers) im klassischen Sinne, wie bei neuronalen Netzwerken. Jeder Baum ist ein eigenständiger Klassifikator.
:::
## Random Forest {background-image="img/Random_Forest_Tree_Example.png"}
## Hyperparameter
> *Parameter, die vor dem Training festgelegt werden müssen*
| Hyperparameter | Bedeutung |
|- |-- |
| n_estimators | Anzahl an Bäumen |
| max_depth | Maximale Tiefe eines Baumes |
| min_samples_split | Mindestanzahl an Samples, um ein Split durchzuführen |
| min_samples_leaf | Mindestanzahl an Samples in einem Blatt |
## Hyperparameter-Tuning {.smaller}
> *Optimierung der Hyperparameter, um die Modellgüte zu verbessern*
```{.python include="../extracted_cells/cell15.py"
code-line-numbers="|2-7|10-11|15"
end-line=15}
```
. . .
```json
{
'max_depth': None,
'min_samples_leaf': 2,
'min_samples_split': 2,
'n_estimators': 100
}
```
## Hyperparameter-Tuning {.smaller}
```{.python include="../extracted_cells/cell15.py"
code-line-numbers="2-7,10-11,15|18,21|24-27"
end-line=27}
```
## Modellgüte {.smaller auto-animate=true}
:::{.notes}
- **Accuracy**: Anteil der korrekt klassifizierten Instanzen
- **Precision**: Anteil der als positiv klassifizierten Instanzen, die tatsächlich positiv sind
- **Recall**: Anteil der tatsächlich positiven Instanzen, die als positiv klassifiziert wurden
- **F1-Score**: Harmonisches Mittel aus Precision und Recall
:::
```{.json code-line-numbers="|2|3|4|5"}
{
'Accuracy': 0.8607,
'Precision': 0.7613,
'Recall': 0.6142,
'F1 Score': 0.6798
}
```
. . .
**Konfusionsmatrix**
. . .
![](img/Confusions_Matrix.png){width=50%}
## Konfusionsmatrix {auto-animate=true}
![](img/Confusions_Matrix.png)
:::{.notes}
- (oben links) Tatsächlich sind die meisten weniger als 50K und auch richtig vorhergesagt
- (unten rechts) Zweitgrößte Gruppe: Mehr als 50k und auch so vorhergesagt
- (unten links) Drittgrößte Gruppe: Eigentlich mehr als 50k aber als weniger vorhergesagt
- (oben rechts) Kleinste Gruppe: Tatsächlich weniger als 50k aber als mehr vorhergesagt
:::
## Feature Importances
> *Metrik, wie viel ein Feature zur Vorhersage des Modells beiträgt*
![](img/Feature_Importance.png){width=80%}
# LIME {visibility="uncounted"}
Local Interpretable Model-agnostic Explanations
## 1. Grundprinzip:
- LIME erklärt einzelne Vorhersagen eines beliebigen ML-Modells
- Es arbeitet modellunabhängig (model-agnostic)
- Erzeugt lokale, interpretierbare Erklärungen für einzelne Vorhersagen
## 2. Funktionsweise im Detail:
### Ausgangssituation:
- Ein trainiertes ML-Modell liegt vor
- Eine spezifische Vorhersage soll erklärt werden
- Das Original-Modell wird als "Black Box" behandelt
## 2. Funktionsweise im Detail:
### Prozessschritte:
- Sampling um den Datenpunkt:
- Erzeugt synthetische Samples in der Nachbarschaft des zu erklärenden Datenpunkts
- Verwendet Perturbationen (kleine Änderungen) der Original-Features
- Gewichtung der Samples:
- Näher liegende Samples erhalten höhere Gewichte
## 2. Funktionsweise im Detail:
### Prozessschritte:
- Feature-Transformation:
- Konvertiert die Daten in ein interpretierbares Format
- Bei Texten z.B. Umwandlung in binäre Features (Wort vorhanden/nicht vorhanden)
- Training eines einfachen Modells:
- typischer weise durch lineare Regression
- Verwendet die gewichteten Samples
- Optimiert auf lokale Genauigkeit
- damit man ein leicht Interpretierbares Modell bekommt
## 2. Funktionsweise im Detail:
Extraktion der Erklärung:
![](.\img\LIME_Erklärung.png){width=80% fig-align="center"}
:::{.notes}
Hier sind zwei Beispiele wie die Erklärung von LIME extrahiert werden kann.
Einmal als Grafik durch ein Balkendiagramm und einmal als Tabelle.
Roter Bereich: Je größer der Rote Bereich, je geringer wird die Chance mehr als 50k zu bekommen
Grüner Bereich: Je größer der Grüne Bereich, je größer wird die Chance mehr als 50k zu bekommen
:::
## 3. Wichtige Eigenschaften: {.smaller}
- Lokalität:
- Fokussiert sich auf lokale Umgebung der zu erklärenden Instanz
- Erzeugt keine globalen Erklärungen für das gesamte Modell
- Interpretierbarkeit:
- Nutzt einfache, verständliche Modelle für Erklärungen
- Meist lineare Modelle oder Entscheidungsbäume
- Modell-Agnostik:
- Funktioniert mit jedem ML-Modell
- Benötigt nur Zugriff auf Vorhersagefunktion
## 4. Vorteile und Grenzen: {.smaller}
:::{.notes}
LIME ist instabil, bedeuted das wenn man LIME zweimal ausführen würde, kann es sein das es nicht auf das gleiche Ergebnis kommt, sondern die Gewichtung anders verteilt.
:::
- Vorteile:
- Flexibel einsetzbar
- Intuitiv verständliche Erklärungen
- Unterstützt verschiedene Datentypen
- Grenzen:
- Nur lokale Erklärungen
- Sampling kann rechenintensiv sein
- LIME ist instabil
- LIME ist besonders nützlich, wenn man:
- Einzelne Vorhersagen verstehen möchten
- Mit komplexen Modellen arbeitet
- Modelle debuggen oder verbessern will
## LIME Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Krebsdiagnose: Erklärung, welche Merkmale in medizinischen Bildern zu einer Krebsdiagnose beitragen
:::
## LIME Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Krebsdiagnose: Erklärung, welche Merkmale in medizinischen Bildern zu einer Krebsdiagnose beitragen
**Finanzwesen und Kreditvergabe**
- Kreditwürdigkeitsprüfung: Transparente Begründung für Kreditablehnungen oder -genehmigungen
- Betrugserkennung: Erklärung, warum bestimmte Transaktionen als verdächtig eingestuft werden
:::
## LIME Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Krebsdiagnose: Erklärung, welche Merkmale in medizinischen Bildern zu einer Krebsdiagnose beitragen
**Finanzwesen und Kreditvergabe**
- Kreditwürdigkeitsprüfung: Transparente Begründung für Kreditablehnungen oder -genehmigungen
- Betrugserkennung: Erklärung, warum bestimmte Transaktionen als verdächtig eingestuft werden
**Personalabteilung und Recruiting**
- Bewerberselektion: Erklärung, welche Qualifikationen oder Fähigkeiten bei der Kandidatenauswahl entscheidend waren
:::
## LIME Berechnungskosten
LIME skaliert:
::: {.nonincremental}
- Linear mit der Anzahl der Samples (N)
- Quadratisch bis kubisch mit der Anzahl der Features (D)
- Linear mit der Komplexität des zu erklärenden Modells M(D)
:::
Komplexität in BigO Notation:
::: {.nonincremental}
- **O(N × M(D))**, wenn das zu erklärende Modell komplex ist
- **O(N × D²)**, wenn das lineare Modell der rechenintensivste Teil ist
:::
:::{.notes}
**Große Datensätze generell Machbar**
- Dürfen nur nicht zu viele Features haben, das erhöhe stark den Rechenaufwand
:::
## Rule Based Explenation
![](img/Komplett.bmp){height=400 fig-align="center"}
:::{.notes}
- Verfahren wird gefüttert mit
- Daten und Labels
- Erstellt draus Regeln
:::
## Detaillierte Erklärung und Funktionsweise
![](img/Neue_Regel.bmp){height=400 fig-align="center"}
::: {.notes}
- Menschen lernen schneller als Tiere
- Menschen kommunizieren schneller / besser
- Vor allem auf Grund von Regeln
- Satzbau, Erklärungen, Logik
- Hund Sitz beibringen
- braucht viele iterationen (mit Belohnungen)
- Mensch kann deutlicher erklären was das Ziel ist
- Regel Basiertes Lernen kommt zum Einsatz
- Anstatt (unverständlicher) neuronaler Netze
- oder komplexen mathematischen Modellen
- Verwendung von logischen Rgeln
- extrahiert aus Daten oder durch Experten definiert
:::
## Beispiel Regel
<br>
> WENN
> Fieber über 38°C
> UND Husten
> DANN Grippe
## Beispiel Regel {.text-align-right}
<br>
> WENN
> capital.gain ≤ 7073.50 UND
> education.num ≤ 12.50 UND
> capital.loss > 2218.50 UND
> DANN Einkommen > 50K
## Vorteile
- Transparenz: Menschen können Entscheidungen leicht <br> nachvollziehen
- Überprüfbarkeit: Regeln können durch Experten überprüft <br> und Ausgewertet werden
- Anpassbarkeit: Vordefinierte Regeln von Experten können <br> mit maschinell erstellten Regeln ergänzt werden
![](img/Vorteile.jpg){.absolute top=10 right=10 height="900"}
::: {.notes}
Transparenz: Menschen können Entscheidungen leicht nachvollziehen
Überprüfbarkeit: Regeln können durch Experten überprüft werden und Anpassungen vorgenommen werden
Anpassbarkeit: Vordefinierte Regeln von Experten können mit maschinell erstellten Regeln kombiniert werden
- (Modellunabhängig)
:::
## Nachteile/Herausforderungen
- Skalierbarkeit: komplexen Anwendungsgebiete können eine hohe <br> Anzahl an Regeln schnell erreichen
- Gereralität: Regeln sind oft domänenspezifisch und benötigen <br> für unterschiedliche Kontexte entsprechend anpassungen
- Widersprüche: Regeln können zu Widersprüchen untereinander <br> führen und müssen daher angepasst werden
![](img/Nachteile_gespiegelt.jpg){.absolute top=10 right=10 height="900"}
::: {.notes}
- Skalierbarkeit: In komplexen Anwendungsgebieten können die Anzahl an Regeln schnell sehr hoch werden.
- Gereralität: Regeln sind oft domänenspezifisch und müssen für unterschiedliche Kontexte entsprechend angepasst werden
- Widersprüche: Regeln können zu Widersprüchen untereinander führen und müssen daher angepasst werden
:::
## RBE Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Diagnostische Systeme: Ärzte benötigen klare Regeln, um Diagnosevorschläge zu verstehen und zu validieren
:::
:::{.notes}
Medizin / Gesundheitswesen
- **Regeln, warum welche Diagnose vorgeschlagen wurde**
Finanzwesen
- **Regeln, warum Transaktion verdächtig ist**
- **Regeln, warum Kredit genehmigt / abgelehnt wurde**
Versicherungswesen
- **Regeln, warum Prämien zu stande kommen**
- **Regeln, warum Schadensansprüche geltend gemacht werden können**
:::
## RBE Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Diagnostische Systeme: Ärzte benötigen klare Regeln, um Diagnosevorschläge zu verstehen und zu validieren
**Versicherungswesen**
- Risikobewertung: Transparente Regeln zur Prämienberechnung
- Schadenregulierung: Nachvollziehbare Entscheidungskriterien für Schadensansprüche
:::
:::{.notes}
Medizin / Gesundheitswesen
- **Regeln, warum welche Diagnose vorgeschlagen wurde**
Finanzwesen
- **Regeln, warum Transaktion verdächtig ist**
- **Regeln, warum Kredit genehmigt / abgelehnt wurde**
Versicherungswesen
- **Regeln, warum Prämien zu stande kommen**
- **Regeln, warum Schadensansprüche geltend gemacht werden können**
:::
## RBE Anwendungsszenarien
::: {.nonincremental}
**Medizinische Diagnostik und Gesundheitswesen**
- Diagnostische Systeme: Ärzte benötigen klare Regeln, um Diagnosevorschläge zu verstehen und zu validieren
**Versicherungswesen**
- Risikobewertung: Transparente Regeln zur Prämienberechnung
- Schadenregulierung: Nachvollziehbare Entscheidungskriterien für Schadensansprüche
**Finanzwesen und Kreditvergabe**
- Betrugserkennung: Einfach verständliche Regeln zur Identifikation verdächtiger Transaktionen
- Kreditentscheidungen: Banken müssen Ablehnungen oder Genehmigungen rechtlich begründen können
:::
:::{.notes}
Medizin / Gesundheitswesen
- **Regeln, warum welche Diagnose vorgeschlagen wurde**
Finanzwesen
- **Regeln, warum Transaktion verdächtig ist**
- **Regeln, warum Kredit genehmigt / abgelehnt wurde**
Versicherungswesen
- **Regeln, warum Prämien zu stande kommen**
- **Regeln, warum Schadensansprüche geltend gemacht werden können**
:::
## RBE Output
```
|--- marital.status_Married-civ-spouse <= 0.50
| |--- capital.gain <= 7073.50
| | |--- education.num <= 12.50
| | | |--- capital.loss <= 2218.50
| | | | |--- hours.per.week <= 40.50
| | | | | |--- Einkommen ≤ 50K
| | | | |--- hours.per.week > 40.50
| | | | | |--- Einkommen ≤ 50K
| | | |--- capital.loss > 2218.50
| | | | |--- fnlwgt <= 125450.50
| | | | | |--- Einkommen > 50K
| | | | |--- fnlwgt > 125450.50
| | | | | |--- Einkommen ≤ 50K
```
:::{.notes}
- Ich zeige euch keinen code aber zumindes den Output solltet ihr mal gesehen haben
- Als erstes den Decission Tree
- Und dann gescheit formatiert als Satz
- Richtigen Code wird später im Notebook vorgestellt
:::
## RBE Berechnungskosten
RBE skaliert:
::: {.nonincremental}
- N = Anzahl der Trainingsbeispiele
- D = Anzahl der Merkmale (Features)
:::
Komplexität in BigO Notation: **O(N × D × log N)**
:::{.notes}
Komplexität zusammengesetzt aus:
- Training des Surrogate-Modells (DecisionTreeClassifier)
- Vorhersagen mit dem Random Forest (Referenzmodell)
- Extraktion der Regeln aus dem Entscheidungsbaum
- Evaluierung des Surrogate-Modells
**Große Datensätze generell Machbar**
- Dürfen nur nicht zu viele Features haben, das erhöhe stark den Rechenaufwand
:::
::: {.center}
## Jetzt wird es Praktisch
:::
:::{.notes}
Jetzt das Notebook zeigen und konkret durchgehen
:::
## Vergleich der XAI-Verfahren
- Interpretierbarkeit
- Modellunabhängigkeit
- Genauigkeit / Konsistenz
- Anwendungsszenarien
## LIME Interpretierbarkeit
::: {.nonincremental}
- Leicht verständlich, welche Features relevant waren
- Auch verständlich Laien
:::
![](img/LIME_Erklärung.png){height=400 fig-align="center"}
:::{.notes}
**Rote Balken**
- Features die die Wahrscheinlichkeit von >=50k verringern
**Grüne Balken**
- Features die die Wahrscheinlichkeit von >=50k erhöhen
:::
## LIME Modellabhängigkeit
::: {.nonincremental}
- Ist Model-Agnostic
- Behandelt jedes Modell als Blackbox
:::
:::{.notes}
Wie in LIME schon beschrieben
L: local
I: Interpretable
M: Model Agnostic
:::
## LIME Konsistenz
::: {.nonincremental}
- Die Ergebnisse sind instabil
- Können aber stark variieren da es auf zufälligen Abänderungen der Daten basiert
:::
![](img/Lime_Varianz_Features.png){height=400 fig-align="center"}
:::{.notes}
**Wir haben 10 Erklärungen laufen lassen**
- Dann immer die Feature Wichtigkeit verglichen
- Geringe Varianz: Ähnliche Ergebnisse
- Hohe Varianz: Unterschiedliche Ergebnisse
=> Wir haben hier die Top 5 mit der größten Varianz => Immernoch gering
:::
## LIME Anwendungsszenarien
::: {.nonincremental}
- Medizinische Diagnostik und Gesundheitswesen
- Finanzwesen und Kreditvergabe
- Personalabteilung und Recruiting
:::
:::{.notes}
**Verständnis einer einzelnen Vorhersage**
:::
## RBE Interpretierbarkeit
::: {.nonincremental}
- Regeln Leicht Nachvollziehbar: Wenn-Dann-Struktur von Regeln
- Potenziell komplex bei vielen Regeln
- Auch für Laien Verständlich
:::
:::{.notes}
1. **Wenn-Dann-Struktur ist leicht zu verstehen, wie man auf Ergebnis kommt**
2. **Komplex / unübersichtlich wenn man viele Regeln hat**
3. **Regeln verstehen auch Lian**
:::
## RBE Interpretierbarkeit
Beispiel einer Regel: Vorhersagt > 50K
::: {.nonincremental}
- *WENN*
- *capital.gain ≤ 7073.50 UND*
- *education.num ≤ 12.50 UND*
- *capital.loss > 2218.50 UND*
- *DANN Einkommen > 50K*
:::
:::{.notes}
**Beispielregel für > 50K Einkommen**
:::
## RBE Modellabhängigkeit
::: {.nonincremental}
- **Inhärent regelbasierte Modelle** (modellabhängig)
- **Post-hoc regelbasierte Erklärungen** (modellunabhängig)
:::
Wir verwenden einen: **Surrogate-Entscheidungsbaum**
::: {.nonincremental}
- Dieser ist modellunabhängig
:::
:::{.notes}
**Inhärent regelbasierte Modelle**
- Diese Modelle sind ihre eigenen Erklärungen - die Regeln sind das Modell.
**Post-hoc regelbasierte Erklärungen**
- Diese Ansätze können prinzipiell auf jedes Modell angewendet werden und sind daher modellunabhängig.
**Surrogate-Entscheidungsbaum**
- **Post-hoc (Modellunabhängig)**
- **Bekommt Trainingsdaten und Random Forest Vorhersagen**
Die extrahierten Regeln bieten eine **globale Erklärung des Random Forest-Verhaltens**.
:::
## RBE Genauigkeit & Konsistenz
::: {.nonincremental}
- Genauigkeit: Wie nahe an Ergebnis von RF
- Konsistenz: Schwankungen der Genauigkeit
:::
![](img/surrogate_accuracy.png){height=400 fig-align="center"}
:::{.notes}
Vorgehen:
- **Surrogate-Modell trainiert, sodass es RF-Vorhersagen nachahmt**
- **Vorhersage von Surrogate-Modell mit RF vergleichen**
- Berechnen die oft Vorhersagen gleich ist in %
Das ganze mit mehreren Baumtiefen
- So finden wir die **optimale Baumtiefe**
=> Man sieht **sehr hohe Genauigkeit**
:::
## RBE Anwendungsszenarien
::: {.nonincremental}
- Medizinische Diagnostik und Gesundheitswesen
- Finanzwesen und Kreditvergabe
- Versicherungswesen
:::
:::{.notes}
**Globlaler Überblick von Entscheidungslogik**
**Wieso Entscheidet das Modell Allgemein**
Medizin / Gesundheitswesen
- **Beispiel Schlaganfall**
- => Wir wollen wissen, warum er allgemein zur Diagnose kommt
:::
::: {.center}
## Vielen Dank für Eure Aufmerksamkeit!
:::