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 derLGOCV
Kreuzvalidierung? Aus meiner Lektüre Ich gehe davon aus 1)caret
iteriert durch Tuning - Parameter aufdata_set1
und dann 2) hält diese params fixierte und 3) erzeugt ein „sub - Modell“ params von # 1 für jede Verwendung vonp = 0.8
Probedata_set1
und Tests Vorhersagen über die restlichen 0,2 bis Teilungsgenauigkeit . Ist das eine vernünftige Zusammenfassung?Antworten:
Meine allgemeinen Gedanken:
Wenn Sie also verschiedene Modelle evaluieren, möchten Sie sie möglicherweise optimieren, verschiedene Arten der Vorverarbeitung usw. ausprobieren, bis Sie das finden, was Sie für ein gutes Modell halten. Resampling kann Ihnen dabei helfen, die richtige Richtung einzuschlagen.
Es besteht jedoch immer noch die Möglichkeit einer Überanpassung, und die Wahrscheinlichkeit, dass dies geschieht, hängt stark davon ab, wie viele Daten (und Prädiktoren) Sie haben. Wenn Sie ein wenig Daten haben, gibt es einige Möglichkeiten, darüber nachzudenken:
Ich falle in das zweite Lager, aber das erste ist überhaupt nicht falsch.
Wenn Sie eine Menge Daten haben, ist das nicht wirklich wichtig (es sei denn, Sie haben eine kleine Ereignisrate).
Für Sie:
Du hast ein DOE. Die Art des Designs würde helfen, die Frage zu beantworten. Versuchen Sie, zwischen Entwurfspunkten zu interpolieren oder Entwurfspunkte vorherzusagen, die bisher noch nicht getestet wurden?
Sie haben ein Replikat. Ich bin gefallen, als würde ein zufälliger Wald mit einem Vorschlaghammer auf einen Nagel schlagen und könnte zu einer Überanpassung führen. Ich würde etwas Glatteres wie ein SVM oder ein (keuchendes) neuronales Netzwerk ausprobieren.
Max
quelle
method = "svmRadial"
. Ich hoffe, einige andere bewerten zu können, einschließlichmethod = neuralnet
, obwohl ich in früheren Versuchen festgestellt habe, dass das neuronale Netzwerk sehr empfindlich auf `set.seed () reagiert. Kurz gesagt, wir versuchen 1) die Beziehung zwischen Eingaben / Mehrfachantworten besser zu verstehen und 2) den wahrscheinlichsten Entwurfsraum bestmöglich zu erraten, um die gewünschten Eigenschaften zu erzielen, damit wir neue, fokussiertere DOEs im Vergleich zu typischeren ausführen können Expansive / Shotgun-Ansatz in Bezug auf Eingabe Min / Max-Pegel zu versuchen.