Periksa status proses pelatihan dalam R [ditutup]

10

Saya melatih model menggunakan caretpaket dalam R selama hampir 3 hari. Perhitungan berjalan secara paralel (beberapa proses). Sayangnya tidak ada output di konsol R (model SVM dari kernlabpaket) jadi saya tidak tahu apakah saya sudah selesai 10% atau 90%.

Apakah ada cara untuk mencari tahu bagaimana proses perhitungannya?

Saya menggunakan OS X jadi mungkin membuang tumpukan proses dan mencoba untuk menemukan nilai parameter saat ini sedang dievaluasi atau iterasi k-fold. Tapi bagaimana caranya?

EDIT: skrip untuk pelatihan:

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
sumber

Jawaban:

8

Saat menggunakan caretuntuk pelatihan, Anda dapat mengatur opsi verbose = TRUEdi dalam trainfungsi. Untuk detail lebih lanjut, ada juga verboseIterargumen dalam trainControlpanggilan tersebut. Max Kuhn memiliki situs web hebat yang dibangun dari halaman github yang dapat membantu Anda lebih mengenal fungsi-fungsi di sini .

cdeterman
sumber
1
Terimakasih telah menjawab. Saya tahu tentang opsi-opsi itu tetapi tampaknya tidak bekerja untuk pemrosesan paralel. Saya telah memperbarui posting saya dengan potongan kode yang digunakan.
Khozzy
Ah, itu tidak jelas (cuplikan Anda menghilangkan allowParallelargumen). Sampai sekarang, saya tidak mengetahui adanya fungsionalitas dalam caret untuk memberikan output paralel verbose. Ini karena foreachloop memiliki verbosekode yang sulit FALSE. Jika ini penting bagi Anda, taruhan terbaik Anda adalah mengirimkan masalah pada halaman github dan melihat apakah perubahan dapat diimplementasikan.
cdeterman
Mengikuti rekomendasi Anda, saya telah membuat masalah di Github. Saya pikir itu fungsionalitas yang cukup diinginkan.
Khozzy
Bagus, sebagai rasa hormat jika fungsionalitas dibuat, akan lebih bagus jika Anda bisa memposting ulang di sini dengan jawaban sehingga orang lain dapat melihat bagaimana solusinya bekerja.
cdeterman
2
Anda dapat memodifikasi fitfungsi untuk mencetak lebih banyak. Jika Anda tidak melihat log apa pun dan Anda miliki verboseIter = TRUE, apakah Anda menggunakan RStudio? RStudio mengalihkan output secara berbeda dari R; Saya mendapatkan log di basis R tetapi tidak di RStudio. Ada juga topdi unix sehingga Anda dapat memeriksa untuk memastikan Anda tidak kehabisan memori sistem (Anda perlu lebih banyak untuk berjalan secara paralel) dan bahwa para pekerja aktif.
topepo