matlab中的支持向量机

2024-03-13

您能否举一个在 matlab 中使用支持向量机 (SVM) 进行 4 类分类的示例,例如:

atribute_1  atribute_2 atribute_3 atribute_4 class
1           2          3           4             0
1           2          3           5             0
0           2          6           4             1
0           3          3           8             1
7           2          6           4             2
9           1          7           10            3

SVM 最初是为二元分类而设计的。然后它们被扩展到处理多类问题。其思想是将问题分解为许多二元类问题,然后将它们组合起来以获得预测。

一种方法称为一对一,构建与类一样多的二元分类器,每个分类器都经过训练以将一个类与其余类分开。为了预测一个新实例,我们选择具有最大决策函数值的分类器。

另一种方法称为一对一(我相信它在 LibSVM 中使用),构建k(k-1)/2二元分类器,经过训练将每对类彼此分开,并使用多数投票方案(最大获胜策略)来确定输出预测。

还有其他方法,例如使用纠错输出代码 (ECOC)构建许多有点冗余的二元分类器,并使用这种冗余来获得更稳健的分类(使用与汉明码).

示例(一对一):

%# load dataset
load fisheriris
[g gn] = grp2idx(species);                      %# nominal class to numeric

%# split training/testing sets
[trainIdx testIdx] = crossvalind('HoldOut', species, 1/3);

pairwise = nchoosek(1:length(gn),2);            %# 1-vs-1 pairwise models
svmModel = cell(size(pairwise,1),1);            %# store binary-classifers
predTest = zeros(sum(testIdx),numel(svmModel)); %# store binary predictions

%# classify using one-against-one approach, SVM with 3rd degree poly kernel
for k=1:numel(svmModel)
    %# get only training instances belonging to this pair
    idx = trainIdx & any( bsxfun(@eq, g, pairwise(k,:)) , 2 );

    %# train
    svmModel{k} = svmtrain(meas(idx,:), g(idx), ...
        'BoxConstraint',2e-1, 'Kernel_Function','polynomial', 'Polyorder',3);

    %# test
    predTest(:,k) = svmclassify(svmModel{k}, meas(testIdx,:));
end
pred = mode(predTest,2);   %# voting: clasify as the class receiving most votes

%# performance
cmat = confusionmat(g(testIdx),pred);
acc = 100*sum(diag(cmat))./sum(cmat(:));
fprintf('SVM (1-against-1):\naccuracy = %.2f%%\n', acc);
fprintf('Confusion Matrix:\n'), disp(cmat)

这是一个示例输出:

SVM (1-against-1):
accuracy = 93.75%
Confusion Matrix:
    16     0     0
     0    14     2
     0     1    15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab中的支持向量机 的相关文章

  • R 中 svm 特征选择的示例

    我正在尝试使用 R 包在 SVM 中应用特征选择 例如递归特征选择 我已经安装了 Weka 它支持 LibSVM 中的特征选择 但我还没有找到任何 SVM 语法的示例或类似的东西 一个简短的例子会有很大的帮助 功能rfe in the ca
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 在提供给 sklearn 管道中的分类器之前获取所选特征的名称和数量

    我在用sel SelectFromModel ExtraTreesClassifier 10 threshold mean 选择我的数据集中最重要的特征 然后我想将这些选定的特征提供给我的 keras 分类器 但是我的基于 keras 的神
  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 我的 R 平方分数为负,但使用 k 倍交叉验证的准确度分数约为 92%

    对于下面的代码 我的 r 平方分数为负 但使用 k 折交叉验证的准确度分数为 92 这怎么可能 我使用随机森林回归算法来预测一些数据 数据集的链接在下面的链接中给出 https www kaggle com ludobenistant hr
  • 同时重新排序和旋转图像的高效方法

    为了快速加载 jpeg 我为turbojpeg 实现了一个 mex wrapper 以有效地将 大 jpeg 读入 MATLAB 对于 4000x3000px 的图像 实际解码只需要大约 120 毫秒 而不是 5 毫秒 然而 像素顺序是 R
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 使用sklearn进行多标签特征选择

    我希望使用 sklearn 对多标签数据集执行特征选择 我想要获得最终的功能集across标签 然后我将在另一个机器学习包中使用它 我打算使用我看到的方法here https stackoverflow com questions 1640
  • 随机森林修剪

    我有 sklearn 随机森林回归器 它非常重 有 1 6 GB 并且在预测值时工作很长时间 我想把它修剪一下 让它变得更轻 据我所知 决策树和森林没有实施修剪 我无法自己实现它 因为树代码是用 C 编写的 而我不知道 有谁知道解决方案吗
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • 为什么 cross_val_predict 比 KNeighborsClassifier 的拟合慢得多?

    在 Jupyter 笔记本上本地运行并使用 MNIST 数据集 28k 条目 每个图像 28x28 像素 以下内容为27秒 from sklearn neighbors import KNeighborsClassifier knn clf
  • 用于神经网络模型预测的数据的缺失值

    我目前有大量数据将用于训练预测神经网络 美国主要机场的千兆字节天气数据 我几乎每天都有数据 但有些机场的数据中存在缺失值 例如 机场在 1995 年之前可能不存在 因此在此之前我没有该特定位置的数据 此外 有些还缺少整年 可能跨度为 199
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t

