基于matlab的svm分类预测实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab的svm分类预测实现
屈玉涛,邓万宇
(西安邮电大学,陕西西安710061)
摘要:支持向量机(英文简称SVM)可以很好地应用在数据分类及预测上,由于SVM在数据挖掘中具有通用性好、有效 性、计算简单、理论完善等优点,所以得到了广泛的应用,文章利用matlab软件,基于S V M实现了对意大利葡萄酒的分 类和预测。
关键词:SVM;分类;预测
中图分类号:TP393 文献标识码:A文章编号:1673-1131(2017)03-0033-02
〇引言
随着数据种类的增多以及数量的增长,人工处理数据已 经变得不太现实。
B P神经网络在过去获得了大量的应用,但 由于其具有收敛速度慢,容易陷入局部最小值得缺点,BP神经 网络并不能很好地处理实际中的问题。
支持向量机是一种分 类算法,通过最大化不同数据之间边缘距离来提高学习及其 各种方面的能力,能够构建出更为精确的分类模型,另外,也 能够在统计取样较少的情况下,得出较好的统计规律,即,统 计样本少,统计规律良好。
1阐述支持向量机的具体情况
所谓支持向量机是Vapnik以及Corinna Cortes等人于 1995年首先提出的,它的应用范围广泛,较为突出的应用是在 非线性回归以及模式分类等方面。
支持向量机的最本质的作 用就是把一个分类的超平面当作为决策曲面,这样就会让正 例以及反例之间的间隔被其最大边缘化。
SV M被广泛地应用 在自然语言处理、计算机视觉和机器学习中。
支持向量机优点很多,最突出的表现在下面五个方面,一 是不需要进行微调整,即鲁棒性;二是具有很强的通用性,可 以在各种函数中来集中构造其函数;三是具有非常明显的有 效性,可以解决各种事迹问题,并且非常有效;四是涉及的理 论较为完善,具备V C推广性的理论构架;五是计算较为简单, 能够利用较为简单的优化计算就能够实现计算。
例如:SV M的目标函数如公式(1)所示:
r
f{x) = w<D(x) + b*= ^(〇i - a:)0(x,)<I>(x} + /)•
r".⑴=> :(〇• —〇l )K(x,,x) +b
i=1
其中w*代表的是一个d维的向量,b代表的是偏差。
输 入数据X的一个非线性的映射。
K为核函数,(a rai*)为拉格 朗日乘子,X为输入,Y为输出。
classnumber=3,记录的是类别数目;
wine,178*13的一个double型矩阵,记录178个样本的 13个属性;
wine lables,178*1的一个double型矩阵,记录178个样本的类标
2.2数据可视化图
wme数据的box可视化图Proline
00280/00315 of diluted v
Hue
Color intensitys
Proanthocyanms
Nonflavanoid phenols
Flavanoids
Total phenols
Magnesium
Alcalinity of ash
Ash
Malic acid
Alcohol
图i数据的可视化图
3模型的建立
3.1选定训练集与预测集
在这178个样本中,1〜59属于第一类,60〜130属于 第二类,131〜178属于第三类。
现将每个类别分成两组,重 新组合数据,分为训练集(train_wine)和测试集(test_wine)。
第一步:将第一类中的1 ^30样本,第二类中660至95 样本,第三类中的131-153样本当做其训练集
代码表示为:
trainwine= [wine(l:30,:);wine(60:95,:);wine(131:153,:)];
第二对其训练集的标签进行分离
2葡萄酒种类识别相关背景
Wine数据的来源是U CI数据库,记录的是意大利同一区 域上三种不同类型葡萄酒的化学成分分析,数据集里含有178 个样本,每个样本含有13个属性,即化学成分,将每个样本的 类别用标签进行标注,并且已经给出相应标签,,然后将178个 样本的一半看做一个训练集,而另一半当做一个测试集,然后 用这个训练集对SV M进行训练,进而得到其分类模型,再用 得到的模型对测试集进行类标签的预测。
2.1对相关数据进行测试
整体数据存储在wine_data,数据可以从U C I数据库中下 载,数据内容为:
代码表示为:
trainwinelabels =[wine_labels(l:30);wine_labels(60:95); wine_labels(131:153)];
^三步:将第一类中的31至59样本,第二类中的96至 130样本,第三类中的154至178样本当做其测试集 代码表示为:
test_wine= [wine(31:59,:);wine(96:130,:);wine(154:178,:)];
第四步:对其测试集的标签进行分离
代码表示为:
test wine labels =[wine_labels (31: 59); wine labels (96: 130);wine_labels(154:178)]
33
航电系统驱动软件标准组件技术的研究
杜建华、万菁昱2,翟海娜2
(1.中航工业西安航空计算技术研究所;2.中国兵器工业第二0五研究所,陕西西安710065)
摘要:基于组件的软件开发是软件产业化和工程化的必由之路,是实现软件复用的切实可行的途径。
文章对航电系统相 同的产品或模块相同型号和不同型号多个驱动软件项目进行了结构化模型分析,给出了航电系统驱动软件结构化模型 兼容性和重用性分析,提出了航电系统驱动软件组件化模型,并研究了航电系统驱动软件标准组件规模与成本分析。
本 文为航空领域同类型项目组件开发提供了理论分析和借鉴价值。
关键词:航电系统;软件;组件;模型
中图分类号:V243 文献标识码:A文章编号:1673-1131( 2017 )03-0034-03
〇引言
随着军用软件研制要求等级越来越高,基于组件的软件
开发(C o m p o n e n t B ased S oftw are D evelo p m en t,CBSD l u)是软
件产业化和工程化的必由之路,是实现软件复用的切实可行
的途径,也是解决上述问题行之有效的方法&11]。
CBSD的主
旨在于复用预先开发的、经过验证的软件组件构造应用系统,
改变了传统的软件开发方法[a,从而缩短了软件开发周期'节约了开发成本,同时提髙了软件的质量气
本文提出了航电系统驱动软件标准组件技术开发模型,分析了航电系统驱动软件标准组件开发技术,研究了航电系统驱动软件标准组件开发对软件规模与成本的影响,为驱动软件标准组件技术研制提供可参考的依据。
1驱动软件标准组件模型分析
图1结构化开发模型
如图1所示,原有相同产品或模块软件N个项目的功能模块,单元划分相同。
件项目i(i取值范围为[1,N]),划分为M个功能模块,模块ij划分为nj单元,j取值范围为[1,M]。
1.2驱动软件结构化模型数学表示方法
相同产品或模块驱动软件项目满足如下两个条件:①任意两个项目划分的功能模块相同。
②任意两个相同功能模块
1.1驱动软件结构化模型分析划分的功能单元相同。
为了描述相同产品或模块的驱动软件
按照结构化开发方法,将相同产品或模块的多个驱动软件项目划分为功能模块u°],再将功能模块划分为功能单元。
结构化模型,引入集合符号:
项目集合表示{P1,…,:P i,…,P n},i取值范围为[2,n],n为项目个数。
对于任意的i,项目Pi划分为M个模块的集合表
3.2数据预处理
对训练集和测试集采取归一化处理,使原始数据被规整到[〇,1],对相关数据进行预处理,并且将测试集以及训练集规整到[〇,1]区间,利用MATLAB自身携带的归一化的函数进行实现,最后实现对数据进行预处理。
3.3训练与预测
使用训练样本集tr a in_wine对SVM分类器经行训练,用测试样本te s t_wine进行预其中SVM的实现采用的是lib-svm的工具箱。
预测结果可视化见图2所示:
洌试樂的实际分类和颅搠分类图
i:X ©5
r;
际洌试編分类|一
.......:........;.......;......1〇
q i o iii io4〇m6〇3r0 80 90
澜试寒样本
图2预测可视化结果图4结果分析
从实验结果中可以看出,只有测试样本的65号样本,也就是原始数据样本的第95号样本出现了分类错误。
分类的准确率达到了 98.8764%,说明模型建立的比较好,可以进行分类预测。
同时也说明SVM可以很好地处理多种数据类别的分类问题。
5结语
SVM在处理多种数据类别的分类和预测时有着很髙的准确率,同时相比于BP神经网络,SVM收敛速度快且很容易求得全局最优解,随着数据的增多,SVM在未来一定会被更加广泛地应用。
参考文献:
[1]王周益,刘继兴,柳长安.VC++与MATLAB混合编程研
究及开发实例[J]•计算机应用研究,2006 (5) :154- 155.
基金项目:本文由国家自然科学基金资助项目(61572399)及陕西省青年科技新星资助项目(2013KJXX-29)资助。
34。