亲测可行的方法,原文地址:https://www.cnblogs.com/Ran-Chen/p/9462825.html

支持向量机(support vector machine,SVM)是机器学习中一种流行的学习算法,在分类与回归分析中发挥着重要作用。基于SVM算法开发的工具箱有很多种,下面我们要安装的是十分受欢迎的libsvm工具箱。

官网地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

libsvm简介

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

libsvm与MATLAB自带的svm工具箱的区别

在MATLAB中,同样自带了一个svm工具箱,不过相比于libsvm,在功能性和易用性方面有一些差距。具体差别表现在:

  • MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题
  • MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用一对一方法支持多分类
  • MATLAB自带的svm工具箱无法改变高斯核函数中的参数,而libsvm可以
  • MATLAB自带的svm工具箱也有一些优点,比如在解决二次规划问题时,可选三种方法(经典二次方法;SMO;最小二乘),而libsvm只能是SMO。

常见的扩展为多分类的方法有:

  • 一对一(one-versus-one)方法,训练时对于任意两类样本都会训练一个二分类器,最终得到k(k-1)/2个二分类器,共同组成k分类器。对未知样本分类时,使用所有的k(k-1)/2个分类器进行分类,将出现最多的那个类别作为该样本最终的分类结果。

  • 一对多(one-versus-rest)方法:训练时依次把k类样本中的某个类别归为一类,其它剩下的归为另一类,使用二分类的SVM训练处一个二分类器,最后把得到的k个二分类器组成k分类器。对未知样本分类时,分别用这k个二分类器进行分类,将分类结果中出现最多的那个类别作为最终的分类结果。

  • libsvm的下载

    在libsvm的官方主页上可以下载libsvm的扩展包,支持MATLAB、Java、Python等多种语言,这里我们选择MATLAB版本,下载zip文件即可。

或者直接下载我分享的文件包,点击这里下载https://share.weiyun.com/5MYZRR5

注意

如果是从官方主页上下载,需要再下载一个数据集[heart_scale.mat],方便之后的测试,点击这里下载。

如果是下载我分享的文件包,里面已经包含了这个数据集.mat文件,就不需要再下载了。

libsvm的安装

\libsvm-3.23\matlab目录下,有一个README文件,详细说明了安装方法。

如果是windows 64位系统,预编译的二进制文件已经提供,在\libsvm-3.23\windows文件下,可以看到4个文件,分别是libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64。

这样可以跳过下面第一步的编译步骤。

1.编译

如果是win32位系统,需要自己重新编译c文件,生成MATLAB可识别的mexw32文件。编译方法在上述的README文件也有说明。

将MATLAB的工作文件夹调整到\libsvm-3.23\matlab目录下,在MATLAB的命令行窗口输入>> mex -setup,然后选择编译器如VS2010,最后输入指令>>make。编译完成后,当前路径下会生成对应的mexw32(32位系统)mexw64(64位系统)文件。

过程如下:

matlab>> mex -setup

Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C/C++ version 7.1 in C:\Program Files\Microsoft Visual Studio
[0] None

Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C/C++ 7.1
Location: C:\Program Files\Microsoft Visual Studio

Are these correct?([y]/n): y

matlab>> make

注意

我的操作系统是win7 64位,原先安装的是MATLAB2014a和VS2015,发现并不支持libsvm工具包中提供好的mexw64文件,原因是MATLAB的版本过低。

随后我考虑重新编译生成适合自己版本的mexw64文件,结果发现MATLAB2014a不支持识别VS2015,最高支持到VS2013。

所以解决方法有两种,一种是给给VS降级,一种是给MATLAB升级。由于前者涉及很多.net和c++库文件,比较繁琐,所以最方便的做法是安装新版本的MATLAB,新老版本的MATLAB只要不安装在一个文件夹下,一般不会出现干扰情况。

安装MATLAB2016及以上版本就可以支持以上的mexw64文件,同时也能识别更新的c/c++编译器。

MATLAB 2016b的下载、安装、激活方法,可以参考这个链接。

2.重命名函数

在得到libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64这4个文件后,为了避免和svm内置的函数冲突,最好将svmtrain.mexw64、svmpredict.mexw64这两个文件重命名为libsvmtrain.mexw64、libsvmpredict.mexw64。

3.添加到toolbox

将libsvm-3.23文件夹放置到\MATLAB R2016b\toolbox目录下;

主页> 设置路径> 添加文件夹> 选择libsvm-3.23文件夹;

添加并包含子文件夹> 选择libsvm-3.23文件夹;

主页> 预设> 常规> 更新工具箱缓存> 确定

测试

在MATLAB命令行窗口输入一下指令:

load heart_scale
model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g     0.07');
[predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);

若出现以下结果,说明安装正确。

