Closed kliegr closed 7 years ago
What is the exact error message? Yours sounds like someone used setTimeLimit()
. arules does not set this because it only applies to top-level computations.
http://stackoverflow.com/questions/17819790/reached-cpu-time-limit-in-r
I am not myself calling setTimeLimit()
, but I am wrapping arules into evalWithTimeout()
(I am aware of the new maxtime parameter), which might be doing that or something similar.
Before I updated R (arules, but also some other packages) exceeding time limit set in evalWithTimeout always produced only the TimeoutException, which is the correct exception according to the evalWithTimeout doc.
Now, I am getting mostly this new exception of class "simpleError", and only scarcely the TimeoutException. The exact message (err$message
) of the new "simpleError" exception is "reached CPU time limit".
I already have a workaround/error handler for the new exception type, and as you write, this problem is likely unrelated to changes in arules. It may be caused by some other update in my R installation, possibly the error might be also somewhere on my side. It is nothing important.
Maybe the developer of R.util has changed something in withTimeout()
. It looks like you can specify if it throws an error when a timeout happens. However, the timeout does not work for the actual apriori call (since it uses C code). This is why I have introduced the new maxtime
parameter.
With the new version of arules (1.5-0) I am sometimes getting error "reached CPU time limit".
In my evaluations on 27 UCI datasets, I get it on waveform-5000 (MDLP-discretized) with the following setting: confidence = 0.5 , support = 0 , minlen = 2 , maxlen = 4, maxtime=102 (i.e. the new feature turned off). I always get it during 10 fold crossvalidation, but each time on a different fold.
The same setup with the previous version of arules worked fine. This error is distinct from the new warning related to maxtime.