libsvm回归分析步骤

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Libsvm回归分析步骤:

1、数据准备

将数据整理成label index1:value1 index2:value2 ... indexn:valuen的格式

其中label为目标值,index1……indexn 从1到n的自然数,value为对应的特征值。

技巧:如何将要整理的数据从 label value1 value2 ... valuen 转成

label index1:value1 index2:value2 ... indexn:valuen

可在excel下添加辅助列,每列分别为1:, 2: , ……n:

然后使用 =concatenate(E1,B1)将两列拼接起来假设E1代表value1, B1代表index1,则得到的结果是 index1:value1

2、数据归一化

将1中得到的数据进行归一化,注意,将训练数据和测试数据一起归一化

为了方便,可写一个批处理文件如:

svm-scale -y -1 1 -s p.txt all.txt>all-scaled.txt //所有数据一起归一化,结果存放在

all-scaled.txt中,参数存放在p.txt中svm-scale -y -1 1 -r p.txt train.txt>train-scaled.txt //利用p.txt中参数归一化train.txt svm-scale -y -1 1 -r p.txt test.txt>test-scaled.txt //利用p.txt中参数归一化test.txt

注意:需要将归一化的数据,及批处理程序都放在 svm-scale.exe 所在的目录下,否则要写绝对路径。

3、寻找最优参数

所需调整的重要参数是-c 和–g,可以使用 gridregression.py寻找最优参数。

详细操作可参考用livsvm对下关水位的预测.pdf

若需对训练数据进行聚类,运行 b.txt(当时没取好名字☺)

除了大于……不聚类可不填外,其他参数必填。

参数说明:

维数如label 1:value1 2:value2 3:value3 的维数为4

结果存放在 result2.txt中

其中经过聚类后去除的项标为0,便于聚类前后比较和统计。

4、训练

进过第三不获取的参数进行训练。

如svm-train -s 3 -t 2 -c 4 -g 0.5 -p 0. 0.015625 train.txt

也要将训练数据放在svm-train.exe所在的目录下

具体参考用livsvm对下关水位的预测.pdf

5、预测

svm-predict test-scaled.txt train-scaled.txt.model test-scaled-output.txt>test-scaledResult.txt

test-scaled.txt为归一化后的测试数据

预测结果存放在test-scaledResult.txt

具体参考用livsvm对下关水位的预测.pdf

6、对预测结果反归一化

5中得到的预测结果也是归一化后的,所以需要进行反归一化

使用公式:(Value-lower)*(max-min)/(upper - lower)+ min

Value为需要反归一化的值,upper,lower分别为归一化的的最大最小值,如(1,-1)max,min为被归一化数据中的最大最小值

7、计算误差

在matlab下调用calcError.m

函数包含三个参数: obs-----目标值 pre------预测值threshold(可选参数)------用于统计大于某个值的所有数据的预测误差

相关文档
最新文档