[R] segfault during example(svm)
Peter Ehlers
ehlers at ucalgary.ca
Fri Feb 18 21:44:49 CET 2011
On 2011-02-18 12:32, Juergen Rose wrote:
> Am Freitag, den 18.02.2011, 11:53 -0800 schrieb Peter Ehlers:
>> On 2011-02-18 11:16, Juergen Rose wrote:
>>> If do:
>>>> library("e1071")
>>>> example(svm)
>>>
>>> I get:
>>>
>>>
>>> svm> data(iris)
>>>
>>> svm> attach(iris)
>>>
>>> svm> ## classification mode
>>> svm> # default with factor response:
>>> svm> model<- svm(Species ~ ., data = iris)
>>>
>>> svm> # alternatively the traditional interface:
>>> svm> x<- subset(iris, select = -Species)
>>>
>>> svm> y<- Species
>>>
>>> svm> model<- svm(x, y)
>>>
>>> svm> print(model)
>>>
>>> Call:
>>> svm.default(x = x, y = y)
>>>
>>>
>>> Parameters:
>>> SVM-Type: C-classification
>>> SVM-Kernel: radial
>>> cost: 1
>>> gamma: 0.25
>>>
>>> Number of Support Vectors: 51
>>>
>>>
>>> svm> summary(model)
>>>
>>> Call:
>>> svm.default(x = x, y = y)
>>>
>>>
>>> Parameters:
>>> SVM-Type: C-classification
>>> SVM-Kernel: radial
>>> cost: 1
>>> gamma: 0.25
>>>
>>> Number of Support Vectors: 51
>>>
>>> ( 8 22 21 )
>>>
>>>
>>> Number of Classes: 3
>>>
>>> Levels:
>>> setosa versicolor virginica
>>>
>>>
>>>
>>>
>>> svm> # test with train data
>>> svm> pred<- predict(model, x)
>>>
>>> svm> # (same as:)
>>> svm> pred<- fitted(model)
>>>
>>> svm> # Check accuracy:
>>> svm> table(pred, y)
>>> y
>>> pred setosa versicolor virginica
>>> setosa 50 0 0
>>> versicolor 0 48 2
>>> virginica 0 2 48
>>>
>>> svm> # compute decision values and probabilities:
>>> svm> pred<- predict(model, x, decision.values = TRUE)
>>>
>>> svm> attr(pred, "decision.values")[1:4,]
>>> setosa/versicolor setosa/virginica versicolor/virginica
>>> 1 1.196152 1.091460 0.6705626
>>> 2 1.064621 1.056332 0.8479934
>>> 3 1.180842 1.074534 0.6436474
>>> 4 1.110699 1.053143 0.6778595
>>>
>>> svm> # visualize (classes by color, SV by crosses):
>>> svm> plot(cmdscale(dist(iris[,-5])),
>>> svm+ col = as.integer(iris[,5]),
>>> svm+ pch = c("o","+")[1:150 %in% model$index + 1])
>>>
>>> *** caught segfault ***
>>> address (nil), cause 'unknown'
>>>
>>> Traceback:
>>> 1: .Call("La_rs", x, only.values, PACKAGE = "base")
>>> 2: eigen(-x/2, symmetric = TRUE)
>>> 3: cmdscale(dist(iris[, -5]))
>>> 4: plot(cmdscale(dist(iris[, -5])), col = as.integer(iris[, 5]),
>>> pch = c("o", "+")[1:150 %in% model$index + 1])
>>> 5: eval.with.vis(expr, envir, enclos)
>>> 6: eval.with.vis(ei, envir)
>>> 7: source(tf, local, echo = echo, prompt.echo = paste(prompt.prefix,
>>> getOption("prompt"), sep = ""), continue.echo = paste(prompt.prefix,
>>> getOption("continue"), sep = ""), verbose = verbose, max.deparse.length
>>> = Inf, encoding = "UTF-8", skip.echo = skips, keep.source = TRUE)
>>> 8: example(svm)
>>>
>>> Possible actions:
>>> 1: abort (with core dump, if enabled)
>>> ..
>>>
>>> I did already "update.packages(), what can I still do.
>>
>> Works just fine for me. What's your sessionInfo()?
>> Here's mine:
>> > sessionInfo()
>> R version 2.12.1 Patched (2010-12-27 r53883)
>> Platform: i386-pc-mingw32/i386 (32-bit)
>>
>> locale:
>> [1] LC_COLLATE=English_Canada.1252 LC_CTYPE=English_Canada.1252
>> [3] LC_MONETARY=English_Canada.1252 LC_NUMERIC=C
>> [5] LC_TIME=English_Canada.1252
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods base
>>
>> other attached packages:
>> [1] e1071_1.5-24 class_7.3-3
>>
>> loaded via a namespace (and not attached):
>> [1] tools_2.12.1
>
>
>> sessionInfo()
> R version 2.12.1 (2010-12-16)
> Platform: x86_64-pc-linux-gnu (64-bit)
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods
> base
>
> It is working at some of my systems and is failing at the most.
>
It would be good to know what version of e1071 you're using;
presumably it's 1.5-24. I've run the example on both 32-bit
and 64-bit R 12.2.1pat and 2.13.0dev with no problems.
Could you be having a problem with your graphics device?
Peter Ehlers
More information about the R-help
mailing list