Verificar um status do processo de treinamento em R [fechado]

10

Estou treinando um modelo usando o caretpacote em R por quase 3 dias. Os cálculos estão sendo executados em paralelo (vários processos). Infelizmente, não há saída no console R (modelo SVM do kernlabpacote), então não sei se estou com 10% ou 90% concluído.

Existe uma maneira de descobrir de alguma forma qual é o processo dos cálculos?

Estou usando o OS X, talvez despejando a pilha de processos e tentando encontrar os valores dos parâmetros atualmente em avaliação ou a iteração do k-fold. Mas como?

EDIT: o script para treinamento:

ctrl <- trainControl(method = "cv", number = 10, selectionFunction = "best", 
                     classProbs = TRUE, summaryFunction =  twoClassSummary,
                     verboseIter = TRUE)

grid_svm <- expand.grid(.C = logseq(2^-15, 2^3, 10))

svm <- train(CLASS ~ ., data = dataset, method = "svmLinear", preProcess = c("center", "scale"),
            metric = "ROC", trControl = ctrl, tuneGrid = grid_svm, verbose = TRUE)
Khozzy
fonte

Respostas:

8

Ao usar o carettreinamento, você pode definir a opção verbose = TRUEna trainfunção. Para mais detalhes, também há o verboseIterargumento dentro da trainControlchamada. Max Kuhn tem um ótimo site criado a partir da página do github que pode ajudá-lo a se familiarizar mais com as funções aqui .

cdeterman
fonte
1
Obrigado por responder. Conheço essas opções, mas elas não parecem funcionar para processamento paralelo. Atualizei minha postagem com um trecho do código usado.
Khozzy
Ah, isso não estava claro (no allowParallelentanto, seu snippet omite o argumento). A partir de agora, não conheço nenhuma funcionalidade dentro do sinal de intercalação para fornecer saída detalhada paralela. Isso ocorre porque os foreachloops são verbosecodificados como FALSE. Se isso for importante para você, sua melhor aposta pode ser enviar um problema na página do github e ver se uma alteração pode ser implementada.
cdeterman
Seguindo sua recomendação, criei um problema no Github. Eu acho que é uma funcionalidade bastante desejada.
Khozzy
Bom, como cortesia se a funcionalidade for criada, seria ótimo se você pudesse postar novamente aqui com a resposta para que outras pessoas possam ver como a solução funciona.
cdeterman
2
Você pode modificar a fitfunção para imprimir mais. Se você não vê nenhum registro e possui verboseIter = TRUE, está usando o RStudio? O RStudio desvia a saída de maneira diferente de R; Recebo logs na base R, mas não no RStudio. Também existe topno unix para que você possa verificar se não esgotou a memória do sistema (é necessário executar mais em paralelo) e se os trabalhadores estão ativos.
Topepo