热门标签 | 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.分类结果




推荐阅读
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 大数据时代的机器学习:人工特征工程与线性模型的局限
    本文探讨了在大数据背景下,人工特征工程与线性模型的应用及其局限性。随着数据量的激增和技术的进步,传统的特征工程方法面临挑战,文章提出了未来发展的可能方向。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
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社区 版权所有