Dies mag vielleicht eine dumme Frage sein, aber wenn Sie ein Modell mit Caret erstellen und so etwas wie LOOCV
oder (noch genauer) verwenden LGOCV
, was ist der Vorteil der Aufteilung von Daten in Zug- und Testsätze, wenn dies im Wesentlichen der Kreuzvalidierungsschritt ist macht sowieso?
Ich habe einige der zugehörigen Fragen gelesen und sie schlugen vor, dass einige der Kreuzvalidierungsmethoden (z. B. die hier auf der Caret-Site beschriebenen ) zum Zweck der Merkmalsauswahl dienen . In meinem Fall verwende ich jedoch randomForest
( method = "rf"
) und kernlab
( method = svmRadial
), die nicht in der Gruppe aufgeführt sind, die versucht, Prädiktoren zu löschen.
Meine Frage ist also, ob ich so etwas verwende cross_val <- trainControl(method = "LGOCV", p = 0.8)
, ist das nicht dasselbe wie das Training von 80% meiner Daten, das Testen des resultierenden Modells bei den verbleibenden 20% und das wiederholte, um eine Vorstellung davon zu bekommen, wie gut das ist Modell funktioniert?
Wenn ja, müssen meine Daten in Zug- / Testsätze aufgeteilt werden?
PS Ich frage teilweise, während ich Modelle für empirisch generierte DOE-Prototypen durchführe (denken Sie an harte Güter, bei denen wir Eingaben optimieren und dann Testmethoden verwenden, um verschiedene Attribute des Prototyps zu messen).
Daher habe ich keinen großen Datensatz mit vielen überlappenden Prädiktorebenen, aus denen modelliert werden kann. Wir führen häufig einen Versuch an jedem DOE-Punkt von Interesse durch, da die Datengenerierung in diesem Fall teuer ist. Daher möchte ich alle Daten, die ich kann, für ein genaues Modell verwenden, wollte aber hier überprüfen, dass mir nichts Offensichtliches fehlt und ein schlechtes Modell entsteht, indem ich die Dinge nicht aufteile.
Bearbeiten: Als Antwort auf die Frage von @ topepo modelliere ich physikalisch gemessene Attribute einer Verbindung basierend auf der Anpassung der chemischen Eingaben der Formel. Ich kann meine eigentliche Anwendung nicht diskutieren, aber ich werde ein Beispiel ausarbeiten, das auf der Formulierung von Latex-Innenfarben basiert. Ich führe entworfene Experimente durch, bei denen wir 4-5 Chemikalien mischen, vielleicht mit% Feststoffen spielen und eine gewisse Zeit zum Erhitzen der Polymerlösung, um den Polymerisationsgrad einzustellen.
Wir könnten dann Rheologie, Molekulargewicht, Härte der Lackbeschichtung, Wasserbeständigkeit usw. messen.
Wir haben anständige Replikate mehrerer Variablen, aber nur wenige echte Replikate in dem Sinne, dass jede DOE-Ebene genau gleich war. Der Gesamtdatensatz beträgt ~ 80 Beobachtungen und vielleicht sind 4-5 exakte Wiederholungen. Wir haben 15 verschiedene Tests durchgeführt, von denen vielleicht 5-6 für jede einzelne Beobachtung durchgeführt wurden. Einige der Antworten sind für 25-50% der Daten vorhanden.
Von hier aus möchten wir die Auswirkungen unserer 7 Prädiktoren auf die Ausgabeeigenschaften modellieren und dann optimieren, um auf neue Entwurfsbereiche abzuzielen, die am wahrscheinlichsten die gewünschten Eigenschaften ergeben.
(Daher meine Frage HIER . Sobald ich ein trainiertes Modell habe, wäre es schön, das "Gegenteil" zu tun und die gewünschten Antworten einzugeben, um die bestmögliche Schätzung der möglichen Eingangspegel zu erhalten, die als nächstes versucht werden sollen.)
data_set1
, wie betrachte ich den Schritt der LGOCV
Kreuzvalidierung? Aus meiner Lektüre Ich gehe davon aus 1) caret
iteriert durch Tuning - Parameter auf data_set1
und dann 2) hält diese params fixierte und 3) erzeugt ein „sub - Modell“ params von # 1 für jede Verwendung von p = 0.8
Probe data_set1
und Tests Vorhersagen über die restlichen 0,2 bis Teilungsgenauigkeit . Ist das eine vernünftige Zusammenfassung?