Hallo
Ich möchte nichtparametrische Methoden wie Entscheidungsbaum, Random Forest, Naive Bayes, SVM, neuronales Netzwerk und Boosted Tree auf meinen Datensatz anwenden. Welche Vorverarbeitungsschritte sollte ich durchführen, bevor ich diese Modelle anwende?
Hallo @maryam_nourmand ,
Wenn Sie über die Verwendung von „Make Validation Column“ mit K-Falten-Kreuzvalidierungsmethoden sprechen, können Sie alle Ihre Prädiktoren (X-Variablen) im Bereich „Schichtungsspalten“ verwenden (um sicherzustellen, dass die Falten in Bezug auf die Verteilungen der X-Variablen homogen sind) und Ihre Antwort(en) im Bereich „Y“: JMP ordnet und verteilt die Zeilen zwischen den Falten basierend auf den Antwortwerten, um sicherzustellen, dass die Falten in Bezug auf die Antwort(en) homogen sind, und vermeidet so verzerrtes Lernen und Auswerten während der Kreuzvalidierung: Starten Sie die Plattform „Make Validation Column“ (jmp.com).
Wenn Sie mehrere Zeilen haben, die derselben ID/Gruppe entsprechen, behalten Sie diese Datenstruktur bei, indem Sie diese ID-/Gruppenspalte(n) im Bereich „Gruppierungsspalten“ verwenden.
Ich hoffe, das beantwortet Ihre Frage.
Hallo
Danke für deine Antwort
wenn ich (K-fach Kreuzvalidierung) verwenden möchte und mein Antworttyp kategorisch ist
Wenn ich die Spalte für y auswählen möchte, sollte ich alle meine Prädiktoren und meine Antwortvariable dort einfügen oder nur meine Antwortvariable?
Hallo @maryam_nourmand ,
Wenn von Vorverarbeitung die Rede ist, umfasst die Vorbereitung der Daten für die Analyse in der Regel mehrere Schritte:
0. Partitionieren Sie Ihre Daten : Teilen Sie Ihre Daten in Trainings-, Validierungs- und Testsätze auf oder planen Sie Ihre Validierungs- (K-fach-Kreuzvalidierung, Leave-One-Out, ...) und Teststrategie. Dies sollte zuerst durchgeführt werden, um sicherzustellen, dass eine eventuelle Datentransformation, die Sie anschließend durchführen, nicht zu Datenverlusten führt, d. h. ein Teil der Informationen aus Validierungs- und Testsätzen aus den Vorverarbeitungsschritten kann während des Modelltrainings gefunden werden (Datenbereiche, Verteilung, Imputationstechniken, ...). Für diesen Schritt können Sie „Validierungsspalte erstellen“ (jmp.com) verwenden.
- Datenbereinigung : Ich identifiziere und korrigiere Fehler oder Inkonsistenzen im Datensatz, um sicherzustellen, dass die Daten von hoher Qualität sind und für die Analyse oder das Modelltraining geeignet sind.
- Fehlende Werte : Möglichkeit, Zeilen auszuschließen, Daten zu imputieren oder nichts zu tun. Achten Sie darauf, Ihre fehlenden Werte mit der Plattform „Explore Missing Values“ (jmp.com) zu analysieren, um zu prüfen, ob es sich um MAR (Missing At Random), MCAR (Missing Completely At Random) oder MNAR (Missing Not At Random) handelt. Je nach Art der fehlenden Werte/Muster sind einige Optionen möglicherweise besser als andere.
- Baumbasierte Modelle reagieren im Vergleich zu den anderen von Ihnen genannten Algorithmen viel flexibler auf fehlende Werte und können fehlende Werte als informative Werte behandeln: Informative Missing (jmp.com) .
- Für die Plattform „Neural Networks“ können Sie beim Starten der Plattform die Option „Informativ fehlend“ aktivieren, um die Imputation und Kodierung fehlender Werte zu aktivieren. Wenn Sie diese Option nicht aktivieren, wird die Zeile von der Analyse ausgeschlossen.
- Naive Bayes hat kein Problem mit fehlenden Daten, wenn nur wenige Werte fehlen.
- SVM schließt standardmäßig Zeilen aus, in denen mindestens ein Wert fehlt.
- Ausreißer : Möglichkeit, sie auszuschließen, auszugleichen/zu gewichten (mit Häufigkeit oder durch Transformationen) oder nichts zu tun. Sie können sie mit einer Vielzahl von Methoden mit der Plattform „Explore Outliers“ (jmp.com) erkennen.
- Baumbasierte Modelle reagieren nicht sehr empfindlich auf Ausreißer, da sie die Daten in Datensegmente/-bereiche aufteilen, sodass die vorgenommene Partitionierung nicht geändert wird (sie erfolgt im höchsten oder niedrigsten Bereich/Segment, ändert jedoch nicht den Grenzwert): https://datascience.stackexchange.com/questions/37394/are-decision-trees-robust-to-outliers
- Neuronale Netze reagieren empfindlich auf Ausreißer, daher müssen Sie diese überprüfen und behandeln.
- Naive Bayes und SVM können empfindlich auf Ausreißer reagieren.
- Duplikate : Möglichkeit, sie auszuschließen, ihre Häufigkeit zu reduzieren oder nichts zu tun. Sie können sie (und andere Muster) mithilfe der Plattform „Explore Patterns“ (jmp.com) erkennen.
- Duplikate können sich auf alle Algorithmen auswirken, da sie den Lernvorgang beeinflussen, indem sie bestimmte Muster, die in doppelten Punkten gefunden werden, gegenüber anderen Punkten bevorzugen oder verstärken. Sie können auch zu Überanpassung und falscher Bewertung der Modellleistung führen, wenn sie bei der Aufteilung der Daten in Trainings-, Validierungs- und Testsätze nicht berücksichtigt werden. Die Methodik des maschinellen Lernens unterscheidet sich stark von der statistischen Modellierung, bei der Duplikate zur Bewertung von Varianz und Unsicherheit verwendet werden.
- Skalierung/Normalisierung von Variablen : Bringen Sie alle Feature-/Variablenwerte in einen ähnlichen Bereich, ohne Unterschiede in den Wertebereichen zu verzerren, um zu vermeiden, dass Features mit großen Bereichen diejenigen mit kleineren Bereichen/Variationen dominieren.
Dies ist hilfreich für Algorithmen, die auf Distanzen oder Ähnlichkeiten basieren, wie SVM, KNN, neuronale Netzwerke, (lineare und logistische) Regression, und wird von JMP bereits standardmäßig durchgeführt (Beispiel mit KNN: https://community.jmp.com/t5/India-JMP-Users-Group-Library/Predictive-modelling-with-machine-learning-in-JMP-K-Nearest/ta-p/720639 )
Baumbasierte Modelle und wahrscheinlichkeitsbasierte Algorithmen wie Naive Bayes erfordern möglicherweise keine Skalierung.
- Umgang mit kategorialen Daten : Beim Kodieren müssen Sie kategoriale Daten mithilfe der Label-Kodierung, One-Hot-Kodierung, Dummy-Kodierung usw. kodieren. Glücklicherweise ist dies in JMP bereits erledigt und vorbereitet, Sie müssen es nicht selbst tun (Beispiel mit Regressionsmodellen):
Statistische Details zur Kodierung nominaler Effekte (jmp.com)
Ordinalfaktoren (jmp.com)
Ähnliche Fragen und Antworten von Stackexchange:
maschinelles Lernen – Welche Algorithmen außer SVM benötigen eine Funktionsskalierung? – Cross Validated (stackexchange.com)
Welchen Einfluss haben Ausreißer und fehlende Werte auf diese Klassifikatoren? - Data Science Stack Exchange
Wie ich bereits in einem anderen Beitrag (und auf LinkedIn) geschrieben habe: Wenn Sie einen ersten schnellen Test mit einem ML-Algorithmus durchführen möchten, versuchen Sie es mit Random Forest:
- Robust gegenüber Ausreißern
- Geringe Rauschempfindlichkeit (Bagging hilft, die Varianz zu reduzieren)
- Weniger anfällig für Überanpassung dank Bootstrapping und verfügbarer „Out-Of-Bag“-Leistungsvalidierung (Beispiele, die in jedem Bootstrap-Beispiel nicht verwendet werden).
- Gute Generalisierungsleistung
- Bewältigt problemlos nichtlineare Situationen dank des Ensembles von Entscheidungsbäumen, die nichtlineare Grenzen mit „if-else“-Regeln verarbeiten können
- Steuert die Multikollinearität zwischen Variablen durch die zufällige Auswahl der Merkmalsuntermenge an jedem Knoten.
- Geringe Feinabstimmung: Die Leistung reagiert nicht sehr empfindlich auf die Feinabstimmung von Hyperparametern (siehe meinen neuesten Beitrag zur Feinabstimmung von Random-Forest-Hyperparametern mit DoE).
- Fähigkeit, mit spärlichen Daten umzugehen
- Einfachere Interpretierbarkeit im Vergleich zu anderen Algorithmen (durch Verwendung der „integrierten“ Feature Importance)
- Relativ schnelle und effiziente Berechnung (abhängig von der Anzahl der Bäume und der verwendeten Tiefe): Da einzelne Bäume unabhängig voneinander sind, kann der Trainingsprozess parallelisiert werden.
Wenn Sie also nach einem genauen, robusten, vielseitigen und skalierbaren Algorithmus mit geringer Tendenz zur Überanpassung für die Analyse Ihrer Datensätze suchen, kann Random Forest ein guter Ausgangspunkt und Maßstab sein. Beginnen Sie immer zuerst mit den einfachen Algorithmen und einer guten Validierungsstrategie, um Ihre Modelle zu bewerten und zu vergleichen, bevor Sie zu komplexen Algorithmen wie neuronalen Netzwerken übergehen, die möglicherweise mehrere Validierungsebenen benötigen (um sie zu erstellen und zu optimieren).
Ich hoffe, diese lange Antwort wird Ihnen helfen,