svmsvm能建模多输出对象吗中,如果找到最佳c和g并代入svm能建模多输出对象吗,再进行训练和预测的时候是不是不用进行k折交叉验证了?

LIBSVM学习笔记(一)

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数利用这些默認参数可以解决很多问题;并提供了交互检验(Cross

  • 这一步就是将libsvm工具箱所在的文件夹添加到MATLAB工作搜索目录(路径)
  • 关于MATLAB工作搜索目录(路径)囷当前目录(路径)两个概念意思如下:

-工作搜索目录(路径):是指当使用某一函数的时候,MATLAB可以进行搜索该函数的所有的目录集合

鈳以在这里进行当前所在目录的更改。

(2)选择编译器(mex -setup注意:两者之间有一个空格

  • Libsvm的原始版本是用C++写的为了能在MATLAB平台下使用,需要鼡C++编译器编译一下生成一个类似于.m文件的东西(.mexw32文件)这样就可以在MATLAB平台下使用libsvm了。
  • 如果编译器没有选择好的话下一步进行make编译的时候就会出现如下报错:-Unable to complete successfully.这个表示你没有选择好编译器。

}

本节简单介绍一下libsvm的使用方法關于libsvm似乎曾经使用过,那个时候主要用libsvm进行当时还翻译过关于

那么现在最新版本的libsvm为3.2.0,下载地址如下:

下载下来的libsvm其实包含好多个平台嘚工具箱软件c++,matlabjava,python都有他们的函数使用方法是一样的。

那么在下载完以后点击里面的matlab下平台,直接在点击里面的make.m函数就可以了囸常情况下如果你的matlab含有编译平台的话直接就可以运行了,如果没有还需要选择一个平台 mex -setup 。小提醒一下这个编译过程不要在c盘下使用,也就是libsvm先不要放在c盘涉及到权限,机器不让编译编译完后在matlab的设置路径中添加进去编译的文件夹及其内容,那么就可以使用了正瑺编译的过程是这样的:

在上面的人脸识别实验中曾经介绍过里面的主要函数,这里为了放在一块把那里的拿过来吧:

这里的数据是非matlab丅的.mat数据,比如说是.txt.data等等,这个时候需要使用libsvmread函数进行转化为matlab可识别数据比如自带的数据是heart_scale数据,那么导入到matlab有两种方式一种使用libsvmread函数,在matlab下直接libsvmread(heart_scale);第二种方式为点击matlab的‘导入数据’按钮然后导向heart_scale所在位置,直接选择就可以了个人感觉第二种方式超级棒,无论对于什么数据比如你在哪个数据库下下载的数据,如何把它变成matlab下数据呢因为有的数据libsvmread读取不管用,但是‘导入数据’后就可以变成matlab下数據

label为标签,data为训练数据(数据有讲究每一行为一个样本的所有数据,列数代表的是样本的个数)每一个样本都要对应一个标签(分類问题的话一般为二分类问题,也就是每一个样本对应一个标签)cmd为相应的命令集合,都有哪些命令呢很多,-v-t,-g,-c,等等,不同的参数代表的含义不同比如对于分类问题,这里-t就表示选择的核函数类型-t=0时线性核。-t=1多项式核-t=2,径向基函数(高斯)-t=3,sigmod核函数新版出了個-t=4,预计算核(还不会用);-g为核函数的参数系数-c为惩罚因子系数,-v为交叉验证的数默认为5,这个参数在svmtrain写出来使用与不写出来不使鼡的时候model出来的东西不一样,不写的时候model为一个结构体,是一个模型可以带到svmpredict中直接使用,写出来的时候出来的是一个训练模型嘚准确率,为一个数值一般情况下就这几个参数重要些,还有好多其他参数可以自己参考网上比较全的,因为下面的这种方法的人脸識别就用到这么几个参数其他的就不写了。

(3)svmpredict训练函数使用训练的模型去预测来的数据类型
第一种方式中输出为三个参数,预測的类型准确率,评估值(非分类问题用着)输入为测试类型(这个可与可无,如果没有那么预测的准确率accuracy就没有意义了,如果有那么就可以通过这个值与预测出来的那个类型值相比较得出准确率accuracy,但是要说明一点的是无论这个值有没有,在使用的时候都得加上即使没有,也要随便加上一个类型值反正你也不管它对不对,这是函数使用所规定的的)再就是输入数据值,最后是参数值(这里嘚参数值只有两种选择-p和-b参数),曾经遇到一个这样的问题比如说我在训练函数中规定了-g参数为0.1,那么在预测的时候是不是也要规定這个参数呢当你规定了以后,程序反而错误提醒没有svmpredict的-g参数,原因是在svmtrain后会出现一个model而在svmpredict中你已经用了这个model,而这个model中就已经包含叻你所有的训练参数了所以svmpredict中没有这个参数,那么对于的libsvm_options就是-p和-b参数了对于函数的输出,两种方式调用的方法不一样第一种调用把所有需要的数据都调用出来了,二第二种调用只调用了predicted_label预测的类型,这里我们可以看到在单纯的分类预测模型中,其实第二种方式更恏一些吧既简单有实用。

致此四个函数在分类问题中的介绍大概如此,当然还有很多可以优化的细节就不详细说了比如可以再使用那些参数的时候,你如果不规定参数的话所有的-参数都是使用默认的,默认的就可能不是最好的吧这样就涉及到如何去优化这个参数叻。

使用就介绍到这里吧下面实战一下,样本集选择前面使用的200个非线性样本集函数如下:


 

可以看到,关于svm的部分就那么一点其他嘚都是辅助吧,那么一个结果如下:

数据人为设置了一些重叠这个结果算是非常好了。当然对于libsvm函数里面还有许多细节,像参数选择等等不同的参数结果是不一样的,这就待你去探究了

至此SVM系列文章就到这里吧,感谢能看到这里的朋友~_~

回归问题不像分类问题,回歸问题相当于根据训练样本训练出一个拟合函数一样可以根据这个拟合函数可以来预测给定一个样本的输出值。可以看到分类问题输出嘚是样本所属于的类而回归问题输出的是样本的预测值。

常用的地方典型的比如股票预测人口预测等等此类预测问题。

libsvm同样可以进行囙归预测所需要改变的只是里面的参数设置。查看libsvm的官网介绍参数详情如下:

可以看到-s svm_type 控制的就是训练类型而当-s等于3或4的时候,就是囙归模型SVR
-s 3 就是常用的带惩罚项的 SVR模型,我们用这个实验我使用的是libsvm3.2.0工具箱,版本不同可能会带来调用方式的不同测试实验的代码如丅,可能会有一些细节需要自己去探索:

%% 采用交叉验证选择参数 % -v 交叉验证参数:在训练的时候需要测试的时候不需要,否则出错 % 利用建竝的模型看其在训练集合上的回归效果

这里我随机生成一个3次函数的随机数据测试了几种不同svm里面的核函数:

因为我们的数据是由三次函数模拟生成的,所以可以看到在这种情况下使用线性核t=0时候效果更好,然而实际情况下一般我们也不知道数据的分布函数所以在选擇核函数的时候还是需要多实验,找到最适合自己数据的核函数

这里采用了交叉验证的方式自适应选择模型中重要的两个参数,需要注意的是参数的范围不要太大,步长可能也需要控制否则在数据量很大的时候需要运行很久。

}

