SlideShare ist ein Scribd-Unternehmen logo
1 von 109
Downloaden Sie, um offline zu lesen
Fehlende Daten? (K)Ein Problem!
#WISSENTEILEN
Lars Röwekamp | @mobileLarson
@mobileLarson
CIO New Technologies
OPEN KNOWLEDGE
Lars Röwekamp
(Architecture, Microservices, Cloud, AI & ML)
Das bin ich >
Fehlende Daten
Was genau bedeutet
das eigentlich und wann
bzw. warum ist das
ein Problem?
00
Fehlende Daten Was ist das überhaupt?
6
Blanks
in CSV Datei
NULL
in RDBMS
???
egal wo
NaN
in Zahlen
N/A
in Daten
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 98.2 77 -99999
65 160 M 98.3 NaN 140
63 0 N/A 98.9 55 100
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 98.2 77 -99999
65 160 M 98.3 NaN 140
63 0 N/A 98.9 55 100
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 98.2 77 -99999
65 160 M 98.3 NaN 140
63 0 N/A 98.9 55 100
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Pregnant Pulse BP Systolic
71 140 M N/A 71 120
61 120 F yes 77 110
65 160 M N/A 62 140
63 125 F no 55 100
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Pregnant Pulse BP Systolic
71 140 M N/A 71 120
61 120 F yes 77 110
65 160 M N/A 62 140
63 125 F no 55 100
„Not Avialable“ oder „Not Applicable“?
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Pregnant Pulse BP Systolic
71 140 M N/A 71 120
61 120 F yes 0 NaN
65 160 M N/A 62 140
63 125 F no 55 100
Fehlende Daten Was ist das überhaupt?
Height Weight Sex Pregnant Pulse BP Systolic
71 140 M N/A 71 120
61 120 F yes 0 NaN
65 160 M N/A 62 140
63 125 F no 55 100
„Missing Data“ oder „Computation Error“
Fehlende Daten Welche Pattern gibt es?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 160 M 98.3 NaN 140
63 125 F 98.9 55 100
Fehlende Daten Welche Pattern gibt es?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 98.2 77 110
65 160 M NaN 62 140
63 125 F 98.9 55 100
„Random Missing“ (aka Daten fehlen willkürlich)
Fehlende Daten Welche Pattern gibt es?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 NaN M 98.3 NaN 140
63 125 F 98.9 55 100
„Uniform Missing“ (aka einheitliches Muster)
Fehlende Daten Welche Pattern gibt es?
Height Weight Sex Temperature Pulse BP Systolic
71 120 M 98.6 70 120
61 120 NaN NaN NaN
65 160 M 98.3 62 140
63 125 F 98.9 NaN NaN
„Monotonic Missing“ (aka Subset Muster)
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
„Nix tun“ (aka der Algorithmus kümmert sich drum)
Warnung: Funktioniert nur bei bestimmten Algorithmen.
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 160 M 98.6 65 120
61 120 F 98.2 77 110
65 140 M 98.5 62 140
63 125 F 98.9 55 100
„Daten organisieren“ (aka der Mensch kümmert sich drum)
Warnung: Nur sehr begrenzt möglich, z.B. durch Follow-Ups.
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
„Datensatz entfernen“ (aka Complete Case Analysis)
Warnung: <5%, sonst zu viel Info-Verlust & Bias.
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 NaN 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
„Variable entfernen“ (aka Complete Feature Analysis)
Warnung: evtl. Verlust wichtiger Eigenschaften -> Imputation?
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 72 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
„berechnen“ (aka Statistical Imputation)
Warnung: relativ einfach, aber stark limitiert.
Fehlende Daten Was kann ich tun?
Height Weight Sex Temperature Pulse BP Systolic
71 NaN M 98.6 71 120
61 120 F 98.2 77 110
65 NaN M NaN 62 140
63 125 F 98.9 55 100
„modellieren“ (aka ML-Method Imputation)
Warnung: Kann beliebig komplex werden.
Fehlende Daten Rubin‘s Taxonomy (1976)
Missing Completely at Random
Missing at Random
Missing not at Random
MCAR
MAR
MNAR
MCAR
Missing
Completely
at Random
Das Fehlen der Daten ist unabhängig von
beobachteten/bekannten und unabhängig
von nicht beobachten/bekannten Daten.
MCAR impliziert, dass die fehlenden Daten
nicht systematisch mit Variablen im Datensatz
zusammenhängen.
Fehlende Daten Rubin‘s Taxonomy
MAR
Missing
at Random
Das Fehlen der Daten ist abhängig von
den beobachteten/bekannten Daten aber
nicht von nicht beobachten/bekannten Daten.
MAR impliziert, dass die fehlenden Daten
systematisch mit Variablen im Datensatz
zusammenhängen.
Fehlende Daten Rubin‘s Taxonomy
MNAR
Missing not
at Random
Das Fehlen der Daten ist abhängig von
nicht beobachteten/bekannten Daten.
MNAR impliziert, dass die fehlenden Daten
systematisch mit Variablen außerhalb des
Datensatzes zusammenhängen.
Fehlende Daten Rubin‘s Taxonomy
Fehlende Daten
MCAR
fehlende Daten
können ggf. entfernt
oder berechnet
werden
MAR
fehlende Daten
können ggf.
via ML modelliert
werden
MNAR
weiteres
Domänenwissen
ist notwendig
Fehlende Daten Herausforderung MNAR
„Wähle einen
willkürlichen
Wert zwischen
1 und 10.“
Fehlende Daten Herausforderung MNAR
Domänenwissen innerhalb der Daten:
• mehr gerade als ungrade Werte (11 vs. 5)
• mean = 6.0
Fehlende Daten Herausforderung MNAR
Domänenwissen innerhalb der Daten:
• mehr gerade als ungrade Werte (11 vs. 5)
• mean = 6.0
Domänenwissen außerhalb der Daten:
• Menschen tendieren dazu eher mittlere Werte zu wählen
Fehlende Daten Herausforderung MNAR
Domänenwissen innerhalb der Daten:
• mehr gerade als ungrade Werte (11 vs. 5)
• mean = 6.0
• Geschlecht lässt sich ggf von dem Vornamen ableiten
Domänenwissen außerhalb der Daten:
• Menschen tendieren dazu eher mittlere Werte zu wählen
• evtl. gibt es Statistiken über genderspezifische Vorlieben?
Fehlende Daten Herausforderung MNAR
Domänenwissen innerhalb der Daten:
• mehr gerade als ungrade Werte (11 vs. 5)
• mean = 6.0
• Geschlecht lässt sich ggf von dem Vornamen ableiten
Domänenwissen außerhalb der Daten:
• Menschen tendieren dazu eher mittlere Werte zu wählen
• evtl. gibt es Statistiken über genderspezifische Vorlieben?
• In China: 6 & 8 Glückszahlen / 4 & 10 Unglückszahlen
Fehlende Daten Takeaways
Es gilt den Grund für das Fehlen von Daten zu analysieren
und Muster zu verstehen.
Der Typ der fehlenden Daten gemäß Rubin – MCAR, MAR,
MNAR - gibt die Optionen vor.
Fehlende Daten vom Typ MNAR benötigen zusätzliches
Domänenwissen, um sie sinnvoll zu berechnen/modellieren.
Visualisierung
Wie bekomme ich
einen Eindruck davon,
was fehlt?
01
Visualisierung Poor-Man‘s-Version
Domäne: London Housing Data
• 1071 Datensätze
Visualisierung Poor-Man‘s-Version
Domäne: London Housing Data
• 1071 Datensätze
• < 100 Missing Data
• < 300 Missing Data
• < 600 Missing Data
• >= 600 Missing Data
Visualisierung Sorted Bar Plot
missingno.bar(london_housing, color='deepskyblue', sort='descending')
Visualisierung Co-Missing Matrix
missingno.matrix(london_housing, color=(0.27, 0.52, 1.0))
Visualisierung Correlation Heatmap
missingno.heatmap(london_housing, cmap="RdYlGn")
Visualisierung Dendrogram
missingno.dendrogram(london_housing)
Visualisierung Dendrogram
missingno.dendrogram(london_housing, method="ward")
Visualisierung Takeaways
Visualisierung als Teil der EDA hilft dabei, das Ausmaß der
fehlenden Daten schnell und gezielt abzuschätzen.
Die verschiedenen Diagrammtypen geben Hinweise auf
die Muster der fehlenden Daten.
Erkenntnisse können zur Herleitung der passenden
Imputations-Strategie genutzt werden.
Univariate
Imputation
Wie lassen sich fehlende
Werte einfach und
sinnvoll ersetzen?
02
Imputation Definition
„Data imputation is the process of replacing missing
or incomplete data points in a dataset with estimated
or substituted values.
These estimated values are typically derived from the
available data, statistical methods, or machine
learning algorithms.“
„Univariate feature imputation implies that we are
only considering the values of a single column when
performing imputation.“
„Multivariate feature imputation, on the other hand,
involves taking into account other features in the
dataset when performing imputation.“
Imputation Definition
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
„Hallo Nachbar!“ (aka Vorgänger / Nachfolger)
Zeit
Werte sind in einer kontinuierlichen (Zeit-)Reihe
„Immer weiter so“ (aka Last Observation Carried Forward)
Zeit
Forward Filling
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Forward Filling
„Immer weiter so“ (aka Last Observation Carried Forward)
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Forward Filling
„Immer weiter so“ (aka Last Observation Carried Forward)
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
„Ein Blick zurück“ (aka Next Observation Carried Backwards)
Zeit
Backward Filling
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Backward Filling
„Ein Blick zurück“ (aka Next Observation Carried Backwards)
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Backward Filling
„Ein Blick zurück“ (aka Next Observation Carried Backwards)
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Linear Filling
„Irgendwo dazwischen“ (aka Linear Filling)
Interpolation via Linear, LOCF & NOCB
Werte sind in einer kontinuierlichen (Zeit-)Reihe
Zeit
Linear Filling
„Irgendwo dazwischen“ (aka Linear Filling)
Interpolation via Linear, LOCF & NOCB
PRO CONS
sehr einfache Verfahren
für Zeitreihen geeignet
Annahme zeitlicher Kontinuität
potenzieller Bias
Probleme bei Saisonalität
Forward, wenn der letzte Wert passend zu sein schein.
Backward, wenn der nächste Wert passend zu sein schein.
Linear, wenn aufsteigende/fallende Tendenz.
Linear & Seasonal Adjustment, bei Saisonalität
Interpolation via Linear, LOCF & NOCB
Univariante Imputation Mean, Median et al
nur für „numerische“ Features und MCAR, wenn <5%
„Reine Mathematik“ (aka Statistic Stubstitution)
Age Sex
25 M
NaN N/A
61 M
27 F
28 M
nur für „numerische“ Features und MCAR, wenn <5%
„Reine Mathematik“ (aka Statistic Stubstitution)
Age Sex
25 M
NaN N/A
61 M
27 F
28 M
Age Sex
25 M
36,8 / 30 N/A
61 M
27 F
28 M
Mean = 36,8
Median = 30,0
Univariante Imputation Mean, Median et al
„Mehrheitsprinzip“ (aka Mode Imputation)
3 x Male
1 x Female
geeignet (auch) für „categorical“ Features und MCAR, wenn <5%
Univariante Imputation Mean, Median et al
Age Sex
25 M
30 M
61 M
27 F
28 M
Age Sex
25 M
30 N/A
61 M
27 F
28 M
Mean, Median, Mode
Mean
Median
Mode
Univariante Imputation Mean, Median et al
PRO CONS
sehr einfaches Verfahren
erhält die Datenstruktur
ignoriert Abhängigkeiten
kann Daten verzehren
Mean, bei MCAR und Normalverteilung numerischer Werte.
Median, bei skewed Data oder Outliern.
Mode, bei Imputation von Categorical Variables
Univariante Imputation Mean, Median et al
Simple Technics Takeaways
Für fortlaufende Werte / Zeitreihen eignen sich
Interpolation-Verfahren, wie Linear, LOCF & NOCB
Für MCAR Missingness oder bei tolerierbarem Bias eignen
sich Univariante Imputation oder Deletion.
Simple Technics by Example
LOCF & NOCB Imputation
MODE Imputation aka most frequent
MIN & MAX Value Imputation
Mean Value Imputation
Multi-Variant
Imputation
Wie lassen sich
fehlende Werte
besser ersetzen?
03
Multi Imputation Regression, Classification et al
„Ich weiß etwas!“ (aka Feature Abhängigkeit)
Age Income Gender
33 12.771 F
18 12.000 M
N/A 13.542 M
Multi Imputation Regression, Classification et al
„Ich weiß etwas!“ (aka Feature Abhängigkeit)
Age Income Gender
33 12.771 F
18 12.000 M
N/A 13.542 M
Age
Income
10 20 30 40 50
10T
20T
Multi Imputation Regression, Classification et al
„Ich weiß etwas!“ (aka Feature Abhängigkeit)
Age Income Gender
33 12.771 F
18 12.000 M
35,5 13.542 M
Age
Income
10 20 30 40 50
10T
20T
Achtung: setzt Linearität voraus und ist sensitive für Outlier!
Multi Imputation Hot Deck, Cold Deck
Age Income Gender
33 12.771 F
18 12.000 M
33 NaN M
40 15.000 F
42 16.627 M
„Ich kenne da einen!“ (aka Vorbild Abhängigkeit)
Multi Imputation Hot Deck, Cold Deck
Age Income Gender
33 12.771 F
18 12.000 M
33 NaN M
40 15.000 F
42 16.627 M
„Ich kenne da einen!“ (aka Vorbild Abhängigkeit)
Age Income Gender
33 12.771 F
18 12.000 M
33 12.771 M
40 15.000 F
42 16.627 M
Donor
33 / 12.771
Multi Imputation Hot Deck, Cold Deck
Age Income Gender
33 12.771 F
18 12.000 M
20 NaN M
40 15.000 F
42 16.627 M
„Ich kenne da einen!“ (aka Vorbild Abhängigkeit)
Age Income Gender
33 12.771 F
18 12.000 M
20 12.000 M
40 15.000 F
42 16.627 M
Donor
20 / 12.000
Achtung: setzt „Gleichheit“ voraus, Gefahr des „single Donator“.
Multi Imputation Regression vs. Hot Deck
Source: https://pub.aimind.so/hot-deck-imputation-bridging-the-gaps-in-missing-data-32bdfdee2f40
Multi Imputation MICE*
Age Income Gender
33 NaN F
18 12.000 N/A
NaN 13.542 M
„Step by Step!“ (aka mehrstufiges Verfahren)
*Multiple Imputations by Chanied Equations
Multi Imputation MICE
Age Income Gender
33 NaN F
18 12.000 N/A
NaN 13.542 M
Step 1: Simple Imputation eg via Mean, Median, Mode
Age Income Gender
33 12.771 F
18 12.000 F
25.5 13.542 M
Multi Imputation MICE
Age Income Gender
33 12.771 F
18 12.000 F
25.5 13.542 M
Step 2: Set-Back 1st Feature*
Age Income Gender
33 12.771 F
18 12.000 F
NaN 13.542 M
*Feature mit den wenigsten fehlenden Werten.
Multi Imputation MICE
Age Income Gender
33 12.771 F
18 12.000 F
N/A 13.542 M
Step 3: Advanced Imputation 1st Feature eg via Regression
Age Income Gender
33 12.771 F
18 12.000 F
35.5 13.542 M
Multi Imputation MICE
Age Income Gender
33 12.771 F
18 12.000 F
35.5 13.542 M
Step 4: Set-Back 2nd Feature*
Age Income Gender
33 NaN F
18 12.000 F
35.5 13.542 M
*Feature mit den wenigsten fehlenden Werten.
Multi Imputation MICE
Age Income Gender
33 NaN F
18 12.000 F
35.5 13.542 M
Step 5: Advanced Imputation 2nd Feature eg via Regression
Age Income Gender
33 13.103 F
18 12.000 F
35.5 13.542 M
Multi Imputation MICE
Age Income Gender
33 NaN F
18 12.000 N/A
NaN 13.542 M
“Multiple Imputation by Chained Equations“
Age Income Gender
33 12.771 F
18 12.000 F
25.5 13.542 M
Age Income Gender
33 12.771 F
18 12.000 F
NaN 13.542 M
Age Income Gender
33 12.771 F
18 12.000 F
N/A 13.542 M
Age Income Gender
33 12.771 F
18 12.000 F
35.5 13.542 M
Age Income Gender
33 NaN F
18 12.000 F
35.5 13.542 M
Age Income Gender
33 NaN F
18 12.000 F
35.5 13.542 M
Age Income Gender
33 13.103 F
18 12.000 F
35.5 13.542 M
Age Income Gender
33 13.103 F
18 12.000 M
35.5 13.542 M
mean
imputation
age back
to NaN
linear regression
age – income, gender
income back
to NaN
linear reg.
predict age
(35.5 != 25.5)
linear regression
income – age, gender
linear reg.
predict income
(13.102 != 12.771)
… same
for gender
Multi Imputation MICE
imputed Data
real Data
Multi Imputation The Big Picture (so far)
with Trend
with Trend &
Seasonality
Categorical
Continuous
Mean, Median, Mode,
Random Sample Impute
Linear Interpolation
Season Adjustment
& Interpolation
N/A as Class / Level,
Multiple Imputation
Logistic Regression
Mean, Median, Mode,
Multiple Imputation
Linear Regression
without Trend
Handling
Missing Data
Deletion
Imputation
Deleting Rows
Pairwise Deletion
Deleting Columns
Time-Series
Problem
General
Problem
Multi-Variant Imputation nutzen mehrere Features, wie z.B.
bei Regression / Classification oder Hot Deck Imputation
Multi-Variant Imputation mit verketteten Gleichungen
aka MICE eignen sich gut bei mehreren fehlenden Features.
Multi-Variant eignet sich gut für MAR und kann verwendet
werden, um Statistik in das Modell zu bringen.
Multi Imputation Takeaways
Hot Deck Imputation Cold Deck Imputation
Multi Imputation by Example
Model Imputation
Wie lassen sich fehlende
Werte via ML-Verfahren
sinnvoll ersetzen?
04
Model Imputation K-Nearest Neighbors
Klasse A
Klasse B
„Hallo Nachbarn!“ (aka Gesetzt der Nähe)
Idee: Nachbarn ähneln sich.
Frage: Welcher Nachbar ist am häufigsten?
Achtung: bei kleinem K ungenau, bei großem K langsam!
Source: https://amueller.github.io/COMS4995-s18/slides/aml-08-021218-imputation-feature-selection/#45
Model Imputation K-Nearest Neighbors
Mean Imputation vs. KNN Imputation
Model Imputation Miss Forrest
„Train, Predict, Repeat!“ (aka x*Random Forrest)
Source: https://sourabharsh.medium.com/model-based-methods-for-imputation-685a15680037
Model Imputation Miss Forrest
Achtung: MissForrest priorisiert Datenqualität über Geschwindigkeit!
„Train, Predict, Repeat!“ (aka x*Random Forrest)
„The previous result can be verified here as Miss Forest (1) traces closer
to the original data, followed by the Mice Forest (2) and then KNN (3).“
Model Imputation LLMs & Transformers
„Ich weiß die Antwort!“ (aka LLM based Imputation)
Age Country Income
30 Austria 40.300 E
54 Germany 107.000 E
24 Spain 38.000 E
40 Austria NaN
Die Antwort lautet:
„40, Austria, 68000“
*R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf
Model Imputation LLMs & Transformers
„Ich weiß die Antwort!“ (aka LLM based Imputation)
Age Country Income
30 Austria 40.300 E
54 Germany 107.000 E
24 Spain 38.000 E
40 Austria NaN
Die Antwort lautet:
„40, Austria, 68000“
Step 1: Converter (Data-to-Text)
Step 2: Tokenizer (Text-to-Token)
Step 3: Transformer Model (Train)
Step 4: Transformer Model (Ask)
*R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf
Model Imputation LLMs & Transformers
„Ich weiß die Antwort!“ (aka LLM based Imputation)
Age Country Income
30 Austria 40.300 E
54 Germany 107.000 E
24 Spain 38.000 E
40 Austria NaN
*R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf
Age Country Income
30 Austria 40.300 E
54 Germany 107.000 E
24 Spain 38.000 E
40 Austria 68.000
https://www.igminresearch.com/articles/pdf/igmin140.pdf
Model Imputation Takeaways
Model Imputation sind in der Regel mächtiger als ihre
statistischen Freunde, aber ggf auch deutlich langsamer.
Model Imputation eignen sich bei weniger offensichtlichen
Abhängigkeiten und Ungleichheit.
Model Imputation eignet sich gut für MAR und kann verwendet
werden, um ML in das Modell zu bringen.
K-Nearest Neighbor Imputation Multiple Imputation via IterativImputer
Model Imputation by Example
Anonymisierung
Haben fehlende Daten
auch eine gute Seite?
05
Anonymisierung via Imputation
Zip
DoB
Sex
Ethnicity
Visit Date
Diagnosis
Procedure
Medication
Total Charge
Name
Address
Date Registered
Party Affiliation
Date last Vote
Voter
List
Medical
List
Source: https://privacytools.seas.harvard.edu/sites/projects.iq.harvard.edu/files/privacytools/files/paper1.pdf
uniqueliy identifies
87% of U.S. population
(15 Attributes uniqueliy identifies 99,98%)
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 N/A 38.000 E
40 60306 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 N/A 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 N/A 107.000 E
24 10243 38.000 E
40 60306 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 N/A 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 N/A 107.000 E
24 10243 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80539 107.000 E
24 10243 38.000 E
40 N/A 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 N/A 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 N/A 107.000 E
24 10243 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80539 107.000 E
24 10243 38.000 E
40 N/A 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 10243 38.000 E
40 60310 68.000
Anonymisierung via Imputation
„Knapp daneben, ist auch ok!“ (aka vergleichbare Werte)
Age Zip Code Income
30 26122 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 N/A 40.300 E
54 80336 107.000 E
24 10115 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 N/A 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 N/A 107.000 E
24 10243 38.000 E
40 60306 68.000
Age Zip Code Income
30 26129 40.300 E
54 80539 107.000 E
24 10243 38.000 E
40 N/A 68.000
Age Zip Code Income
30 26129 40.300 E
54 80336 107.000 E
24 10243 38.000 E
40 60310 68.000
Gut genug!
Conclusion
Was ihr aus
dem heutigen Talk
mitnehmen solltet.
99
Imputation Conclusions
• Nix tun hilft selten (eg. XGBoost)
• Löschen nur bei wenig % Missing
• Statistic Imputation bei MCAR
• Model-based Imputation bei MAR
• Domain-Analyse bei MNAR
• Ein Bild sagt mehr als 1000 Worte!
• Sagt ein Wort mehr als Daten?
Zeit für
Fragen?
Immer!
Vielen
Dank!
#WISSENTEILEN
by open knowledge GmbH
@_openKnowledge | @mobileLarson
Lars Röwekamp, CIO New Technologies
scikit-learn Imputer:
• SimpleImputer: mean, median, most-frequent, constant
• IterativeImputer: round-robin, multiple times
• KNNImputer: k-NN & weighted k-NN
Missingo – Missing Data Visualization:
• https://github.com/ResidentMario/missingno
fancyImpute – Feature Imputation Framework:
• https://pypi.org/project/fancyimpute/
autoImpute – Feature Imputation Framework:
• https://github.com/kearnz/autoimpute
Links & Verweise
A N S P R E C H P A R T N E R
LARS RÖWEKAMP
CIO New Technologies
Kaiserliche Post, Poststraße 1, 26122 Oldenburg
www.openknowledge.de
+49 (0) 441 4082 0
lars.roewekamp@openknowledge.de
www.linkedin.com/in/lars-roewekamp/
Ich lade dich auf einen
remote Kaffee ein ;-)
Hier direkt
Termin sichern!
Folie 01: © anilakkus, iStockphoto.com
All other pictures, drawings and icons originate from
• pexels.com, pixabay.com, unsplash.com,
• flaticon.com
or were made by my own.
BILDNACHWEIS

