gpt4 book ai didi

r - 无法在 R 中训练 KSVM

转载 作者:行者123 更新时间:2023-12-04 09:29:27 25 4
gpt4 key购买 nike

我整天都在做这个。假设我有一个如下所示的训练数据

1.0000000 0.8260869 0
0.7333333 0.4666667 0
0.0000000 0.0000000 0
0.3076923 0.3076923 0
0.2307692 0.4615385 0
0.9333333 0.4666667 1
0.3157895 0.4210526 1
1.0000000 0.7000000 1
0.3157895 0.2631579 1
0.6666667 0.4444444 1
前几列是我们的特征集,每行的最后一列是我们试图学习/预测的标签。
但是,当我尝试使用我编写的以下脚本为上述数据训练 SVM 时:
library(kernlab)
library(Matrix)

kp = function(d, e){
gama = 0.25

DA = d[,1]
DB = d[,2]
DE = e[,1]
DF = e[,2]


q1 = (norm(as.matrix(DA-DE)))^2
q2 = (norm(as.matrix(DB-DF)))^2
q3 = (norm(as.matrix(DA-DF)))^2
q4 = (norm(as.matrix(DB-DE)))^2

s1 = min((q1+q2),(q3+q4))

s = (norm(as.matrix(s1)))^2

exp(-gama*s)
}

data <- read.csv(file = "dataset.dat", stringsAsFactors = TRUE, nrows = 10)

xtrain <- as.matrix(data[,1:2])

ytrain <- as.matrix(data[,687])

class(kp)<-"kernel"

ksvm(x = xtrain, y = ytrain, type = "C-svc", kernel = kp, C = 128, scale = FALSE)
我收到以下错误
Error in indexes[[j]] : subscript out of bounds
Calls: ksvm -> ksvm -> .local
Execution halted
我已经用谷歌搜索了它,但我无法想出一个解决方案。
题:
我做错了什么,我怎样才能让它工作!?

编辑 traceback()的结果如下:
3: .local(x, ...)
2: ksvm(x = xtrain, y = ytrain, type = "C-svc", kernel = kp, C = 128)
1: ksvm(x = xtrain, y = ytrain, type = "C-svc", kernel = kp, C = 128)
还有 dput(data)
structure(list(X0.8 = c(1, 0.7333333, 0, 0.3076923, 0.2307692), X0.7 = c(0.8260869, 0.4666667, 0, 0.3076923, .4615385)), .Names = c("X0.8",  "X0.7"), row.names = c(NA, 5L), class = "data.frame")

最佳答案

我遇到了同样的问题,问题实际上是我的数据集中存在一些无限元素。

您可以使用诸如 apply(xtrain,2,range) 之类的方法检查它们,然后使用 xtrain$your_var[xtrain$your_var==Inf]<-0 将它们任意设置为零。

关于r - 无法在 R 中训练 KSVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com