《MATLAB智能算法30个案例》:第28章 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断

  • 1. 前言
  • 2. MATLAB 仿真示例
  • 3. 小结

1. 前言

《MATLAB智能算法30个案例分析》是2011年7月1日由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐。本书案例是各位作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。

本书共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。

《MATLAB智能算法30个案例分析》与《MATLAB 神经网络43个案例分析》一样,都是由北京航空航天大学出版社出版,其中的智能算法应该是属于神经网络兴起之前的智能预测分类算法的热门领域,在数字信号处理,如图像和语音相关方面应用较为广泛。本系列文章结合MATLAB与实际案例进行仿真复现,有不少自己在研究生期间与工作后的学习中有过相关学习应用,这次复现仿真示例进行学习,希望可以温故知新,加强并提升自己在智能算法方面的理解与实践。下面开始进行仿真示例,主要以介绍各章节中源码应用示例为主,本文主要基于MATLAB2015b(32位)平台仿真实现,这是本书第二十八章支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断示例,话不多说,开始!

2. MATLAB 仿真示例

打开MATLAB,点击“主页”,点击“打开”,找到示例文件

选中main.m,点击“打开”

main.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能: 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断示例
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-07-09
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 清空环境
clc
clear all
close alltic
%% 第28章 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断
% <html>
% <table border="0" width="600px" id="table1">   <tr>      <td><b><font size="2">该案例作者申明:</font></b></td>    </tr> <tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.matlabsky.com/forum-78-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。</font></span></td></tr><tr> <td><span class="comment"><font size="2">2</font><font size="2">:此案例有配套的教学视频,视频下载请点击<a href="http://www.matlabsky.com/forum-91-1.html">http://www.matlabsky.com/forum-91-1.html</a></font><font size="2">。 </font></span></td> </tr>         <tr>      <td><span class="comment"><font size="2">       3:此案例为原创案例,转载请注明出处(《MATLAB智能算法30个案例分析》)。</font></span></td>   </tr>     <tr>      <td><span class="comment"><font size="2">       4:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>    </tr> <tr>      <td><span class="comment"><font size="2">       5:以下内容为初稿,与实际发行的书籍内容略有出入,请以书籍中的内容为准。</font></span></td>  </tr> </table>
% </html>%% 导入数据
load BreastTissue_data.mat
% 随机产生训练集和测试集
n = randperm(size(matrix,1));
% 训练集——80个样本
train_matrix = matrix(n(1:80),:);
train_label = label(n(1:80),:);
% 测试集——26个样本
test_matrix = matrix(n(81:end),:);
test_label = label(n(81:end),:);%% 数据归一化
[Train_matrix,PS] = mapminmax(train_matrix');
Train_matrix = Train_matrix';
Test_matrix = mapminmax('apply',test_matrix',PS);
Test_matrix = Test_matrix';%% SVM创建/训练(RBF核函数)% 寻找最佳c/g参数——交叉验证方法
[c,g] = meshgrid(-10:0.2:10,-10:0.2:10);
[m,n] = size(c);
cg = zeros(m,n);
eps = 10^(-4);
v = 5;
bestc = 1;
bestg = 0.1;
bestacc = 0;
for i = 1:mfor j = 1:ncmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j))];cg(i,j) = svmtrain(train_label,Train_matrix,cmd);     if cg(i,j) > bestaccbestacc = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);end        if abs( cg(i,j)-bestacc )<=eps && bestc > 2^c(i,j) bestacc = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);end               end
end
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg)];
% 创建/训练SVM模型
model = svmtrain(train_label,Train_matrix,cmd);%% SVM仿真测试
[predict_label_1,accuracy_1] = svmpredict(train_label,Train_matrix,model);
[predict_label_2,accuracy_2] = svmpredict(test_label,Test_matrix,model);
result_1 = [train_label predict_label_1];
result_2 = [test_label predict_label_2];%% 绘图
figure
plot(1:length(test_label),test_label,'r-*')
hold on
plot(1:length(test_label),predict_label_2,'b:o')
grid on
legend('真实类别','预测类别')
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集SVM预测结果对比(RBF核函数)';['accuracy = ' num2str(accuracy_2(1)) '%']};
title(string)
toc
%%
% <html>
% <table width="656" align="left" > <tr><td align="center"><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p></td>    </tr></table>
% </html>

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:

Accuracy = 95% (76/80) (classification)
Accuracy = 69.2308% (18/26) (classification)
时间已过 52.043476 秒。

