首页 文章

在R中使用ksvm的大型支持向量机的概率模型无效

提问于
浏览
1

我使用R中kernlab软件包中的 ksvm 函数训练支持向量机,对大量的观测值(300k)进行了很多特征(1-8) . 我想使用生成的概率模型,但对于大型数据集,生成的概率模型具有意外的格式 .

这是应该发生的事情:

n <- 1000
df <- data.frame(label=c(rep("x",n),rep("y",n)),value=c(runif(n),runif(n)+2))
m <- ksvm(label~value,df,prob.model=TRUE)

> prob.model(m)
[[1]]
[[1]]$A
[1] -6.836228

[[1]]$B
[1] 0.003163229

但是,对于 n 的大值(例如100k;谨防高内存使用和长执行时间), prob.model(m)[[1]] 的值是长度为 2n 的数字向量,似乎是 df 中每次观察的可能性 . 什么可能导致这个?

会话信息:

R version 2.15.2 (2012-10-26)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=C                 LC_NAME=C                  LC_ADDRESS=C
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] graphics  grDevices datasets  utils     stats     methods   base

other attached packages:
[1] kernlab_0.9-16   e1071_1.6-1      class_7.3-5      data.table_1.8.8

loaded via a namespace (and not attached):
[1] tools_2.15.2

Edit: 这是我正在谈论的分类任务, df 具有以下形式:

label value
"x"    0.21
...
"x"   -1.20
"y"    2.42
...

1 回答

相关问题