[Matlab]在Matlab中安装与使用LibSVM工具箱(小白指南) 您所在的位置:网站首页 matlab软件安装包怎么下载 [Matlab]在Matlab中安装与使用LibSVM工具箱(小白指南)

[Matlab]在Matlab中安装与使用LibSVM工具箱(小白指南)

2023-11-21 06:08| 来源: 网络整理| 查看: 265

当初在CSDN上看了很多LibSVM的教程,下载再编译、改路径什么的一头雾水,现在把安装过程图文总结出来,小白也能十分钟安装好LibSVM工具箱!

安装好了可以直接跳到第三节:LibSVM使用指南!

一、LibSVM工具箱下载

工具箱下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

往下拉找到Download LIBSVM,点击zip.file下载压缩包

1.1、官网下载的数据包中没有Matlab对应的数据集格式,点此下载:heart_scale.mat. 下载后放在解压缩后的libsvm-3.24文件夹中即可,此时可以得到如下图所示的文件夹内容:假如是windows 64位系统,预编译的二进制文件会在libsvm-3.24\windows文件下提供,分别是libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredicxw64。

如果是32位系统,就需要手动编译c文件,生成MATLAB可识别的mexw32文件。(具体方法可以百度或者提问)

二、将LibSVM添加到toolbox路径

2.1、为了避免和自带的svm工具箱函数冲突,要将svmtrain.mexw64、svmpredicxw64这两个文件重命名为libsvmtrain.mexw64、libsvmpredicxw64。

2.2、将1.1中下载好的文件夹libsvm-3.24移动至你电脑中Matlab路径下的toolbox文件夹目录中,(即D:\Program Files (x86)\Matlab R2016a\toolbox);

2.3、打开Matlab软件,点击主页> 设置路径> 添加并包含子文件夹> 选择libsvm-3.24文件夹;

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

2.5、新建脚本执行下列指令:

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的使用主要要掌握三个方面:

1、前期数据的归一化与格式处理;2、训练模型和预测的输入参数;3、模型输出参数和预测结果

%%%%%%%这里以下先不用看%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc; clear all; for i=1:50 pop(i,:)=rand(1,2); end x=pop; x=abs(x) % Y. x为粒子的位置 a=isnan(x); %%%%%%%读入数据样本(训练数据集加测试数据集)%%%%%%%%%%%%% %%%%%%%1932个中有四种数据,每种数据的数量就是对应点数%%%%% load co_max_fin co = co_max_fin;%一氧化碳348个点 load ben_max_fin ben=ben_max_fin;%苯432个点 load jben_max_fin jben=jben_max_fin;%甲苯396个点 load jq_max_fin jq=jq_max_fin;%甲醛756个点 train_x1=[ben;jben;jq;co];%共1932个点 %%%%%%%转置后进行列的归一化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%mapminmax是归一化函数,每列是一个样本,每行是多个样本的同一维% output=mapminmax(train_x1',0,1); input=output'; %%%%%%%取出每种样本中的一部分作为训练集Xtrain,并标注Lable在Ytrain中%%%%%%%% %%%%%%%%%%%%%%%将含有多种样本的数据包作为测试集Xtest%%%%%%%%%%%%%%%%%%%%%%% Xtrain=[input(1:288,:);input(433:696,:);input(829:1332,:);input(1585:1816,:)]; Xtest=[input(289:432,:);input(697:828,:);input(1333:1584,:);input(1817:1932,:)]; Ytrain=[1*ones(288,1);2*ones(264,1);3*ones(504,1);4*ones(232,1)]; Ytest=[1*ones(144,1);2*ones(132,1);3*ones(252,1);4*ones(116,1)]; %%%设置模型参数后,用训练集训练出模型model,再用model对训练集进行验证,对测试集进行预测%%%%% c=x(2); %惩罚因子 gama=x(1); %svm的rbf核的参数 cmd=[' -c ',num2str(c),' -g ',num2str(gama)]; model = libsvmtrain(Ytrain,Xtrain,cmd); model = svmtrain(trainlabel, traindata, '-s 0 -t 2 -c 1.2 -g 2.8'); [predict_label_train, accuracy_train,~] = libsvmpredict(Ytrain, Xtrain, model); [predict_label_test, accuracy_test,~] = libsvmpredict(Ytest, Xtest, model); %%%最后一步的参数具体含义见下文:

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有