Weitere ähnliche Inhalte

Mehr von OPEN KNOWLEDGE GmbH

Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoOPEN KNOWLEDGE GmbH
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenOPEN KNOWLEDGE GmbH
 
Machine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsMachine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsOPEN KNOWLEDGE GmbH
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeOPEN KNOWLEDGE GmbH
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten SystemenOPEN KNOWLEDGE GmbH
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungOPEN KNOWLEDGE GmbH
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingOPEN KNOWLEDGE GmbH
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusOPEN KNOWLEDGE GmbH
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!OPEN KNOWLEDGE GmbH
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?OPEN KNOWLEDGE GmbH
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...OPEN KNOWLEDGE GmbH
 
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von MicroservicesDie Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von MicroservicesOPEN KNOWLEDGE GmbH
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Maschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifftMaschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifftOPEN KNOWLEDGE GmbH
 
Zukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit MicroservicesZukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit MicroservicesOPEN KNOWLEDGE GmbH
 
Modern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungModern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungOPEN KNOWLEDGE GmbH
 

Mehr von OPEN KNOWLEDGE GmbH (20)

Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
 
Machine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsMachine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.js
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale Netze
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
 
Serverless Survival Guide
Serverless Survival GuideServerless Survival Guide
Serverless Survival Guide
 
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von MicroservicesDie Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von Microservices
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Maschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifftMaschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifft
 
Zukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit MicroservicesZukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit Microservices
 
Modern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungModern Web: Trends der Webentwicklung
Modern Web: Trends der Webentwicklung
 

FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation

  • 1. Fehlende Daten? (K)Ein Problem! #WISSENTEILEN Lars Röwekamp | @mobileLarson
  • 2. @mobileLarson CIO New Technologies OPEN KNOWLEDGE Lars Röwekamp (Architecture, Microservices, Cloud, AI & ML) Das bin ich >
  • 3. Fehlende Daten Was genau bedeutet das eigentlich und wann bzw. warum ist das ein Problem? 00
  • 4. Fehlende Daten Was ist das überhaupt? 6 Blanks in CSV Datei NULL in RDBMS ??? egal wo NaN in Zahlen N/A in Daten
  • 5. Fehlende Daten Was ist das überhaupt? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 98.2 77 -99999 65 160 M 98.3 NaN 140 63 0 N/A 98.9 55 100
  • 6. Fehlende Daten Was ist das überhaupt? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 98.2 77 -99999 65 160 M 98.3 NaN 140 63 0 N/A 98.9 55 100
  • 7. Fehlende Daten Was ist das überhaupt? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 98.2 77 -99999 65 160 M 98.3 NaN 140 63 0 N/A 98.9 55 100
  • 8. Fehlende Daten Was ist das überhaupt? Height Weight Sex Pregnant Pulse BP Systolic 71 140 M N/A 71 120 61 120 F yes 77 110 65 160 M N/A 62 140 63 125 F no 55 100
  • 9. Fehlende Daten Was ist das überhaupt? Height Weight Sex Pregnant Pulse BP Systolic 71 140 M N/A 71 120 61 120 F yes 77 110 65 160 M N/A 62 140 63 125 F no 55 100 „Not Avialable“ oder „Not Applicable“?
  • 10. Fehlende Daten Was ist das überhaupt? Height Weight Sex Pregnant Pulse BP Systolic 71 140 M N/A 71 120 61 120 F yes 0 NaN 65 160 M N/A 62 140 63 125 F no 55 100
  • 11. Fehlende Daten Was ist das überhaupt? Height Weight Sex Pregnant Pulse BP Systolic 71 140 M N/A 71 120 61 120 F yes 0 NaN 65 160 M N/A 62 140 63 125 F no 55 100 „Missing Data“ oder „Computation Error“
  • 12. Fehlende Daten Welche Pattern gibt es? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 160 M 98.3 NaN 140 63 125 F 98.9 55 100
  • 13. Fehlende Daten Welche Pattern gibt es? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 98.2 77 110 65 160 M NaN 62 140 63 125 F 98.9 55 100 „Random Missing“ (aka Daten fehlen willkürlich)
  • 14. Fehlende Daten Welche Pattern gibt es? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 NaN M 98.3 NaN 140 63 125 F 98.9 55 100 „Uniform Missing“ (aka einheitliches Muster)
  • 15. Fehlende Daten Welche Pattern gibt es? Height Weight Sex Temperature Pulse BP Systolic 71 120 M 98.6 70 120 61 120 NaN NaN NaN 65 160 M 98.3 62 140 63 125 F 98.9 NaN NaN „Monotonic Missing“ (aka Subset Muster)
  • 16. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100
  • 17. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100 „Nix tun“ (aka der Algorithmus kümmert sich drum) Warnung: Funktioniert nur bei bestimmten Algorithmen.
  • 18. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 160 M 98.6 65 120 61 120 F 98.2 77 110 65 140 M 98.5 62 140 63 125 F 98.9 55 100 „Daten organisieren“ (aka der Mensch kümmert sich drum) Warnung: Nur sehr begrenzt möglich, z.B. durch Follow-Ups.
  • 19. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100 „Datensatz entfernen“ (aka Complete Case Analysis) Warnung: <5%, sonst zu viel Info-Verlust & Bias.
  • 20. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 NaN 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100 „Variable entfernen“ (aka Complete Feature Analysis) Warnung: evtl. Verlust wichtiger Eigenschaften -> Imputation?
  • 21. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 72 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100 „berechnen“ (aka Statistical Imputation) Warnung: relativ einfach, aber stark limitiert.
  • 22. Fehlende Daten Was kann ich tun? Height Weight Sex Temperature Pulse BP Systolic 71 NaN M 98.6 71 120 61 120 F 98.2 77 110 65 NaN M NaN 62 140 63 125 F 98.9 55 100 „modellieren“ (aka ML-Method Imputation) Warnung: Kann beliebig komplex werden.
  • 23. Fehlende Daten Rubin‘s Taxonomy (1976) Missing Completely at Random Missing at Random Missing not at Random MCAR MAR MNAR
  • 24. MCAR Missing Completely at Random Das Fehlen der Daten ist unabhängig von beobachteten/bekannten und unabhängig von nicht beobachten/bekannten Daten. MCAR impliziert, dass die fehlenden Daten nicht systematisch mit Variablen im Datensatz zusammenhängen. Fehlende Daten Rubin‘s Taxonomy
  • 25. MAR Missing at Random Das Fehlen der Daten ist abhängig von den beobachteten/bekannten Daten aber nicht von nicht beobachten/bekannten Daten. MAR impliziert, dass die fehlenden Daten systematisch mit Variablen im Datensatz zusammenhängen. Fehlende Daten Rubin‘s Taxonomy
  • 26. MNAR Missing not at Random Das Fehlen der Daten ist abhängig von nicht beobachteten/bekannten Daten. MNAR impliziert, dass die fehlenden Daten systematisch mit Variablen außerhalb des Datensatzes zusammenhängen. Fehlende Daten Rubin‘s Taxonomy
  • 27. Fehlende Daten MCAR fehlende Daten können ggf. entfernt oder berechnet werden MAR fehlende Daten können ggf. via ML modelliert werden MNAR weiteres Domänenwissen ist notwendig
  • 28. Fehlende Daten Herausforderung MNAR „Wähle einen willkürlichen Wert zwischen 1 und 10.“
  • 29. Fehlende Daten Herausforderung MNAR Domänenwissen innerhalb der Daten: • mehr gerade als ungrade Werte (11 vs. 5) • mean = 6.0
  • 30. Fehlende Daten Herausforderung MNAR Domänenwissen innerhalb der Daten: • mehr gerade als ungrade Werte (11 vs. 5) • mean = 6.0 Domänenwissen außerhalb der Daten: • Menschen tendieren dazu eher mittlere Werte zu wählen
  • 31. Fehlende Daten Herausforderung MNAR Domänenwissen innerhalb der Daten: • mehr gerade als ungrade Werte (11 vs. 5) • mean = 6.0 • Geschlecht lässt sich ggf von dem Vornamen ableiten Domänenwissen außerhalb der Daten: • Menschen tendieren dazu eher mittlere Werte zu wählen • evtl. gibt es Statistiken über genderspezifische Vorlieben?
  • 32. Fehlende Daten Herausforderung MNAR Domänenwissen innerhalb der Daten: • mehr gerade als ungrade Werte (11 vs. 5) • mean = 6.0 • Geschlecht lässt sich ggf von dem Vornamen ableiten Domänenwissen außerhalb der Daten: • Menschen tendieren dazu eher mittlere Werte zu wählen • evtl. gibt es Statistiken über genderspezifische Vorlieben? • In China: 6 & 8 Glückszahlen / 4 & 10 Unglückszahlen
  • 33. Fehlende Daten Takeaways Es gilt den Grund für das Fehlen von Daten zu analysieren und Muster zu verstehen. Der Typ der fehlenden Daten gemäß Rubin – MCAR, MAR, MNAR - gibt die Optionen vor. Fehlende Daten vom Typ MNAR benötigen zusätzliches Domänenwissen, um sie sinnvoll zu berechnen/modellieren.
  • 34. Visualisierung Wie bekomme ich einen Eindruck davon, was fehlt? 01
  • 35. Visualisierung Poor-Man‘s-Version Domäne: London Housing Data • 1071 Datensätze
  • 36. Visualisierung Poor-Man‘s-Version Domäne: London Housing Data • 1071 Datensätze • < 100 Missing Data • < 300 Missing Data • < 600 Missing Data • >= 600 Missing Data
  • 37. Visualisierung Sorted Bar Plot missingno.bar(london_housing, color='deepskyblue', sort='descending')
  • 42. Visualisierung Takeaways Visualisierung als Teil der EDA hilft dabei, das Ausmaß der fehlenden Daten schnell und gezielt abzuschätzen. Die verschiedenen Diagrammtypen geben Hinweise auf die Muster der fehlenden Daten. Erkenntnisse können zur Herleitung der passenden Imputations-Strategie genutzt werden.
  • 43. Univariate Imputation Wie lassen sich fehlende Werte einfach und sinnvoll ersetzen? 02
  • 44. Imputation Definition „Data imputation is the process of replacing missing or incomplete data points in a dataset with estimated or substituted values. These estimated values are typically derived from the available data, statistical methods, or machine learning algorithms.“
  • 45. „Univariate feature imputation implies that we are only considering the values of a single column when performing imputation.“ „Multivariate feature imputation, on the other hand, involves taking into account other features in the dataset when performing imputation.“ Imputation Definition
  • 46. Interpolation via Linear, LOCF & NOCB Werte sind in einer kontinuierlichen (Zeit-)Reihe „Hallo Nachbar!“ (aka Vorgänger / Nachfolger) Zeit
  • 47. Werte sind in einer kontinuierlichen (Zeit-)Reihe „Immer weiter so“ (aka Last Observation Carried Forward) Zeit Forward Filling Interpolation via Linear, LOCF & NOCB
  • 48. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Forward Filling „Immer weiter so“ (aka Last Observation Carried Forward) Interpolation via Linear, LOCF & NOCB
  • 49. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Forward Filling „Immer weiter so“ (aka Last Observation Carried Forward) Interpolation via Linear, LOCF & NOCB
  • 50. Werte sind in einer kontinuierlichen (Zeit-)Reihe „Ein Blick zurück“ (aka Next Observation Carried Backwards) Zeit Backward Filling Interpolation via Linear, LOCF & NOCB
  • 51. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Backward Filling „Ein Blick zurück“ (aka Next Observation Carried Backwards) Interpolation via Linear, LOCF & NOCB
  • 52. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Backward Filling „Ein Blick zurück“ (aka Next Observation Carried Backwards) Interpolation via Linear, LOCF & NOCB
  • 53. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Linear Filling „Irgendwo dazwischen“ (aka Linear Filling) Interpolation via Linear, LOCF & NOCB
  • 54. Werte sind in einer kontinuierlichen (Zeit-)Reihe Zeit Linear Filling „Irgendwo dazwischen“ (aka Linear Filling) Interpolation via Linear, LOCF & NOCB
  • 55. PRO CONS sehr einfache Verfahren für Zeitreihen geeignet Annahme zeitlicher Kontinuität potenzieller Bias Probleme bei Saisonalität Forward, wenn der letzte Wert passend zu sein schein. Backward, wenn der nächste Wert passend zu sein schein. Linear, wenn aufsteigende/fallende Tendenz. Linear & Seasonal Adjustment, bei Saisonalität Interpolation via Linear, LOCF & NOCB
  • 56. Univariante Imputation Mean, Median et al nur für „numerische“ Features und MCAR, wenn <5% „Reine Mathematik“ (aka Statistic Stubstitution) Age Sex 25 M NaN N/A 61 M 27 F 28 M
  • 57. nur für „numerische“ Features und MCAR, wenn <5% „Reine Mathematik“ (aka Statistic Stubstitution) Age Sex 25 M NaN N/A 61 M 27 F 28 M Age Sex 25 M 36,8 / 30 N/A 61 M 27 F 28 M Mean = 36,8 Median = 30,0 Univariante Imputation Mean, Median et al
  • 58. „Mehrheitsprinzip“ (aka Mode Imputation) 3 x Male 1 x Female geeignet (auch) für „categorical“ Features und MCAR, wenn <5% Univariante Imputation Mean, Median et al Age Sex 25 M 30 M 61 M 27 F 28 M Age Sex 25 M 30 N/A 61 M 27 F 28 M
  • 59. Mean, Median, Mode Mean Median Mode Univariante Imputation Mean, Median et al
  • 60. PRO CONS sehr einfaches Verfahren erhält die Datenstruktur ignoriert Abhängigkeiten kann Daten verzehren Mean, bei MCAR und Normalverteilung numerischer Werte. Median, bei skewed Data oder Outliern. Mode, bei Imputation von Categorical Variables Univariante Imputation Mean, Median et al
  • 61. Simple Technics Takeaways Für fortlaufende Werte / Zeitreihen eignen sich Interpolation-Verfahren, wie Linear, LOCF & NOCB Für MCAR Missingness oder bei tolerierbarem Bias eignen sich Univariante Imputation oder Deletion.
  • 62. Simple Technics by Example LOCF & NOCB Imputation MODE Imputation aka most frequent MIN & MAX Value Imputation Mean Value Imputation
  • 64. Multi Imputation Regression, Classification et al „Ich weiß etwas!“ (aka Feature Abhängigkeit) Age Income Gender 33 12.771 F 18 12.000 M N/A 13.542 M
  • 65. Multi Imputation Regression, Classification et al „Ich weiß etwas!“ (aka Feature Abhängigkeit) Age Income Gender 33 12.771 F 18 12.000 M N/A 13.542 M Age Income 10 20 30 40 50 10T 20T
  • 66. Multi Imputation Regression, Classification et al „Ich weiß etwas!“ (aka Feature Abhängigkeit) Age Income Gender 33 12.771 F 18 12.000 M 35,5 13.542 M Age Income 10 20 30 40 50 10T 20T Achtung: setzt Linearität voraus und ist sensitive für Outlier!
  • 67. Multi Imputation Hot Deck, Cold Deck Age Income Gender 33 12.771 F 18 12.000 M 33 NaN M 40 15.000 F 42 16.627 M „Ich kenne da einen!“ (aka Vorbild Abhängigkeit)
  • 68. Multi Imputation Hot Deck, Cold Deck Age Income Gender 33 12.771 F 18 12.000 M 33 NaN M 40 15.000 F 42 16.627 M „Ich kenne da einen!“ (aka Vorbild Abhängigkeit) Age Income Gender 33 12.771 F 18 12.000 M 33 12.771 M 40 15.000 F 42 16.627 M Donor 33 / 12.771
  • 69. Multi Imputation Hot Deck, Cold Deck Age Income Gender 33 12.771 F 18 12.000 M 20 NaN M 40 15.000 F 42 16.627 M „Ich kenne da einen!“ (aka Vorbild Abhängigkeit) Age Income Gender 33 12.771 F 18 12.000 M 20 12.000 M 40 15.000 F 42 16.627 M Donor 20 / 12.000 Achtung: setzt „Gleichheit“ voraus, Gefahr des „single Donator“.
  • 70. Multi Imputation Regression vs. Hot Deck Source: https://pub.aimind.so/hot-deck-imputation-bridging-the-gaps-in-missing-data-32bdfdee2f40
  • 71. Multi Imputation MICE* Age Income Gender 33 NaN F 18 12.000 N/A NaN 13.542 M „Step by Step!“ (aka mehrstufiges Verfahren) *Multiple Imputations by Chanied Equations
  • 72. Multi Imputation MICE Age Income Gender 33 NaN F 18 12.000 N/A NaN 13.542 M Step 1: Simple Imputation eg via Mean, Median, Mode Age Income Gender 33 12.771 F 18 12.000 F 25.5 13.542 M
  • 73. Multi Imputation MICE Age Income Gender 33 12.771 F 18 12.000 F 25.5 13.542 M Step 2: Set-Back 1st Feature* Age Income Gender 33 12.771 F 18 12.000 F NaN 13.542 M *Feature mit den wenigsten fehlenden Werten.
  • 74. Multi Imputation MICE Age Income Gender 33 12.771 F 18 12.000 F N/A 13.542 M Step 3: Advanced Imputation 1st Feature eg via Regression Age Income Gender 33 12.771 F 18 12.000 F 35.5 13.542 M
  • 75. Multi Imputation MICE Age Income Gender 33 12.771 F 18 12.000 F 35.5 13.542 M Step 4: Set-Back 2nd Feature* Age Income Gender 33 NaN F 18 12.000 F 35.5 13.542 M *Feature mit den wenigsten fehlenden Werten.
  • 76. Multi Imputation MICE Age Income Gender 33 NaN F 18 12.000 F 35.5 13.542 M Step 5: Advanced Imputation 2nd Feature eg via Regression Age Income Gender 33 13.103 F 18 12.000 F 35.5 13.542 M
  • 77. Multi Imputation MICE Age Income Gender 33 NaN F 18 12.000 N/A NaN 13.542 M “Multiple Imputation by Chained Equations“ Age Income Gender 33 12.771 F 18 12.000 F 25.5 13.542 M Age Income Gender 33 12.771 F 18 12.000 F NaN 13.542 M Age Income Gender 33 12.771 F 18 12.000 F N/A 13.542 M Age Income Gender 33 12.771 F 18 12.000 F 35.5 13.542 M Age Income Gender 33 NaN F 18 12.000 F 35.5 13.542 M Age Income Gender 33 NaN F 18 12.000 F 35.5 13.542 M Age Income Gender 33 13.103 F 18 12.000 F 35.5 13.542 M Age Income Gender 33 13.103 F 18 12.000 M 35.5 13.542 M mean imputation age back to NaN linear regression age – income, gender income back to NaN linear reg. predict age (35.5 != 25.5) linear regression income – age, gender linear reg. predict income (13.102 != 12.771) … same for gender
  • 79. Multi Imputation The Big Picture (so far) with Trend with Trend & Seasonality Categorical Continuous Mean, Median, Mode, Random Sample Impute Linear Interpolation Season Adjustment & Interpolation N/A as Class / Level, Multiple Imputation Logistic Regression Mean, Median, Mode, Multiple Imputation Linear Regression without Trend Handling Missing Data Deletion Imputation Deleting Rows Pairwise Deletion Deleting Columns Time-Series Problem General Problem
  • 80. Multi-Variant Imputation nutzen mehrere Features, wie z.B. bei Regression / Classification oder Hot Deck Imputation Multi-Variant Imputation mit verketteten Gleichungen aka MICE eignen sich gut bei mehreren fehlenden Features. Multi-Variant eignet sich gut für MAR und kann verwendet werden, um Statistik in das Modell zu bringen. Multi Imputation Takeaways
  • 81. Hot Deck Imputation Cold Deck Imputation Multi Imputation by Example
  • 82. Model Imputation Wie lassen sich fehlende Werte via ML-Verfahren sinnvoll ersetzen? 04
  • 83. Model Imputation K-Nearest Neighbors Klasse A Klasse B „Hallo Nachbarn!“ (aka Gesetzt der Nähe) Idee: Nachbarn ähneln sich. Frage: Welcher Nachbar ist am häufigsten? Achtung: bei kleinem K ungenau, bei großem K langsam!
  • 85. Model Imputation Miss Forrest „Train, Predict, Repeat!“ (aka x*Random Forrest) Source: https://sourabharsh.medium.com/model-based-methods-for-imputation-685a15680037
  • 86. Model Imputation Miss Forrest Achtung: MissForrest priorisiert Datenqualität über Geschwindigkeit! „Train, Predict, Repeat!“ (aka x*Random Forrest)
  • 87.
  • 88. „The previous result can be verified here as Miss Forest (1) traces closer to the original data, followed by the Mice Forest (2) and then KNN (3).“
  • 89. Model Imputation LLMs & Transformers „Ich weiß die Antwort!“ (aka LLM based Imputation) Age Country Income 30 Austria 40.300 E 54 Germany 107.000 E 24 Spain 38.000 E 40 Austria NaN Die Antwort lautet: „40, Austria, 68000“ *R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf
  • 90. Model Imputation LLMs & Transformers „Ich weiß die Antwort!“ (aka LLM based Imputation) Age Country Income 30 Austria 40.300 E 54 Germany 107.000 E 24 Spain 38.000 E 40 Austria NaN Die Antwort lautet: „40, Austria, 68000“ Step 1: Converter (Data-to-Text) Step 2: Tokenizer (Text-to-Token) Step 3: Transformer Model (Train) Step 4: Transformer Model (Ask) *R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf
  • 91. Model Imputation LLMs & Transformers „Ich weiß die Antwort!“ (aka LLM based Imputation) Age Country Income 30 Austria 40.300 E 54 Germany 107.000 E 24 Spain 38.000 E 40 Austria NaN *R Package VIM: Visualization and Imputation of Missing Values - https://cran.r-project.org/web/packages/VIM/VIM.pdf Age Country Income 30 Austria 40.300 E 54 Germany 107.000 E 24 Spain 38.000 E 40 Austria 68.000 https://www.igminresearch.com/articles/pdf/igmin140.pdf
  • 92. Model Imputation Takeaways Model Imputation sind in der Regel mächtiger als ihre statistischen Freunde, aber ggf auch deutlich langsamer. Model Imputation eignen sich bei weniger offensichtlichen Abhängigkeiten und Ungleichheit. Model Imputation eignet sich gut für MAR und kann verwendet werden, um ML in das Modell zu bringen.
  • 93. K-Nearest Neighbor Imputation Multiple Imputation via IterativImputer Model Imputation by Example
  • 95. Anonymisierung via Imputation Zip DoB Sex Ethnicity Visit Date Diagnosis Procedure Medication Total Charge Name Address Date Registered Party Affiliation Date last Vote Voter List Medical List Source: https://privacytools.seas.harvard.edu/sites/projects.iq.harvard.edu/files/privacytools/files/paper1.pdf uniqueliy identifies 87% of U.S. population (15 Attributes uniqueliy identifies 99,98%)
  • 96. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000
  • 97. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000
  • 98. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 N/A 38.000 E 40 60306 68.000
  • 99. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 N/A 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 N/A 107.000 E 24 10243 38.000 E 40 60306 68.000
  • 100. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 N/A 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 N/A 107.000 E 24 10243 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80539 107.000 E 24 10243 38.000 E 40 N/A 68.000
  • 101. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 N/A 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 N/A 107.000 E 24 10243 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80539 107.000 E 24 10243 38.000 E 40 N/A 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 10243 38.000 E 40 60310 68.000
  • 102. Anonymisierung via Imputation „Knapp daneben, ist auch ok!“ (aka vergleichbare Werte) Age Zip Code Income 30 26122 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 N/A 40.300 E 54 80336 107.000 E 24 10115 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 N/A 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 N/A 107.000 E 24 10243 38.000 E 40 60306 68.000 Age Zip Code Income 30 26129 40.300 E 54 80539 107.000 E 24 10243 38.000 E 40 N/A 68.000 Age Zip Code Income 30 26129 40.300 E 54 80336 107.000 E 24 10243 38.000 E 40 60310 68.000 Gut genug!
  • 103. Conclusion Was ihr aus dem heutigen Talk mitnehmen solltet. 99
  • 104. Imputation Conclusions • Nix tun hilft selten (eg. XGBoost) • Löschen nur bei wenig % Missing • Statistic Imputation bei MCAR • Model-based Imputation bei MAR • Domain-Analyse bei MNAR • Ein Bild sagt mehr als 1000 Worte! • Sagt ein Wort mehr als Daten?
  • 106. Vielen Dank! #WISSENTEILEN by open knowledge GmbH @_openKnowledge | @mobileLarson Lars Röwekamp, CIO New Technologies
  • 107. scikit-learn Imputer: • SimpleImputer: mean, median, most-frequent, constant • IterativeImputer: round-robin, multiple times • KNNImputer: k-NN & weighted k-NN Missingo – Missing Data Visualization: • https://github.com/ResidentMario/missingno fancyImpute – Feature Imputation Framework: • https://pypi.org/project/fancyimpute/ autoImpute – Feature Imputation Framework: • https://github.com/kearnz/autoimpute Links & Verweise
  • 108. A N S P R E C H P A R T N E R LARS RÖWEKAMP CIO New Technologies Kaiserliche Post, Poststraße 1, 26122 Oldenburg www.openknowledge.de +49 (0) 441 4082 0 lars.roewekamp@openknowledge.de www.linkedin.com/in/lars-roewekamp/ Ich lade dich auf einen remote Kaffee ein ;-) Hier direkt Termin sichern!
  • 109. Folie 01: © anilakkus, iStockphoto.com All other pictures, drawings and icons originate from • pexels.com, pixabay.com, unsplash.com, • flaticon.com or were made by my own. BILDNACHWEIS