3. 小结

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。SVM属于是老朋友了,其他的相关仿真示例也比较多,具体专栏链接见文末,在深度学习神经网络之前,它真的确实好用。对本章内容感兴趣或者想充分学习了解的,建议去研习书中第二十八章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

视觉机器学习20讲-MATLAB源码示例
MATLAB 神经网络43个案例分析

《MATLAB智能算法30个案例》:第28章 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断相关推荐

  1. 《MATLAB智能算法30个案例》:第19章 基于模拟退火算法的TSP算法

    <MATLAB智能算法30个案例>:第19章 基于模拟退火算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  2. 《MATLAB智能算法30个案例》:第20章 基于遗传模拟退火算法的聚类算法

    <MATLAB智能算法30个案例>:第20章 基于遗传模拟退火算法的聚类算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  3. 《MATLAB智能算法30个案例》:第4章 基于遗传算法的TSP算法

    <MATLAB智能算法30个案例>:第4章 基于遗传算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析>是 ...

  4. 《MATLAB智能算法30个案例》:第30章 极限学习机的回归拟合及分类——对比实验研究

    <MATLAB智能算法30个案例>:第30章 极限学习机的回归拟合及分类--对比实验研究 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30 ...

  5. 《MATLAB智能算法30个案例》:第8章 基于量子遗传算法的函数寻优算法

    <MATLAB智能算法30个案例>:第8章 基于量子遗传算法的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  6. 《MATLAB智能算法30个案例》:第22章 蚁群算法的优化计算——旅行商问题(TSP)优化

    @[TOC](<MATLAB智能算法30个案例>:第22章 蚁群算法的优化计算--旅行商问题(TSP)优化) 1. 前言 <MATLAB智能算法30个案例分析>是2011年7月 ...

  7. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别

    <MATLAB智能算法30个案例>:第27章 无导师学习神经网络的分类--矿井突水水源判别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法3 ...

  8. MATLAB智能算法30个案例分析pdf

    下载地址:网盘下载 MATLAB智能算法30个案例分析,ISBN:9787512403512,作者:史峰,王辉 等编著 下载地址:网盘下载 转载于:https://www.cnblogs.com/cf ...

  9. 《MATLAB智能算法30个案例》:第25章 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测

    <MATLAB智能算法30个案例>:第25章 有导师学习神经网络的回归拟合--基于近红外光谱的汽油辛烷值预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MA ...

最新文章

  1. JS 中settimeout和setinterval函数的区别
  2. oracle查询表占用空,查询dba_tables 为啥有的表的表空间为空
  3. 《转》八大算法详细讲解
  4. Qt下Sqlite数据库操作
  5. YBTOJ洛谷P4068:数字配对(网络流)
  6. 转:IDEA 创建类注释模板和方法注释模板
  7. 人工智能应用,德国AI公司
  8. P1828 香甜的黄油 (spfa)
  9. 企业发文的红头文件_【红头文件写作格式】 公司红头文件格式范本
  10. 台式计算机开机黑屏,台式电脑开机黑屏只有一个点怎么处理?
  11. 华为arm服务器虚拟化,华为云arm服务器
  12. UCOS操作系统——时间片轮转调度(五)
  13. DP动态规划思想讲解
  14. hadoop 编程规范(hadoop专利分析)
  15. 云数智驱动数据高速增长,浪潮存储提供EB级容量扩展
  16. 鼠标双击DataGridView单元格变成ComboBox
  17. 第14节 三个败家子(14)——在辉煌中走向深渊
  18. laravel 教程链接
  19. 原版win7全新安装后无法通过windows update安装更新的解决办法.2022-10-24
  20. 小处着手, 细化产品

热门文章

  1. 获取某年某月的第一天和最后一天的时间
  2. python socket华为云服务器和客户端通信(tcy)
  3. 经验分享(一)SCAPS-1D太阳能电池模拟软件使用教程-入门
  4. any和some的用法
  5. 【数据分析数据挖掘】异常值的判断与去除——3σ 箱线图分析
  6. 3D动画制作软件有哪些?怎么使用
  7. 第四章 V字时空转化理论一、在江恩理论中时间和空间的关系
  8. apkplug主题切换功能之主题包打包编译-07
  9. 移动APP常用第三方SDK总结
  10. 自己收集的一些逆向工程的入门概念——壳、注册机、算法求逆、反病毒、免杀