R中“调”和“预测”的准确度不同

时间:2015-04-21 03:38:20

标签: r

我正在制作SVM,它将在火车车厢上使用车载加速度计预先区分轨道维护。有焦点部分,我提取了与该部分对应的加速度数据。每次运行大约需要3分钟才能通过该部分,因此考虑到加速度计的采样率约为1600 / s,每次运行的加速度数据记录大约为3min * 60sec * 1600 / s = 288,000。然后我计算每次运行的那些加速度记录的方差,最大值,最小值,平均值,标准偏差和最频繁值。大约有250次运行,因此我将这些计算值的数据集设为250次。然后我还根据维护记录和每次运行的日期对赛道维护进行预先分类。

使用这个,我试着像我提到的那样制作SVM。首先,我试图在高斯核函数中找到伽玛和成本的最佳参数,所以我使用" tune"做网格搜索。然后我得到了如下结果:

> source("grid_search.R")
[gamma = 1 , cost = 10 ]
- best parameters:
gamma = 1.584893 ; cost = 25.11886 ;
accuracy: 88.54935 %

还" grid_search.R"如下:

gamma <- 10^(0.0)
cost  <- 10^(1.0)
gammaRange <- 10^seq(log10(gamma)-1,log10(gamma)+1,length=11)[2:10]
costRange  <- 10^seq(log10(cost)-1 ,log10(cost)+1 ,length=11)[2:10]
t <- tune.svm(Category ~ ., data = X, gamma=gammaRange, cost=costRange,
          tunecontrol = tune.control(sampling="cross", cross=8))
cat("[gamma =", gamma, ", cost =" , cost , "]\n")
cat("- best parameters:\n")
cat("gamma =", t$best.parameters$gamma, "; cost =", t$best.parameters$cost, ";\n")
cat("accuracy:", 100 - t$best.performance * 100, "%\n\n")
plot(t, transform.x=log10, transform.y=log10, zlim=c(0,0.1))

之后,使用&#34; svm&#34;参数&#34; gamma = 1.584893;成本= 25.11886;&#34;如上所述,我训练了SVM并尝试预测将用于训练SVM的数据分类如下:

gamma = 1.584893 ; cost = 25.11886;
model <- svm(Category ~ ., data = X, gamma=gamma, cost=cost)
pred <- predict(model, X)
table(pred, X[,13])

我得到的结果如下:

pred     after before
after      47    2
before     1    185

我的问题是:根据上面的矩阵,准确度可以说是 1 - (1 + 2)/(47 + 2 + 1 + 185)= 0.987234(98.7%)

但我也得到了准确度:88.54935%&#34;由于&#34;调和&#34;当我得到最佳参数,例如&#34; gamma = 1.584893;成本= 25.11886;&#34;。

0 个答案:

没有答案