Umgang mit Fehlenden Werten
Fehlende Daten sind in realen Datensätzen häufig und können Ihre Analyse oder Modelle beeinflussen. Die drei Haupttypen fehlender Daten sind:
- Missing Completely at Random (MCAR): Das Fehlen steht in keinem Zusammenhang mit den Daten;
- Missing at Random (MAR): Das Fehlen steht nur mit beobachteten Daten in Zusammenhang;
- Missing Not at Random (MNAR): Das Fehlen hängt von den fehlenden Werten selbst ab.
Die Wahl der richtigen Strategie zum Umgang mit fehlenden Werten hängt vom Typ des Fehlens ab. Eine unsachgemäße Behandlung kann zu verzerrten Ergebnissen, schwächerer Analyse und unzuverlässigen Vorhersagen führen.
12345678import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
Imputation ist der Prozess, fehlende Werte durch Ersatzwerte wie den Mittelwert, Median oder Modus usw. zu ersetzen. Imputation hilft, die Struktur und Größe des Datensatzes für weitere Analysen oder Modellierungen zu erhalten.
Arten von Imputationsmethoden
Verschiedene Datentypen erfordern spezifische Imputationsstrategien, um fehlende Werte effektiv zu behandeln:
- Mittelwert-Imputation: Für numerische Merkmale; ersetzt fehlende Werte durch den Durchschnitt der beobachteten Werte;
- Median-Imputation: Für numerische Merkmale, insbesondere bei schiefen Daten; ersetzt fehlende Werte durch den Median;
- Modus-Imputation: Für kategoriale Merkmale; ersetzt fehlende Werte durch die am häufigsten vorkommende Kategorie oder den häufigsten Wert;
- Konstantwert-Imputation: Für numerische und kategoriale Merkmale; füllt fehlende Werte mit einem festen Wert wie
0,-1oder'unknown'; - Vorwärtsauffüllung (
ffill): Für Zeitreihen oder geordnete Daten; propagiert die letzte gültige Beobachtung nach vorne, um Lücken zu füllen; - Rückwärtsauffüllung (
bfill): Für Zeitreihen oder geordnete Daten; verwendet die nächste gültige Beobachtung, um Lücken rückwärts zu füllen; - Interpolation: Für numerische Merkmale, insbesondere in Zeitreihen; schätzt fehlende Werte basierend auf benachbarten Datenpunkten mithilfe linearer oder anderer mathematischer Methoden.
Wählen Sie die Imputationsmethode, die am besten zu Ihrem Datentyp und dem Kontext Ihrer Analyse passt.
123456789101112131415161718import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
Das Entfernen fehlender Werte ist schnell und einfach, kann jedoch zum Verlust wertvoller Daten führen, insbesondere wenn das Fehlen weit verbreitet ist. Imputation hilft, mehr Daten zu erhalten, kann jedoch Verzerrungen einführen, wenn sie nicht sorgfältig gewählt wird. Berücksichtigen Sie das Ausmaß und das Muster der fehlenden Werte sowie die Bedeutung des Merkmals, bevor Sie entscheiden, ob Sie entfernen oder imputieren.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 8.33
Umgang mit Fehlenden Werten
Swipe um das Menü anzuzeigen
Fehlende Daten sind in realen Datensätzen häufig und können Ihre Analyse oder Modelle beeinflussen. Die drei Haupttypen fehlender Daten sind:
- Missing Completely at Random (MCAR): Das Fehlen steht in keinem Zusammenhang mit den Daten;
- Missing at Random (MAR): Das Fehlen steht nur mit beobachteten Daten in Zusammenhang;
- Missing Not at Random (MNAR): Das Fehlen hängt von den fehlenden Werten selbst ab.
Die Wahl der richtigen Strategie zum Umgang mit fehlenden Werten hängt vom Typ des Fehlens ab. Eine unsachgemäße Behandlung kann zu verzerrten Ergebnissen, schwächerer Analyse und unzuverlässigen Vorhersagen führen.
12345678import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
Imputation ist der Prozess, fehlende Werte durch Ersatzwerte wie den Mittelwert, Median oder Modus usw. zu ersetzen. Imputation hilft, die Struktur und Größe des Datensatzes für weitere Analysen oder Modellierungen zu erhalten.
Arten von Imputationsmethoden
Verschiedene Datentypen erfordern spezifische Imputationsstrategien, um fehlende Werte effektiv zu behandeln:
- Mittelwert-Imputation: Für numerische Merkmale; ersetzt fehlende Werte durch den Durchschnitt der beobachteten Werte;
- Median-Imputation: Für numerische Merkmale, insbesondere bei schiefen Daten; ersetzt fehlende Werte durch den Median;
- Modus-Imputation: Für kategoriale Merkmale; ersetzt fehlende Werte durch die am häufigsten vorkommende Kategorie oder den häufigsten Wert;
- Konstantwert-Imputation: Für numerische und kategoriale Merkmale; füllt fehlende Werte mit einem festen Wert wie
0,-1oder'unknown'; - Vorwärtsauffüllung (
ffill): Für Zeitreihen oder geordnete Daten; propagiert die letzte gültige Beobachtung nach vorne, um Lücken zu füllen; - Rückwärtsauffüllung (
bfill): Für Zeitreihen oder geordnete Daten; verwendet die nächste gültige Beobachtung, um Lücken rückwärts zu füllen; - Interpolation: Für numerische Merkmale, insbesondere in Zeitreihen; schätzt fehlende Werte basierend auf benachbarten Datenpunkten mithilfe linearer oder anderer mathematischer Methoden.
Wählen Sie die Imputationsmethode, die am besten zu Ihrem Datentyp und dem Kontext Ihrer Analyse passt.
123456789101112131415161718import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
Das Entfernen fehlender Werte ist schnell und einfach, kann jedoch zum Verlust wertvoller Daten führen, insbesondere wenn das Fehlen weit verbreitet ist. Imputation hilft, mehr Daten zu erhalten, kann jedoch Verzerrungen einführen, wenn sie nicht sorgfältig gewählt wird. Berücksichtigen Sie das Ausmaß und das Muster der fehlenden Werte sowie die Bedeutung des Merkmals, bevor Sie entscheiden, ob Sie entfernen oder imputieren.
Danke für Ihr Feedback!