【问题标题】:svm error test data does not match model?svm 错误测试数据与模型不匹配?
【发布时间】:2018-06-10 22:48:32
【问题描述】:

我正在尝试训练一个支持向量机分类器来进行预测。当我尝试使用经过训练的模型时,出现此错误:测试数据与模型不匹配。我不是为什么会发生这种情况。这是我的代码

# to prepare the training and testing data
dat = data.frame(x = rbind(tmp1, tmp2), y = as.factor(c(rep(1, 300), rep(-1, 300))))
set.seed(1)
train_ind = sample(seq_len(nrow(dat)), size = 500)
train = dat[train_ind, ]
test = dat[-train_ind, ]

# training and prediction
library('e1071')
svmfit = svm(y ~ ., data = train, kernel ='linear', cost = 10, scale = FALSE)
ypred = predict(svmfit, test)
table(predict=ypred, truth = test$y)

【问题讨论】:

    标签: testing svm prediction training-data


    【解决方案1】:

    如果您的训练数据集中有分类预测变量(自变量),则只有训练数据集中存在的类别才能出现在测试数据集中。如果是这种情况,请检查测试数据集中的所有类别是否都存在于训练数据集中。有时,SVM 假设一个具有短范围的整数变量作为分类变量,例如用数字表示的月份 [1:12]

    【讨论】:

      【解决方案2】:

      这个错误背后的原因是我在训练和测试数据中包含了观察的 id,这混淆了 svm 分类器。观察的 id 在第一列中。因此,当我从训练和测试中删除第一列时,它起作用了。

      【讨论】:

        猜你喜欢
        • 2014-12-03
        • 1970-01-01
        • 2013-09-11
        • 2018-08-26
        • 2014-02-05
        • 1970-01-01
        • 2016-10-06
        • 1970-01-01
        • 2018-06-08
        相关资源
        最近更新 更多