Czy istnieje sposób na wyłączenie funkcji dostrajania parametrów (siatki) w CARET?

15

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)?

Ram Ahluwalia
źródło
1
Pytanie jest raczej niejasne, co prawdopodobnie wyjaśnia, dlaczego otrzymałeś odpowiedzi odpowiadające na różne pytania, a mianowicie 1) Jak mam powiedzieć, aby pominąć sprawdzanie poprawności modelu ORAZ dostrojenie? oraz 2) Jak wyłączyć tylko tuning modeli?
Johan Larsson

Odpowiedzi:

17

Możesz podać method="none"w trainControl. Na przykład:

train(Species ~ ., data=iris, method="rf", tuneGrid=data.frame(mtry=3),
  trControl=trainControl(method="none"))

Nie jestem pewien, kiedy to zostało zaimplementowane.

Peyton
źródło
9

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):

model <- train(x = X, y = Y, method = 'rf', tuneGrid = data.frame(.mtry = M))

gdzie M jest jedyną wartością parametru strojenia, którego chcesz użyć.

dla wielu parametrów strojenia wykonaj:

tuneGrid = data.frame(.par1 = P1, .par2 = P2, .par3 = P3)
Brent
źródło
Witamy na naszej stronie, Brent! Dzięki za odpowiedź na to stare pytanie.
whuber
4
Poniższa sugestia method="none"jest lepszym rozwiązaniem.
topepo
1

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.

Jewgienij
źródło
Przepraszamy, ta odpowiedź jest już nieaktualna
smci,