CARET automatycznie użyje wcześniej określonej siatki strojenia, aby zbudować różne modele przed wybraniem ostatecznego modelu, a następnie wytrenowaniem ostatecznego modelu na pełnych danych treningowych. Mogę dostarczyć własną siatkę tuningową z tylko jedną kombinacją parametrów. Jednak nawet w tym przypadku CARET „wybiera” najlepszy model spośród parametrów strojenia (nawet jeśli w tym przypadku jest tylko jeden), a następnie dopasowuje ostateczny model do wszystkich danych treningowych. To dodatkowy krok, którego chciałbym uniknąć.
Jak po prostu pominąć krok wyszukiwania modelu między odmianami siatki strojenia i zmusić CARET do budowania wszystkich danych szkoleniowych (innych niż bezpośrednie wywoływanie podstawowej biblioteki modeli)?
Odpowiedzi:
Możesz podać
method="none"
wtrainControl
. Na przykład:Nie jestem pewien, kiedy to zostało zaimplementowane.
źródło
Najlepszym sposobem byłoby jawne dostarczenie ramki danych tuneGrid. Na przykład losowy las ma tylko jeden parametr dostrajania, „mtry”, który kontroluje liczbę funkcji wybranych dla każdego drzewa.
Aby ustawić mtry na określoną wartość, możesz wybrać wartość domyślną randomForest (? RandomForest):
gdzie M jest jedyną wartością parametru strojenia, którego chcesz użyć.
dla wielu parametrów strojenia wykonaj:
źródło
method="none"
jest lepszym rozwiązaniem.Nie sądzę, aby było to możliwe (przynajmniej nie było to możliwe od kilku wersji temu). Można zmniejszyć wpływ na wydajność, konfigurując tylko jedną partycję ponownego próbkowania w danych treningowych (ale daszek nadal trenowałby model dwa razy)
Brzmi to jak przydatna funkcja, więc wysłałbym ping do autora pakietu.
źródło