SVM 中预测模型和测试集数据的元组数不同
Different no of tuples for the prediction model and test set data in SVM
我有一个包含两列的数据集,如下所示,其中第 1 列,时间戳是时间的特定值,第 10 列给出了该时间实例的总电量使用情况。该数据共有 81502 个实例。
我正在使用 e1071 包对 R 中的这些数据进行支持向量回归,以预测未来的电力使用情况。代码如下。我首先将数据集分为训练数据和测试数据。然后使用训练数据使用 svm 函数对数据建模,然后预测测试集的功耗。
library(e1071)
attach(data.csv)
index <- 1:nrow(data.csv)
testindex <- sample(index,trunc(length(index)/3))
testset <- na.omit(data.csv[testindex, ])
trainingset <- na.omit(data.csv[-testindex, ])
model <- svm(Column.10 ~ timestamp, data=trainingset)
prediction <- predict(model, testset[,-2])
tab <- table(pred = prediction, true = testset[,2])
但是,当我尝试根据预测生成混淆矩阵时,出现错误:
Error in table(pred = prediction, true = testset[, 2]) : all arguments must have the same length
所以我试图求出两个参数的长度,发现
the length(prediction) to be 81502
and the length(testset[,2]) to be 27167
由于我只对测试集做了预测,不知道81502个值是怎么预测的。预测和测试集的总值有何不同?尽管我只为测试集给出了整个数据集的功率值,但如何预测?
改变
prediction <- predict(model, testset[,-2])
在
prediction <- predict(model, testset)
但是,你不应该在做回归时使用 table,而是使用 MSE。
我有一个包含两列的数据集,如下所示,其中第 1 列,时间戳是时间的特定值,第 10 列给出了该时间实例的总电量使用情况。该数据共有 81502 个实例。
我正在使用 e1071 包对 R 中的这些数据进行支持向量回归,以预测未来的电力使用情况。代码如下。我首先将数据集分为训练数据和测试数据。然后使用训练数据使用 svm 函数对数据建模,然后预测测试集的功耗。
library(e1071)
attach(data.csv)
index <- 1:nrow(data.csv)
testindex <- sample(index,trunc(length(index)/3))
testset <- na.omit(data.csv[testindex, ])
trainingset <- na.omit(data.csv[-testindex, ])
model <- svm(Column.10 ~ timestamp, data=trainingset)
prediction <- predict(model, testset[,-2])
tab <- table(pred = prediction, true = testset[,2])
但是,当我尝试根据预测生成混淆矩阵时,出现错误:
Error in table(pred = prediction, true = testset[, 2]) : all arguments must have the same length
所以我试图求出两个参数的长度,发现
the length(prediction) to be 81502
and the length(testset[,2]) to be 27167
由于我只对测试集做了预测,不知道81502个值是怎么预测的。预测和测试集的总值有何不同?尽管我只为测试集给出了整个数据集的功率值,但如何预测?
改变
prediction <- predict(model, testset[,-2])
在
prediction <- predict(model, testset)
但是,你不应该在做回归时使用 table,而是使用 MSE。