使用libsvm进行分类预测

  • 时间:
  • 浏览:0
  • 来源:彩神大发11选5_神彩大发11选5官方

验证分类模型

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

上端的数据需要使用数字类型,这人类别,还能不能 通过不同的整数来表示不同的类别。

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

实际上预测分类的数据是类别未知的,让我们我们我们我们我们通过训练得出的分类器要做的事情后后我选着待预测数据的类别。使用libsvm默认是以文件的办法输入数据,后后 预测要求的数据格式需要和训练时相同,后后我数据文件中第一列的类标签能否有随便给出的,分类器会出理 数据,得出类别,后后 输出到指定的文件中。

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

后后 有或多或少需要,还能不能 适当修改libsvm任务管理器,使其支持你你要 的输入输出办法。

或多或少命令有一一个主要的作用:

以上那此参数设置还能不能 按照SVM的类型和核函数所支持的参数进行任意组合,后后 设置的参数在函数或SVM 类型中没办法 后后我会产生影响,任务管理器不不接受该参数;后后 应有的参数设置不正确,参数将采用默认值。

training_set_file是要进行训练的数据集;model_file是训练结速后产生的模型文件,该参数后后 不设置将采用默认的文件名,也还能不能 设置成自己惯用的文件名。

针对上端归一化操作得到的训练数据,让我们我们我们我们我们通过输入如下参数并执行svmtrain命令进行训练:

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

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

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

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

或多或少步对应于libsvm的缩放操作,即将量化的数据缩放上去某一范围之内。首先,需要把原始的训练数据存放上去文件中作为输入,后后 实际应用中需要从文件输入,还能不能 根据需要修改libsvm的代码,来满足需要。

上端准备的文件raw_data.txt定义了一一个类别,分别为1,2,3,其含有一一个属性。正常具体情况下,每个属性值范围后后 并非 一定是在0到1之间,比如实际的温度数据,销售额数据,等等。

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

训练分类模型

使用Eclipse搞笑的话,控制台输出的后后我上端的内容,也后后我让我们我们我们我们我们还能不能 直接用来训练的训练数据,将其存为文件train.txt。执行svm_scale命令,还输出一一个规则文件(src/s_rules.txt):

这里,没办法 通过一组后后 知道类别的数据来做验证,还能不能 知道分类器(基于分类模型数据)的精度如可。后后 分类器精度脚底,完整篇 还能不能 进行额外的参数寻优来调整模型。

准备验证分类器的数据(已知类标签,存为文件test.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,最后一一个参数为均方误差。前一一个参数还能不能 直接用于模型的训练。后后 ,根据搜索得到的参数,重新训练,得到模型。

数据缩放的区间为[0, 1],生成的缩放规则的文件存放上去文件src/s_rules.txt中,最上端的文件src/raw_data.txt后后我让我们我们我们我们我们进行分类的训练数据文件。

输入上端参数执行后,还能不能 看多归一化的数据,如下所示:

使用Eclipse搞笑的话会直接输出到控制台。后后 看一下预测的结果,保占据 文件src/predict.txt中,内容如下所示:

预测分类

归一化

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

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

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

数据格式:

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

准备训练数据

训练分类模型的过程,后后我够呢局前面归一化的样本数据,建立一一个分类模型,后后 根据或多或少分类模型就还能不能 进行分类的预测,这也是最终的目的。

让我们我们我们我们我们看一下libsvm提供的训练模型的命令: