matlab SVM有监督学习
来源:互联网 发布:斯凯奇淘宝旗舰店真假 编辑:程序博客网 时间:2024/06/04 19:42
SVM
在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类、以及回归分析。
SVM 百度百科
简单应用实例及matlab代码
*参考 :
1. http://blog.sina.com.cn/s/blog_71152aa70101tl62.html
2. http://www.cnblogs.com/darkknightzh/p/5554551.html
* 说明. matlab 版本: matlab_R2015a
**数据集: http://pan.baidu.com/s/1eRTNhXw,将参考1中数据集重新命名便于直接导入。
–icesongqiang
clear all;clc;%% 数据集已经整理,直接loadload ('bedroom.mat') % bedroomload ('forest.mat') % forestload ('labelset.mat') % labelsetdataset = [bedroom; forest];%%%% 训练集和测试集获取% 取bedroom,forest的前5行作为训练集train_set = [dataset(1:5, :); dataset(11:15, :)];% 相应的训练集的标签train_set_label = [labelset(1:5); labelset(11:15)];% 将第一类的6-10,第二类的16-20,做为测试集test_set = [dataset(6:10, :); dataset(16:20, :)];% 相应的测试集的标签test_set_label = [labelset(6:10); labelset(16:20)];%%%% 数据预处理,将训练集和测试集归一化到[0,1]区间[mtrain, ntrain] = size(train_set);[mtest, ntest] = size(test_set);test_dataset = [train_set; test_set];% mapminmax为matlab自带的归一化函数[dataset_scale, ps] = mapminmax(test_dataset', 0, 1)dataset_scale = dataset_scale';train_set = dataset_scale((1:mtrain), :);test_set = dataset_scale((mtrain+1):(mtrain+mtest), :);%%%% SVM网络训练model = svmtrain(train_set, train_set_label,'kernel_function','linear','showplot',true);%% SVM网络预测[predict_label] = svmclassify(model, test_set, 'showplot', true);%% 结果分析% 测试集的实际分类和预测分类图figure;hold on;plot(test_set_label,'o');plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);ylabel('类别标签','FontSize',12);legend('实际测试集分类','预测测试集分类');title('测试集的实际分类和预测分类图','FontSize',12);grid on;
一些说明
- 最开始使用 参考1中
model = svmtrain(train_set_label, train_set, '-s 2 -c 1 -g 0.07');
会报出错误,个人感觉也应该是训练集参数在第一位,于是参考2中的
svmModel = svmtrain(trainData, trainLabel,'kernel_function','linear','showplot',true);
符合
SVMSTRUCT = svmtrain(TRAINING, Y, 'PARAM1',val1, 'PARAM2',val2, ...)
形式;
2. 参考1中
[predict_label] = svmpredict(test_set_labels, test_set, model);
没有svmpredict()函数,使用参考2中
predict_label = svmclassify(svmModel,testData,'showplot',true);
通过。
续
搞清楚了,原来上面是使用的matlab自带的SVM库,而参考1使用的libSVM,libSVM与matlab自带的SVM的区别参考3:
*参考3:
http://blog.sina.com.cn/s/blog_64b046c701018c8n.html
复制原文如下:
1 MATLAB自带的svm实现函数仅有的模型是C-SVC(C-support vector classification); 而libsvm工具箱有C-SVC(C-support vector classification),nu-SVC(nu-support vector classification),one-class SVM(distribution estimation),epsilon-SVR(epsilon-support vector regression),nu-SVR(nu-support vector regression)等多种模型可供使用。
2 MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题。
3 MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用1v1算法支持多分类。
4 MATLAB自带的svm实现函数采用RBF核函数时无法调节核函数的参数gamma,貌似仅能用默认的;而libsvm可以进行该参数的调节。
5 libsvm中的二次规划问题的解决算法是SMO;而MATLAB自带的svm实现函数中二次规划问题的解法有三种可以选择:经典二次方法;SMO;最小二乘。(这个是我目前发现的MATLAB自带的svm实现函数唯一的优点~)
而 libSVM的安装可以参考其他,不做其他深入了解。
- matlab SVM有监督学习
- matlab SVM有监督学习
- SVM算法(一)(有监督学习)
- SVM算法(二)(有监督学习)
- SVM算法(三)(有监督学习)
- SVM算法(四)(有监督学习)
- 机器学习-->监督学习-->SVM
- 有监督学习流程图
- 支持向量机SVM(Support Vector Machine)是一个有监督的学习模型
- 有监督学习&无监督学习
- 有监督学习VS无监督学习
- 有监督学习和无监督学习
- SVM(MATLAB) 学习总结
- SVM(MATLAB) 学习总结
- 01--有监督的学习
- 有监督回归:稀疏学习
- 有监督学习 和 无监督学习 的具体含义
- 有监督学习、无监督学习、参数估计、非参数估计
- Hibernate JPA注解 @Temporal(TemporalType.DATE) 日期注解!
- c++ pcsc
- PDF转换器怎么将PDF转换成Word格式的
- UVALive 6656 Watching the Kangaroo (区间排序 + 二分)
- JavaWEB查询数据库信息(JSTL)
- matlab SVM有监督学习
- ssh反连
- Linux系统信息
- Matlab中画图的说明
- Android Asynchronous Http Client
- 华为oj之求int型正整数在内存中存储时1的个数
- 添加环境变量
- Bluetooth的接收数据测试代码
- 使用windbg查看PE结构