Fehlermeldung für neuronales Netz mit fehlenden Validierungszeilen – Problemumgehung vorschlagen?Hallo Community,
Ich teste mehrere Modelle im Rahmen einer JSL-Schleife in JMP 16 und verwende dabei verschiedene Validierungsspalten, um zu ermitteln, wie sich die R2-Werte je nach verwendeten Daten ändern. Jede Validierungsspalte enthält eine Teilmenge der Daten, wobei am Anfang und/oder Ende der Spalte einige Daten fehlen.
Andere Modelle, wie etwa Bootstrap, laufen gut, wenn fehlende Werte einfach ignoriert werden, aber das neuronale Netz gibt immer wieder eine Fehlermeldung aus (reproduziert im JMP-Beispieldatensatz CrimeData).


Ich kann das Problem umgehen, indem ich eine Filterspalte einfüge, alle fehlenden Werte auf 0 setze und sie nicht ausführe. Dies erfordert jedoch eine Filterspalte für jede Validierungsspalte (oder das dynamische Erstellen/Löschen einer Spalte bei jeder Iteration).

Neural(
Y( :Murder Rate ),
X(
:Robbery Rate, :"Agg-Aslt Rate"n, :Burglary Rate, :Larceny Rate,
:MVTheft Rate
),
Validation( :Validation ),
Informative Missing( 0 ),
Fit( NTanH( 3 ) ),
Where( :Filter == 1 )
)
Ist jemand anderes auf dieses Problem gestoßen und hat eine Lösung gefunden? Danke!
Datenzusammenführung und -bereinigungPrädiktive Modellierung und maschinelles LernenBetreff: Fehlermeldung für neuronales Netz mit fehlenden Validierungszeilen - Problemumgehung vorschlagen?Hallo @c_blanken ,
Es scheint, dass Ihre Validierungsspalte nicht alle Zeilen füllt, da Sie Ihre Validierungsspalte auf einige andere Spalten mit fehlenden Daten schichten. Meine Vermutung ist, dass JMP nicht weiß, wie es mit diesen Zeilen in der Validierungsspalte umgehen soll, da Daten fehlen.
Planen Sie die Modellierung eines Ergebnisses, bei dem Ihnen Daten fehlen? Wenn nicht, könnten Sie erwägen, die Zeilen auszuschließen, in denen Daten fehlen. Dies ist im Wesentlichen das, was Sie mit der Filterspalte tun, aber durch das Ausschließen dieser Zeilen benötigen Sie keine neue Filterspalte für jede Validierungsspalte, die Sie testen . Sie können den Zeilenstatus in JSL auch einfach auf Ausschließen festlegen, sodass er automatisiert ist und Sie dies nicht manuell tun müssen.
Wenn Sie die Daten immer noch modellieren müssen, wo Sie fehlende Daten haben, können Sie in Betracht ziehen, keine Spalten zu stratifizieren und nur Trainings-/Validierungsspalten nach dem Zufallsprinzip zu generieren. JMP weist jede Zeile dem richtigen Datensatz zu, selbst wenn Daten fehlen.
Hoffe das hilft!,
DS
Betreff: Fehlermeldung für neuronales Netz mit fehlenden Validierungszeilen - Problemumgehung vorschlagen?Hallo @c_blanken ,
Nur um einige Kommentare / Anmerkungen zu der großartigen Antwort von hinzuzufügen @SDF1 .
- Warum haben Sie einige Zeilen mit fehlenden Werten in Bezug auf die Validierungsspalte? Wurden sie nach der Spaltenerstellung hinzugefügt?
- Ich bin nicht überrascht zu sehen, dass die Plattform „Bootstrap Forest“ in der Lage ist, mit fehlenden Werten in der Validierungsspalte umzugehen, da dieses Modell Bootstrap-Beispiele der Trainingsdaten verwendet, um viele Entscheidungsbäume anzupassen. Neuronale Netze und andere Methoden verwenden die Daten "wie sie sind", und daher kann es vorkommen, dass Sie auf die Warnmeldung stoßen, die Sie erhalten.
Anstatt mehrere Validierungsspalten zu erstellen, um den Einfluss der Variabilität des Trainingssatzes auf die Modellleistungen zu bewerten, gibt es möglicherweise (mindestens) 2 weitere interessante Optionen für Sie:
1. Erstellen Sie eine "Formel" Validierungsspalte (jmp.com) anstelle der "festen" Validierungsspalte:

Dieser Ansatz hat zwei Vorteile:
- Sogar im Falle einer stratifizierten/Gruppierungs-Validierung ermöglicht es das automatische Hinzufügen von Trainings-/Validierungs- oder Testbezeichnungen in der Validierungsspalte für neu hinzugefügte Zeilen, abhängig von der Schichtungs-/Gruppierungsmethode und dem Verhältnis zwischen diesen Sätzen, die Sie verwendet haben.
- In der Modellierung können Sie auch einfacher unterschiedliche Resampling zwischen Trainings- und Validierungssets ausprobieren, indem Sie mit der rechten Maustaste auf die Leistungsmetriken klicken, die Sie mit verschiedenen Trainings- und Validierungssets auswerten möchten, auf "Simulieren" klicken und hier haben Sie die Möglichkeit So schalten Sie Ihre Validierungsspalte ein und aus:

Auf diese Weise erhalten Sie eine Datentabelle mit allen Simulationen, die auf verschiedenen Trainings- und Validierungssets durchgeführt wurden, und Sie können die mit diesen Simulationen erhaltene Leistungsvariabilität grafisch darstellen (hier für R² auf dem Spielzeugdatensatz "Boston Housing" mit Random Forest):

2. Verwenden Sie die Modell-Screening-Plattform (jmp.com) Plattform nur mit dem gewünschten Modell und der gewünschten Validierungsmethode (K-Falten, verschachtelte K-Falten mit der Option, sie zu wiederholen, oder Validierungsspalte) und starten Sie sie. Sie erhalten Zugriff auf die Ergebniszusammenfassung, aber auch auf die einzelnen Faltergebnisse:

Wenn Sie zum Beispiel einen Fold auswählen, um das Modell auszuführen (hier habe ich es mit fold3 versucht), erscheint auch eine neue Spalte in Ihrer Datentabelle, um zu wissen, welche Zeilen in diesem Fold als Training oder Validierung verwendet wurden (0: Training, 1: Validierung) :

Ich denke, diese Methoden könnten für Sie nützlich sein, mit weniger manueller Arbeit und größerer Flexibilität.