热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

SVM熟练到精通5:MATLAB实例

1.源代码clc;clearall;closeall;loadfisheriris;%matlab自带分类数据集fisheriris,来源于http:arc
1.源代码
clc;
clear all;
close all;
load fisheriris;
%matlab自带分类数据集fisheriris,来源于http://archive.ics.uci.edu/ml/ 中的risi数据,
%其数据类别分为3类,setosa,versicolor,virginica.每类植物有50个样本,共150个。
%每个样本有4个属性,分别为花萼长,花萼宽,花瓣长,花瓣宽。

%其中meas是150*4的矩阵代表着有150个样本每个样本有4个属性描述
%species代表着这150个样本的分类.

data = [meas(:,1),meas(:,2)]; %构建测试数据
%在这里只取meas的第一列和第二列,即只选取前两个特征

groups = ismember(species,'setosa'); %构建测试结果
%由于species分类中是有三个分类:setosa,versicolor,virginica
%为了使问题简单,我们将其变为二分类问题:Setosa and non-Setosa.

[train,test] = crossvalind('holdOut',groups,0.5);
%生成交叉验证指标 [Train, Test] = crossvalind('HoldOut', N, P)
%返回一个逻辑值的标记向量,从N个观察样本中随机选取(或近似于)P*N个样本作为测试集。
%故P应为0-1,缺省值为0.5。

cp = classperf(groups);
%评估分类器性能

svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);
%训练支持向量机分类器
%使用svmtrain进行训练,得到训练后的结构svmStruct,在预测时使用

classes = svmclassify(svmStruct,data(test,:),'showplot',true);
%对于未知的测试集进行分类预测 SVMStruct = svmtrain(Training,Group,Name,Value)
%Training:训练数据矩阵,每一行对应一个观察,每一列对应一个特征或变量;
% svmtrain对NAN在训练或空字符串为缺失值,忽略了相应的行组。
%Group:分组变量
%Name:有很多特性,画图、核函数选择、阶数、优化算法等
%SVMStruct:训练后的SVM信息 支持向量、核函数等

classperf(cp,classes,test);
cp.CorrectRate;
%分类器效果测评,就是看测试集分类的准确率的高低
2.分类结果




推荐阅读
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • hlg_oj_1116_选美大赛这题是最长子序列,然后再求出路径就可以了。开始写的比较乱,用数组什么的,后来用了指针就好办了。现在把代码贴 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • POJ2263是一个经典的图论问题,涉及寻找从起点到终点的最大载重路径。本文将详细介绍该问题的背景、解题思路及代码实现。 ... [详细]
  • 如何选择机器学习方法http:scikit-learn.orgstabletutorialmachine_learning_mapindex.html通用学习模式只需要先定义 ... [详细]
  •     目标检测是计算机视觉一个非常重要的子任务。目标检测需要发现并准确定位自然图片中的物体。在2012年之前,目标检测主要基于手工设计的特征以及传统分类器。2012年以后,出现了 ... [详细]
  • 分隔超平面:将数据集分割开来的直线叫做分隔超平面。超平面:如果数据集是N维的,那么就需要N-1维的某对象来对数据进行分割。该对象叫做超平面,也就是分类的决策边界。间隔:一个点 ... [详细]
  •   作为一种编程语言,Python比C#,Java,C和C++更具吸引力。它被称为“胶水语言”,它也被喜欢它的程序员誉为“美丽”的编程语言。从云计算,客户端到物联网终端,Pytho ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • ASP.NET 进度条实现详解
    本文介绍了如何在ASP.NET中使用HTML和JavaScript创建一个动态更新的进度条,并通过Default.aspx页面进行展示。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • OpenCV中的霍夫圆检测技术解析
    本文详细介绍了如何使用OpenCV库中的HoughCircles函数实现霍夫圆检测,并提供了具体的代码示例及参数解释。 ... [详细]
  • 本文提供了一种有效的方法来解决当Android Studio因电脑意外重启而导致的所有import语句出现错误的问题。通过清除缓存和重建项目结构,可以快速恢复开发环境。 ... [详细]
  • 本文介绍了如何利用OpenCV库进行图像的边缘检测,并通过Canny算法提取图像中的边缘。随后,文章详细说明了如何识别图像中的特定形状(如矩形),并应用四点变换技术对目标区域进行透视校正。 ... [详细]
author-avatar
_____Fmr丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有