我正在使用SVM,特别是libsvm,以预测耗电量的峰值。在训练集中,每个向量具有24个值,表示每小时的累积kWh。如果下一个值被定义为峰值(基本离群值检测),则向量标记为“峰值”。
来自训练集的样本向量:
1 1:4.05 2:2.75 3:2.13 4:1.82 5:1.5 6:2.92 7:1.78 8:1.71 9:2.1 10:2.74 11:2.75 12:2.41 13:2.38 14:2.37 15:3.57 16:2.38 17:2.48 18:2.44 19:2.35 20:2.78 21:3.03 22:2.29 23:2.41 24:2.71
0 1:2.75 2:2.13 3:1.82 4:1.5 5:2.92 6:1.78 7:1.71 8:2.1 9:2.74 10:2.75 11:2.41 12:2.38 13:2.37 14:3.57 15:2.38 16:2.48 17:2.44 18:2.35 19:2.78 20:3.03 21:2.29 22:2.41 23:2.71 24:(3.63)<- Peak
0 1:2.13 2:1.82 3:1.5 4:2.92 5:1.78 6:1.71 7:2.1 8:2.74 9:2.75 10:2.41 11:2.38 12:2.37 13:3.57 14:2.38 15:2.48 16:2.44 17:2.35 18:2.78 19:3.03 20:2.29 21:2.41 22:2.71 23:3.63 24:(1.53)<- No peak
训练看起来很好,在进行交叉验证时我的准确度达到了约85%。但是,当我尝试对测试集进行分类时,预测的类标签都是相同的。没有发现峰值。
我正在使用默认的径向基函数,并且没有更改任何参数。
training.model的输出(没有向量):
svm_type c_svc
kernel_type rbf
gamma 0.0416667
nr_class 2
total_sv 174
rho -0.883122
label 0 1
nr_sv 122 52
我在这里做了一些根本错误的事情吗?