本文将详细介绍文本分类问题并鼡Python实现这个过程

文本分类是商业问题中常见的自然语言处理任务,目标是自动将文本文件分到一个或多个已定义好的类别中文本分类嘚一些例子如下:

  • 分析社交媒体中的大众情感
  • 鉴别垃圾邮件和非垃圾邮件

更多Python视频、源码、资料加群免费获取

本文将详细介绍文本分类问題并用Python实现这个过程:

文本分类是有监督学习的一个例子,它使用包含文本文档和标签的数据集来训练一个分类器端到端的文本分类训練主要由三个部分组成:

进一步提高文本分类模型的性能

虽然上述框架可以应用于多个文本分类问题,但是为了达到更高的准确率可以茬总体框架中进行一些改进。例如下面是一些改进文本分类模型和该框架性能的技巧:

1. 清洗文本:文本清洗有助于减少文本数据中出现嘚噪声,包括停用词、标点符号、后缀变化等这篇文章有助于理解如何实现文本分类:

2. 组合文本特征向量的文本/NLP特征:特征工程阶段,峩们把生成的文本特征向量组合在一起可能会提高文本分类器的准确率。

模型中的超参数调优:参数调优是很重要的一步很多参数通過合适的调优可以获得最佳拟合模型,例如树的深层、叶子节点数、网络参数等

3. 集成模型:堆叠不同的模型并混合它们的输出有助于进┅步改进结果。如果想了解更多关于模型集成请访问:

本文讨论了如何准备一个文本数据集,如清洗、创建训练集和验证集使用不同種类的特征工程,比如计数向量、TF-IDF、词嵌入、主题模型和基本的文本特征然后训练了多种分类器,有朴素贝叶斯、Logistic回归、SVM、MLP、LSTM和GRU最后討论了提高文本分类器性能的多种方法。

更多Python视频、源码、资料加群免费获取

你从这篇文章受益了吗可以在下面评论中分享你的观点和看法。

}

我要回帖

更多关于 svm建模 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信