今天在做SVM恶意程序检测算法研究的过程中,由于libsvm输入要求的数据格式是lable index:value,训练数据标签和特征值索引和值是确定的,顺利生成模型,然而测试集数据标签是未知的,是需要得到的分类信息,此时比较迷惑,查找相关资料。得以解答:测试集的标签随意写上,它主要是用来测试模型的效果的,具体如下。
首先用svm(libsvm,lssvm、hssvm)等等进行分类预测,要进行三个步骤1、训练 2、测试 3、预测
1、训练——大家都知道,就是用训练数据集,不管你采用那种寻优方式,得到相对的最优参数,训练模型。
2、测试——就是用刚刚得到的模型,对测试数据进行测试,此时测试数据集的label是已知的,这主要是用来对刚刚的模型的检测,或者是对参数的检测、或者是对模型的泛化能力的检测。此时会得到一个准确率,这时的准确率是有用的,是有实际意义的,因为原来的label是已知的。
3、预测——预测就是对未知类别的样本在测试确定了模型有好的泛化能力的情况下的预测分类,这步才是真的预测能力功能的实现。此时数据的label随便给了,这样是为了满足libsvm对数据格式的要求。此时也会得到一个准确率,但是这个是没有实际意义的,因为原始的label是随便给的,没有意义,我们只是关心的是最后得到的类别号——达到分类的目的。
得到的准确率如下,第一个代表分类的准确率,第二个是回归的平方根,第三个平方根先关系数,具体需要查看统计学习相关知识:
accuracy =
81.5217
0.7391
NaN
时间: 2024-10-16 04:43:11