随机推荐

  • Facebook 开放图私人群组提要请求

    我想从图形 api 获取数据 特别是我尝试从组中获取时间线 例如 让我们看一下 Facebook 开发人员概述中提供的请求 https graph facebook com 195466193802264 https graph faceb
  • (int)、Convert.ToInt32(x) 或 Int32.Parse(x) 哪个最快?

    以下哪段代码对于转换某些对象 x 是最快 最佳实践 int myInt int x or int myInt Convert ToInt32 x or int myInt Int32 Parse x 或者在字符串 s 的情况下 int my
  • 将 .NET 表达式树链接到新程序集中

    我正在尝试编写自己的玩具 My Toy Language gt MSIL 编译器 以便更好地了解编译器的工作原理 我的解析和词法分析工作正常 我已经构建了表达式树并使用 System Linq Expressions 表达式树 API 我有
  • Realm 与 Firestore 上的大型集合同步 - 架构问题/问题

    我在 Firestore 集合中有一个产品对象集合 标题 描述 价格 定量 urlString 等 目前大约有 1000 件商品 但可能会达到 10k 在我的 iOS 应用程序启动时 我设置了一个集合侦听器 db collection pr
  • 如何将 gt 表保存到 Excel 或 Word 文件

    将我漂亮的表格提交给出版商后 他们希望将其保存为 Word 或 Excel 文件 有没有一种简单的方法可以将 gt 表保存为任一格式 或者我最好在 Excel 中重做它们 以下是将 gtsummary 表导出到 Excel 或 RTF 的一
  • spring 4 中的自定义 ExceptionTranslationFilter 来处理 REST AuthenticationException

    我有一个由 Spring Security 保护的 Spring MVC RESTful 应用程序 客户端是 Angular JS 但我的登录和注销页面是普通的 jsp 并且我进行基于表单的登录和注销 成功完成完全身份验证后 我加载我的安全
  • 如何从 Firebase Cloud Functions 删除日志

    我只是在玩Cloud Functions on Firebase并部署了一些随机函数来测试它 现在我想删除所有logs on Firebase console但我找不到办法 有没有CLI命令来做到这一点 或者它会永远存在 或者它们会随着年龄
  • 如何在 Matlab 中计算 3D 网格的投影

    我正在尝试使用 matlab 从不同视图计算 3d 网格的 2d 投影 我现在使用的解决方案是绘制 3D 网格 旋转它并制作屏幕截图 我想知道是否有任何 matlab 内部函数或任何其他解决方案允许我在给定一组顶点和三角形的情况下计算投影而
  • 为什么仅针对 POST 请求,Firebase 上托管的 NextJs 应用会收到“502 Gateway”错误?

    我开始使用 NextJs 框架构建 API 我希望将其托管在 Firebase 上 托管和功能 只要我只发送 GET 请求 一切就正常 当我发送 POST 请求时 我收到一个 502错误的网关 error 复制起来非常简单 您只需下载并部署
  • 从 ostream 获取 char* 而不进行复制

    我有一个ostream并且数据已写入其中 现在我想要该数据的形式char大批 有没有办法在不复制所有字节的情况下获取字符缓冲区及其大小 我的意思是 我知道我可以使用ostringstream并打电话str c str 但会产生一个临时副本
  • 在 SQL 中对包含数字的字符串列进行排序?

    我正在尝试对字符串列进行排序 包含数字 SELECT name FROM mytable ORDER BY name ASC name a 1 a 12 a 2 a 3 你看Mysql的自然排序算法是这样放置的a 12 after a 1
  • 从驱动器号获取驱动器型号

    我想从驱动器号中获取型号名称 例如Crucial CT256MX100SSD1是我的驱动器型号C 可以使用简单的 WMI 查询来检索模型 var hdd new ManagementObjectSearcher SELECT FROM Wi
  • 在 Ubuntu 20.04 上为 pandas 构建轮子需要 20 多分钟,但在 18.04 上不需要

    我有一个 ERPNext 的安装脚本 可以在 Ubuntu 18 04 上正常运行 当我在 20 04 上运行相同的脚本时 我不得不等待 20 多分钟才能完成 而在 18 04 上则需要大约 30 秒 我的脚本包括这两行 env bin p
  • 如何让 vim 使用正确的缩进格式化项目符号列表

    在 vim 中 我可以设置 textwidth 选项 然后将新文本格式化为换行 我还可以使用 gq 命令显式换行文本 然而 项目符号列表的行为对我来说有点出乎意料 vim 文档讨论了使用带有连字符的项目符号列表 当我尝试这样做时 它开始正常
  • router-outlet 不是已知元素

    以下代码有效 app module ts import NgModule from angular core import HttpModule from angular http import AppComponent from app
  • 如何更改此 R 图中的字体系列? [复制]

    这个问题在这里已经有答案了 我正在尝试将轴和图例的字体更改为衬线但添加family serif 没有为传奇工作 我该怎么做呢 plot sort n cdf pch 3 cex 0 5 xlab Order ylab Cn family s
  • pandas 中 groupby 中的排名

    我有一个典型的 面板数据 在计量经济学术语中 不是 pandas 面板对象 数据框有一个Date列和一个ID列 以及包含某些值的其他列 对于每个日期 我需要根据 V1 对 ID 进行横断面排名 分为 10 组 十分位数 并创建一个名为的新列
  • Python:定义特定类型对象的列表

    我想继承一个列表来生成myList类 仅接受一种特定类型的对象 例如整数 我相信装饰者可以优雅地做到这一点 使用怎么样arrays http docs python org library array html 该模块定义了一个对象类型 它
  • XLib:获取光标图像

    有没有办法使用 Xlib 检索当前光标位图 我检查过X光标人 http www xfree86 org 4 3 0 Xcursor 3 html但我没有看到任何方法可以做到这一点 使用 GetCursorImage SelectCursor
  • matlab中的支持向量机

    您能否举一个在 matlab 中使用支持向量机 SVM 进行 4 类分类的示例 例如 atribute 1 atribute 2 atribute 3 atribute 4 class 1 2 3 4 0 1 2 3 5 0 0 2 6 4