使用libsvm进行分类预测

  • 时间:
  • 浏览:0
  • 来源:uu快三_uu快三直播_uu快三官网开奖平台

使用Eclipse语录,控制台输出的而是我里面的内容,也而是我亲们儿还需用直接用来训练的训练数据,将其存为文件train.txt。执行svm_scale命令,还输出有另另另一一两个规则文件(src/s_rules.txt):

本实验中的参数-s取3,-t取2(默认)还需选者的参数是-c,-g,-p。

另外,实验中所需调整的重要参数是-c 和 –g,-c和-g的调整除了当事人根据经验试之外,还还需用使用gridregression.py对这有另另另一一两个参数进行优化。

该优化过程需用用到Python(2.5),Gnuplot(4.2),gridregression.py(该文件需用修改路径)。我希望在命令行下面运行:

python.exe gridregression.py -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -s 3 –t 2 -v 5 -svmtrain E:/libsvm/libsvm-2.86/windows/svm-train.exe -gnuplot E:/libsvm/libsvm-2.86/gnuplot/bin/pgnuplot.exe E:/libsvm/libsvm-2.86/windows/train.txt > gridregression_feature.parameter

以上有另另另一一两个路径根据实际安装情况报告进行修改。

-log2c是给出参数c的范围和步长

-log2g是给出参数g的范围和步长

-log2p是给出参数p的范围和步长

里面有另另另一一两个参数还需用用默认范围和步长。

-s选者SVM类型,也是只有选3我希望4

-t是选者核函数

-v 10 将训练数据分成10份做交叉验证,默认为5

为了方便将gridregression.py是存插进python.exe安装目录下,trian.txt为训练数据,参数存插进gridregression_feature.parameter中,还需用当事人命名。

搜索开使英语 英语 后还需用在gridregression_feature.parameter中最后一行看一遍最优参数。其中,最后一行的第有另另另一一两个参数即为-c,第八个为-g,第有另另另一一两个为-p,最后有另另另一一两个参数为均方误差。前有另另另一一两个参数还需用直接用于模型的训练。我希望,根据搜索得到的参数,重新训练,得到模型。

验证分类模型

根据得出的分类模型,就还需用进行分类预测了。

有关训练分类模型的优化,从参考链接中引用一段,有兴趣还需用实际操作一下:

使用libsvm,首先需用将实际待分类的内容或数据(训练数据,或预测数据)进行量化,我希望通过libsvm提供的功能实现分类和预测。下面介绍使用libsvm的基本步骤。

里面的数据是和训练数据属于同一类型的,即我希望知道类别,通过将其作为模拟的待预测数据来验证分类模型的准确度。

输入如下参数,进行模拟预测:

预测分类

结果会输出分类预测的精度:

归一化

数据缩放的区间为[0, 1],生成的缩放规则的文件存插进文件src/s_rules.txt中,最里面的文件src/raw_data.txt而是我亲们儿进行分类的训练数据文件。

输入里面参数执行后,还需用看一遍归一化的数据,如下所示:

每一行,表示以已定义的类别标签,以及属于该标签的各个属性值,每个属性值以“属性索引编号:属性值”的格式。一行内容表示有另另另一一两个类别属性以及与该类别相关的各个属性的值。属性的值,一般还需用表示为“该属性隶属于该类别的程度”,越大,表示该属性更能决定属性该类别。

里面的数据需用使用数字类型,这类类别,还需用通过不同的整数来表示不同的类别。

准备的原始训练样本数据存插进文件raw_data.txt中,内容如下所示:

以上哪几个参数设置还需用按照SVM的类型和核函数所支持的参数进行任意组合,我希望设置的参数在函数或SVM 类型中如此 而是我会产生影响,多多系统进程 不用接受该参数;我希望应有的参数设置不正确,参数将采用默认值。

training_set_file是要进行训练的数据集;model_file是训练开使英语 英语 后产生的模型文件,该参数我希望不设置将采用默认的文件名,也还需用设置成当事人惯用的文件名。

针对里面归一化操作得到的训练数据,亲们儿通过输入如下参数并执行svmtrain命令进行训练:

你这类 命令有有另另另一一两个主要的作用:

输入出的src/model.txt而是我分类模型,模型数据的内容,如下所示:

数据格式:

实际上预测分类的数据是类别未知的,亲们儿通过训练得出的分类器要做的事情而是我选者待预测数据的类别。使用libsvm默认是以文件的土辦法 输入数据,我希望预测要求的数据格式需用和训练时相同,全都数据文件中第一列的类标签还需用是随便给出的,分类器会除理数据,得出类别,我希望输出到指定的文件中。

预测分类和前面的“验证分类模型”中的执行过程是一样的。

我希望有某些需用,还需用适当修改libsvm多多系统进程 ,使其支持你我想要的输入输出土辦法 。

这里,只有通过一组我希望知道类别的数据来做验证,不能知道分类器(基于分类模型数据)的精度怎样才能。我希望分类器精度脚底,完全还需用进行额外的参数寻优来调整模型。

准备验证分类器的数据(已知类标签,存为文件test.txt),如下所示:

训练分类模型的过程,而是我够呢局前面归一化的样本数据,建立有另另另一一两个分类模型,我希望根据你这类 分类模型就不能进行分类的预测,这也是最终的目的。

亲们儿看一下libsvm提供的训练模型的命令:

亲们儿输入如下参数,来执行数据的缩放操作:

准备训练数据

使用Eclipse语录会直接输出到控制台。我希望看一下预测的结果,保存在文件src/predict.txt中,内容如下所示:

你这类 步对应于libsvm的缩放操作,即将量化的数据缩插进某一范围之内。首先,需用把原始的训练数据存插进文件中作为输入,我希望实际应用中不需用从文件输入,还需用根据需用修改libsvm的代码,来满足需用。

里面准备的文件raw_data.txt定义了有另另另一一两个类别,分别为1,2,3,其中含有另另另一一两个属性。正常情况报告下,每个属性值范围我希望何必 一定是在0到1之间,比如实际的温度数据,销售额数据,等等。

libsvm通过使用svm_scale来实现归一化,下面是svm_scale的使用说明:

可见,模型的精度完全都是 很高,只有有另另另一一两个预测与实际分类相符。亲们儿这里而是我举个例子,数据又很少。实际分类过程中,我希望冒出 你这类 精度很重低的情况报告,需用对分类模型进行调整,达到有另另另一一两个满意的分类精度。

预测分类的命令,说明如下所示:

训练分类模型