我希望使用来自ksvm
库的kernlab
函数来执行示例分类。
library(kernlab)
# PCA analysis on the first 3 component vectors
pca <- prcomp(t(top.ranked.genes))
dat.loadings <- pca$x[, 1:3]
# Sample classification
svp <- ksvm(dat.loadings, label, type="C-svc", scaled=T, kernel="rbfdot", kpar="automatic", prob.model=F, class.weights=NULL, fit=T, shrinking=T)
错误在if ((type(ret) ==“C”区) == "nu-svc“区(Ret)类型(Ret) ==:除真/假需要时缺少值:警告消息: In .local(x,.):NAs通过胁迫引入
> dput(top.ranked.genes[1:3,1:3])
structure(c(4120.8, 1073.2, 1434.3, 3785.7, 1305.3, 1550.5, 3326.5,
1163.6, 1017.7), .Dim = c(3L, 3L), .Dimnames = list(c("221918_at",
"201554_x_at", "214722_at"), c("NB_GSM97800", "NB_GSM97803",
"NB_GSM97804")))
> dput(dat.loadings[1:3,1:3])
structure(c(-158664.494929915, -148977.612734589, -163264.320664849,
-3583.353411796, -14921.765919203, -20224.318452977, 61652.7194473044,
18971.6967789661, 27273.153856793), .Dim = c(3L, 3L), .Dimnames = list(
c("NB_GSM97800", "NB_GSM97803", "NB_GSM97804"), c("PC1",
"PC2", "PC3")))
发布于 2021-08-12 08:05:12
似乎label
不是分类所需的factor
。来自ksvm
的文档
y
可以是一个因子(用于分类任务),也可以是一个数字向量(用于回归)。..。根据y
是否是一个因素,类型的默认设置是C-svc
还是eps-svr
。
试试label <- as.factor(label)
。
https://stackoverflow.com/questions/68753405
复制相似问题