更详细的关于libsvm的使用方法可以参考libsvm文件夹下的README文件或者是官方主页的说明。

MATLAB安装libsvm工具箱的方法相关推荐

  1. matlab的libsvm工具箱(faruto版本)配置问题汇总,用于VS2015+R2017a

    最近因为需要学习SVM(支持向量机)分类的应用,参考的书是<MATLAB 神经网络30个案例分析>. 版本信息:WIN10系统 编译器:VS2015 MATLAB:R2017a 本来只是觉 ...

  2. matlab 基于 libsvm工具箱的svm分类遇到的问题与解决

    matlab 基于 libsvm工具箱的svm分类遇到的问题与解决 参考文章: (1)matlab 基于 libsvm工具箱的svm分类遇到的问题与解决 (2)https://www.cnblogs. ...

  3. MatLab安装ARTE工具箱时不能正常使用load_robot()函数解决方法:

    ARTE工具箱时一款国外一所大学开发的Matlab机器人工具箱,该工具箱关注工业机器人机械臂的设计与开发.该工具箱有较好的开发环境与仿真环境!可以将机器人.stl形式的模型加载到matlab并进行相关 ...

  4. matlab安装LIBSVM

    由于matlab中自带的svmtrain和svmclassify函数只能进行原始的二分(标签只能包含两个类别,正和负),如果想使用多类别标签分类,比如高光谱分类等等,那么就需要使用libsvm工具箱, ...

  5. MATLAB安装第三方工具箱

    1.1 如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可: 1.2 如果是单独下载的工具箱,一般情况下仅需要把新的工具箱解压到某个目录. 2 在matlab的file下面的set pa ...

  6. MATLAB安装机器人学工具箱

    一.最新版本 10.3.1机器人工具箱 安装教程 1.工具箱下载地址 http://petercorke.com/wordpress/toolboxes/robotics-toolbox 2.确定下载 ...

  7. MATLAB安装关于工具箱的选择

    众所周知,我们在初次安装MATLAB的时候,都是一股脑的勾选所有的工具箱,这就导致在使用MATLAB的时候,配置低的设备出现蓝屏,卡机等状况.为解决这个问题,我们可以在平时安装MATLAB前,先了解清 ...

  8. MATLAB中libsvm工具箱的使用

    svm的使用 libsvmtrain 输入参数--cmd 输出参数--svm_model libsvmpredict 使用 其它 libsvmtrain 用于模型的训练,其格式为 svm_model= ...

  9. matlab 林智仁,机器学习:林智仁libsvm 工具箱 在matlab下的应用总结

    简单介绍一下机器学习中的libsvm libsvm工具箱在matlab下的安装 libsvm工具箱在matlab下的应用 libsvm的实际应用 小结 一.机器学习中的libsvm介绍 支持向量机(S ...

最新文章

  1. 人工智能 有信息搜索 (启发式)
  2. ASP.NET Core的配置(5):配置的同步[设计篇]
  3. linux 切换python版本_linux下多个python版本切换如何设置
  4. maven多profile环境打包下-P参数和-D参数
  5. Oracle C#处理时间类型的Insert
  6. 前端笔记-通过jQuery获取input数据及html中name的使用
  7. 前端开发_开发软件Hbuilder简介
  8. 分形理论在图像处理中的应用研究(综述)
  9. 实战八:美国人口普查数据进行收入预测分类
  10. idea 如何不依赖maven导入本地依赖 jar
  11. linux安装软路由,软路由安装设置教程【详细步骤】-太平洋IT百科手机版
  12. android win10 投屏,安卓手机投影win10不成功,版本升级前可以
  13. 记一次线上报错{“exception“:“Illegal pattern component: XXX}
  14. Unity3D Soft Mask 软遮罩插件
  15. 数字孪生钢厂开发可视化系统-解决方案
  16. React 版本的真开箱即用的富文本编辑器wysiwyg
  17. sketchup 计算机配置,草图大师sketchup电脑要求配置高吗?
  18. 【工具】png去除黑色背景
  19. Qt for MCUs 1.9正式发布
  20. NGSIM数据集提取换道前4s周围车辆的特征数据

热门文章

  1. Windows下的Java开发环境搭建+常用软件(含下载传送门)
  2. SAP HANA 链接备忘
  3. AXI协议(五)-AXI-STREAM及接入思路解析
  4. 模拟Vue响应式原理
  5. Exchange Server 2013 日常管理经典案例:统计邮箱使用情况
  6. 如何制作一个简单的蓝牙网络多人扑克游戏第一部分
  7. 每日一句:It was well deserved.
  8. 企业用什么留住员工???
  9. 计算机状态下的语言学问题
  10. 金融计算机怎么学,为什么许多人建议本科学数学,研究生阶段转金融或者计算机?学数学的发展方向只有纯数学计算机以及金融吗?......