首页 > 编程知识 正文

python程序设计教程第二版(Python程序设计第二版)

时间:2023-05-04 10:25:19 阅读:83438 作者:2386

SVM用于模式识别和回归时,SVM方法及其参数、内核函数的选择目前尚未定型,因此至今有各种形式的SVM。 libsvm就是其中之一,由台湾大学快乐酒馆教授等开发设计的,简单易用、快速有效的SVM模式识别和回归软件包。 他不仅提供了可以在编译的Windows系列系统上运行的文件,还提供了源代码,便于改进、修改和在其他操作系统上的应用---百度百科。

libsvm非常容易使用,通过利用所提供的默认参数可以解决很多问题,还可以解决C-SVM、v-SVM、-SVR、-SVR等问题的交互式检查(Cross-Validation )功能该软件还包括基于一对一算法的多类模式识别问题。

此外,结合使用gnuplot这种交互式绘图工具还可以更好地解决问题。

由于安装libsvm和gnuplot的过程非常简单,因此建议在libsvm上安装gnuplot以便以后调用。 将libsvm文件夹下的windows和tools文件夹添加到系统变量下的path下。

libsvm需要特定的数据格式。

一般的CSV格式在这里不好用,需要换个格式。 常用的方法是在网上下载FormatDataLibsvm.xls文件,然后使用宏命令修改文件格式。 或者编写自己重新格式化的代码。

转换完成后,需要将数据规范化。 有助于使用SVM。 标准化方法使用windows文件夹下的svm-scale.exe文件。 方法如下。

SVM比例“- l lower”“- u upper”“- YY _ lowery _ upper”“- s保存文件名”“- r恢复文件名”

-l )数据下限标志; lower :缩放后的数据下限;

-u :数据上限标志; upper :缩放后的数据上限;

-y :是否同时缩放目标值; y_lower为下限值,y_upper为上限值;

-s save_filename :表示将缩放规则另存为文件save_filename;

-r restore_filename :表示在加载缩放规则文件restore_filename后按下此缩放。

文件名:要缩放的数据文件。 必须满足上述格式

然后,libsvm提供文件grid (分类用)、gridregression (网格注册)、回归用)以寻找最佳参数,文件中的svm-train.exe和gnuploon

在使用grid寻找最佳参数的同时,也可以使用gnuplot描绘出最佳参数收敛过程。

收敛结果如下。

最后行为之后需要使用的c、p、g参数最有结果。

gnuplot表示以下收敛过程:

得到最佳解的结果后,可以使用svm-train.exe进行训练。

Svmtrain (训练建模(Svmtrain训练_集_档案)

Options :可用选项表示以下含义

SVM型: SVM设定型(默认值0 )

0 -- C-SVC

1 --v-SVC

2一种SVM

3 -- e -SVR

4 -- v-SVR

--t内核函数类型:内核函数设置类型(默认值2 )

0线性: u'v

1多项式: (r*u'v coef0) ^degree

2RBF函数: exp(-r|u-v|^2)。

3sigmoid:tanh (r * u ' v coef0) ) )。

-d degree :内核函数的degree设置(多项式内核函数时) (缺省值为3 ) ) ) )。

- gr (gamma ) )内核函数中的gamma函数的设置(多项式/rbf/sigmoid内核函数时) (缺省值的1/k ) ) ) ) ) ) ) ) ) ) ) ) ) )。

-r coef0:核函数的coef0设置(多项式/sigmoid核函数的情况下) ) (缺省值为0 ) ) ) ) ) ) ) ) )。

--ccost :设定v-SVR、e -SVR和v-SVR的参数(损失函数)。 (缺省值1 () ) ) )。

- nnu :设定v- SVR、一种SVM和v- SVR的参数。 (默认值0.5 ) (输出) (输出) ) ) ) )。

- PP :设定e-SVR中的损失函数p的值(默认值0.1 )

--m cachesize :以MB为单位设置cache的内存大小。 (缺省值为40 () ) ) ) )。

-e eps :设定允许的退出标准。 (默认值0.001 () ) () ) ) ) ) )。

-h shrinking :是否使用启发式、0或1 (默认值为1 )

-wi weight :设定类别数的参数c为weight*c(c-SVC的c ) )。 默认值1 ) ) )。

-v n: n-fold互检模式,n是fold的个数,必须在2以上

其中-g选项k表示输入数据中的属性数。 option -v将数据随机分割为n部分,计算相互检查精度和均方根误差。

然后保存模型,并在随后的svm-predict.exe文件中用于培训

[predict_label,accuracy,decision _ values/prob _ estimates ]=SVM predict (测试标签,测试矩阵,模型)

- -测试标签:测试标签

- -测试矩阵:测试数据

-model:培训的模式

培训和最终结果如下:

如果需要将libsvm和pycharm结合使用,则必须将其设置为pycharm。

pycharm现在可以识别libsvm函数了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。