To może być głupie pytanie, ale przy generowaniu modelu z karetką i używaniu czegoś podobnego LOOCV
lub (nawet bardziej do LGOCV
rzeczy ) , jaka jest korzyść z dzielenia danych na zestawy pociągów i testów, jeśli jest to zasadniczo etap weryfikacji krzyżowej w każdym razie?
Przeczytałem niektóre powiązane pytania i zasugerowali, że niektóre metody weryfikacji krzyżowej (np. Opisane tutaj na stronie Caret ) służą do wyboru funkcji . Ale w moim przypadku używam randomForest
( method = "rf"
) i kernlab
( method = svmRadial
), które nie są wymienione w grupie, która próbuje usunąć predyktory.
Moje pytanie brzmi więc, czy używam czegoś takiego cross_val <- trainControl(method = "LGOCV", p = 0.8)
, czy to nie to samo, co szkolenie na 80% moich danych, testowanie wynikowego modelu na pozostałych 20% i robienie tego w kółko, aby dowiedzieć się, jak dobrze model działa?
Jeśli tak, to czy istnieje potrzeba dzielenia moich danych na zestawy pociągów / testów?
PS Częściowo pytam, gdy przeprowadzam modele na empirycznie wygenerowanych prototypach DOE (pomyśl o twardych towarach, w których modyfikujemy dane wejściowe, a następnie używam metod testowych do pomiaru różnych atrybutów dotyczących prototypu).
Jako taki, nie mam ogromnego zestawu danych z wieloma nakładającymi się poziomami predyktorów do modelowania - często przeprowadzamy jedną próbę w każdym punkcie zainteresowania DOE, ponieważ generowanie danych jest w tym przypadku kosztowne. Dlatego chciałbym wykorzystać wszystkie dane, jakie mogę, do dokładnego modelu, ale chciałem tutaj sprawdzić, czy nie brakuje mi czegoś oczywistego i zrobienia złego modelu, nie dzieląc rzeczy.
Edycja: W odpowiedzi na pytanie @ topepo modeluję fizycznie zmierzone atrybuty związku w oparciu o dostosowanie chemicznych składników formuły. Nie mogę omówić mojej faktycznej aplikacji, ale stworzę przykład oparty na formułowaniu wewnętrznej farby lateksowej. Prowadzę zaprojektowane eksperymenty, w których mieszamy 4-5 chemikaliów, być może bawimy się% ciałami stałymi i czasem podgrzewania roztworu polimeru w celu dostosowania stopnia polimeryzacji.
Następnie możemy zmierzyć reologię, masę cząsteczkową, twardość powłoki malarskiej, wodoodporność itp.
Mamy przyzwoite repliki kilku zmiennych, ale niewiele prawdziwych replik w tym sensie, że każdy poziom DOE był dokładnie taki sam. Całkowity zestaw danych to ~ 80 obserwacji i może 4-5 to dokładne powtórzenia. Przeprowadziliśmy 15 różnych testów i być może wykonano 5-6 z nich dla każdej pojedynczej obserwacji. Niektóre odpowiedzi dotyczą 25–50% danych.
Odtąd chcielibyśmy modelować wpływ naszych 7 predyktorów na właściwości wyjściowe, a następnie optymalizować, aby kierować reklamy do nowych przestrzeni projektowych, które najprawdopodobniej nadadzą pożądane właściwości.
(Stąd moje pytanie TUTAJ . Gdy już mam wytrenowany model, fajnie byłoby zrobić „odwrócenie” i podać pożądane odpowiedzi, aby uzyskać jak najlepsze przypuszczenie na możliwych poziomach wejściowych, aby spróbować dalej).
data_set1
, co uważam za krok wykonywany przezLGOCV
weryfikację krzyżową? Z mojego czytania zakładam, że 1)caret
iteruje poprzez dostrajanie parametrów,data_set1
a następnie 2) utrzymuje te parametry jako stałe, a 3) tworzy „podmodel” przy użyciu parametrów z nr 1 dla każdejp = 0.8
próbkidata_set1
i testuje prognozy dla pozostałych 0,2 do dokładności pomiaru . Czy to rozsądne podsumowanie?Odpowiedzi:
Moje ogólne przemyślenia:
Więc kiedy oceniasz różne modele, możesz je dostroić, wypróbować różne rodzaje wstępnego przetwarzania itp., Aż znajdziesz to, co uważasz za dobry model. Ponowne próbkowanie może pomóc we właściwym kierunku podczas tego procesu.
Nadal jednak istnieje szansa na nadmierne dopasowanie, a na prawdopodobieństwo wystąpienia tego zdarzenia duży wpływ ma ilość posiadanych danych (i predyktorów). Jeśli masz trochę danych, możesz o tym pomyśleć na kilka sposobów:
Wpadłem do drugiego obozu, ale pierwszy wcale nie jest zły.
Jeśli masz mnóstwo danych, to tak naprawdę nie ma to większego znaczenia (chyba że masz małą częstotliwość zdarzeń).
Dla Was:
Masz DOE. Rodzaj projektu pomógłby odpowiedzieć na pytanie. Czy próbujesz interpolować między punktami projektowymi lub przewidywać punkty projektowe, które do tej pory nie były testowane?
Masz jedną replikę. Upadłem, jak losowy las uderza młotem w sanie i może doprowadzić do nadmiernego dopasowania. Spróbowałbym czegoś płynniejszego, jak SVM lub (nerwowa) sieć neuronowa.
Max
źródło
method = "svmRadial"
. Mam nadziejęmethod = neuralnet
, że ocenię kilka innych, w tym chociaż w poprzednich próbach sieć neuronowa była bardzo wrażliwa na `set.seed (). Krótko mówiąc, staramy się: 1) lepiej zrozumieć związek między danymi wejściowymi / wielokrotnymi odpowiedziami i 2) dokonać dokładnych domysłów w najbardziej prawdopodobnej przestrzeni projektowej, aby uzyskać pożądane właściwości, abyśmy mogli uruchomić nowe, bardziej ukierunkowane DOE w porównaniu z bardziej typowymi podejście ekspansywne / shotgun pod względem poziomów wejściowych min / maks. do wypróbowania.