Wenn wir mit einem Geschäftsproblem beginnen, müssen wir es in erster Linie in ein Drawback des maschinellen Lernens umwandeln. Was versuchen wir zu lösen? Warum versuchen wir, das zu lösen? Wer wird das nutzen?
Sobald alle diese Fragen geklärt sind, müssen wir möglicherweise eine Zielmetrik entwickeln, die wir optimieren möchten. Sie können mit Ihren Stakeholdern zusammenarbeiten und dies ausarbeiten.
Wenn Sie mit dem Ziel des maschinellen Lernens vertraut sind, müssen wir uns während des Datenexplorationsschritts um mehrere Schritte kümmern. Dies ist viel wichtiger, als das beste Lernmodell für maschinelles Lernen zu verwenden und es zu optimieren.
Im Buch „Designing Machine Studying Methods“ von Chip Huyen wird erwähnt, wie wichtig es ist, mit fehlenden Werten umzugehen. Jeder, der behauptet, er sei ein erfahrener Datenwissenschaftler und wisse nicht, wie er mit fehlenden Werten umgehen soll, lügt.
Es gibt drei wichtige Arten fehlender Werte:
MCAR (fehlt völlig zufällig)
MAR (fehlt zufällig)
MNAR (fehlt nicht zufällig)
Es gibt nicht genügend Methoden, um schlüssig festzustellen, ob es sich bei den Daten um mcar, mar oder mnar handelt. Hier stellt sich bereits eine Frage: https://stats.stackexchange.com/questions/462507/how-to-decide-whether-missing-values-are-mar-mcar-or-mnar
Sie können jedoch eine Visualisierung durchführen, um anzunehmen, dass es sich um mcar, mar oder mnar handelt. Ich werde hier nicht im Element darauf eingehen, aber Sie können dies gerne näher erläutern.
Sie können die Python-Bibliothek „missingno“ verwenden, um fehlende Werte in Ihren Datenspalten/-funktionen visuell zu verstehen
Häufig verwendete Techniken zum Umgang mit fehlenden Werten –
Entfernen – Kann eine Possibility sein, wenn nicht viele Werte fehlen
Einfache Imputierung – Sie können fehlende Werte mit Mittelwert, Median und Modus imputieren. Im Allgemeinen wird der Median dem Mittelwert vorgezogen, wenn unsere Daten viele Ausreißer enthalten.
Sie können fehlende Werte auch mithilfe der Zeitreihenimputation ergänzen
Beispiel: Füllen mit dem letzten Wert (bfill) oder dem nächsten Wert (bfill)
Darüber hinaus können Sie auch mit der linearen Methode interpolieren
Es besteht auch die Möglichkeit zur Interpolation mit „nächst“, „Null“, „slinear“, „quadratisch“, „kubisch“, „baryzentrisch“, „polynomial“.
Überprüfen https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html für mehr Particulars
Alternativ können Sie die fehlenden Werte mithilfe von knn (ok nächster Nachbar) vorhersagen. Vergessen Sie nicht, die Daten auf 0 bis 1 zu skalieren, da knn den euklidischen Abstand als Verlustfunktion verwendet.
MICE ist eine der beliebtesten und am häufigsten verwendeten Imputationstechniken. Dabei werden eine Reihe von Regressionsmodellen ausgeführt, um fehlende Werte nacheinander zu imputieren
Im Allgemeinen wird empfohlen, fehlende Werte zu behandeln, bevor Sie Ausreißer in Ihren Daten beheben. Der Umgang mit fehlenden Werten ist ein wesentlicher Schritt bei der Datenvorverarbeitung, da fehlende Daten die Genauigkeit und Zuverlässigkeit Ihrer Analyse beeinträchtigen können. Sobald die fehlenden Werte ordnungsgemäß behandelt wurden, können Sie mit der Beseitigung von Ausreißern fortfahren.
Ausreißer können uni- oder multivariat sein.
Univariat
Um mit univariaten Ausreißern umzugehen, können Sie Datenfiltertechniken unter Verwendung von Mittelwert und Standardabweichung verwenden. Wir können auch iqr verwenden
Sie können alle Werte außerhalb von „mean-3*std“ und „imply +3*std“ filtern
Oder Sie können „mean-1.5*iqr“, „imply+1.5*iqr“ verwenden und alle Werte außerhalb dieses Bereichs entfernen
Sie haben die Wahl, eine dieser Methoden zu bevorzugen, je nachdem, wie viele Werte Sie löschen möchten
Multivariat
Um mit multivariaten Ausreißern umzugehen, können Sie Techniken wie dbscan, Isolation Forest und lof (lokaler Ausreißerfaktor) verwenden.
Um multivariate Ausreißer zu visualisieren, können wir Techniken zur Dimensionsreduktion wie pca verwenden
Dbscan ist ein dichtebasierter Clustering-Algorithmus. Wir können hier die Hyperparameter epsilon und min_samples festlegen. Es ist wichtig, Epsilon nicht zu niedrig einzustellen. Dies kann dazu führen, dass die meisten unserer Daten fälschlicherweise als Ausreißer erkannt werden
Der Isolationswald ähnelt dem Zufallswald, mit der Ausnahme, dass versucht wird, Bäume zu finden, die sich seltsam verhalten als andere, z. B. mit weniger Teilungen
Der lokale Ausreißerfaktor (LOF) berechnet lokale Dichten und Punkte, die in Bezug auf Nachbarn abweichen, werden als Ausreißer betrachtet
Ich habe in Kaggle-Notizbüchern beobachtet, dass eine Funktion hinzugefügt wurde, nur um das Fehlen anzuzeigen. Sie fügen grundsätzlich eine zusätzliche Spalte mit (1, 0)-Werten hinzu, um festzustellen, ob das Function zuvor im Originaldatensatz fehlte. Das Ausfüllen fehlender Werte kann zu einer Verzerrung des Modells führen, sodass die Verwendung dieser Technik den Effekt der Verzerrung verringern könnte
Im nächsten Teil besprechen wir Function-Engineering und Function-Auswahltechniken. Bevor Sie ein ML-Modell erstellen, ist es wichtig, eine gründliche Datenanalyse durchzuführen. Ich glaube nicht, dass das, was ich geschrieben habe, umfassend ist. Ich habe keinen Code eingefügt, weil chatgpt da ist, um zu helfen :D. Mein Ziel ist es, die notwendigen Schritte abzudecken, die ML-Ingenieure durchlaufen sollten, bevor sie Daten zum Lernen an das ML-Modell senden. Wenn es sehr wichtige Dinge gibt, die ich verpasse, weisen Sie in den Kommentaren darauf hin. Ich lerne auch 🙂
Hinweis: Ich habe Chatgpt nicht verwendet, um diesen Beitrag zu schreiben. Alle Wörter stammen von mir 🙂 Ich möchte nicht sagen, dass die Verwendung von ChatGPT schlecht ist, aber die Verwendung hat mich weniger zufrieden gemacht. Vielleicht werde ich meine Meinung in Zukunft ändern