Rのトレーニングプロセスのステータスを確認する[終了]


10

caretRでパッケージを使用してモデルをほぼ3日間トレーニングしています。計算は並列に実行されます(複数のプロセス)。残念ながら、Rコンソール(kernlabパッケージのSVMモデル)には出力がないため、10%と90%のどちらが完了したかはわかりません。

どういうわけか計算のプロセスを理解する方法はありますか?

私はOS Xを使用しているので、プロセススタックをダンプして、現在評価されているパラメーター値またはk倍の反復を見つけようとしている可能性があります。しかし、どうやって?

編集:トレーニング用のスクリプト:

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)

回答:


8

caretトレーニングに使用する場合verbose = TRUEtrain関数内でオプションを設定できます。詳細についてはverboseItertrainControl呼び出し内の引数もあります。Max Kuhnには、githubページから構築された優れたWebサイトがあり、ここで機能をよりよく理解するのに役立ちます。


1
回答ありがとうございます。これらのオプションについては知っていますが、並列処理では機能しないようです。使用したコードのスニペットで投稿を更新しました。
Khozzy

ああ、それは不明確でした(allowParallelただし、スニペットは引数を省略しています)。現時点では、キャレット内に並列冗長出力を提供する機能はありません。これは、foreachループがverboseとしてハードコーディングされているためFALSEです。これがあなたにとって重要である場合、あなたの最善の策はgithubページで問題を提出し、変更を実装できるかどうかを確認することです。
cdeterman 2014

あなたの推奨に従って、Githubに問題を作成しました。かなり望ましい機能だと思います。
Khozzy

いいですね。機能が作成された場合の礼儀として、ここに回答を再投稿して他のユーザーがソリューションの動作を確認できるようにすると便利です。
cdeterman 2014

2
fit関数を変更して、さらに印刷することができます。ログが表示されずverboseIter = TRUE、がある場合、RStudioを使用していますか?RStudioは、Rとは異なる方法で出力を転送します。ベースRでログを取得しますが、RStudioでは取得しません。topUNIXにもありますので、システムメモリを使い果たしていないこと(並列で実行するにはさらにメモリが必要)を確認し、ワーカーがアクティブであることを確認できます。
topepo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.