线性分类器-模式识别
- 格式:pdf
- 大小:1.28 MB
- 文档页数:22
第 1 页第二讲 线性分类器一、 判别函数1、 决策论方法在模式识别中,如果根据模式特征信息,按照决策论的思路,以一定的数量规则来采取不同的分类决策,将待识别的模式划分到不同的类别中去,就称为模式识别的决策论方法。
在决策论方法中,特征空间被划分成不同的区域,每个区域对应一个模式类,称为决策区域(Decision Region )。
当我们判定待识别的模式位于某个决策区域时,就判决它可以划归到对应的类别中。
图1 决策区域需要注意的是:决策区域包含模式类中样本的分布区域,但不等于模式类的真实分布范围。
2、 判别函数如果特征空间中的决策区域边界(Decision Boundary )可以用一组方程0)( x i G来表示,则将一个模式对应的特征向量x 代入边界方程中的)(x i G ,确定其正负符号,就可以确定该模式位于决策区域边界的哪一边,从而可以判别其应当属于的类别,)(x i G 称为判别函数(Discriminant Function )。
判别函数的形式可以是线性的(Linear )或非线性(Non-linear)的。
第 2 页例如图2就显示了一个非线性判别函数,当G (x )>0时,可判别模式x ∈ω1;当G (x )<0时,可判别x ∈ω2。
图2 非线性判别函数非线性判别函数的处理比较复杂,如果决策区域边界可以用线性方程来表达,则决策区域可以用超平面(Hyperplane )来划分,无论在分类器的学习还是分类决策时都比较方便。
例如图3中的特征空间可以用两个线性判别函数来进行分类决策:当G 21(x )>0且G 13(x )>0时,x ∈ω2; 当G 13(x )<0且G 21(x )<0时,x ∈ω3; 当G 21(x )<0 且 G 13(x )>0时,x ∈ω1;当G 21(x )>0且G 13(x )<0时,x 所属类别无法判别。
《模式识别》实验报告三、线性分类器实验1.(a)产生两个都具有200 个二维向量的数据集X1 和X1 ’。
向量的前半部分来自m1=[-5;0]的正态分布,并且S1=I 。
向量的后半部分来自m2=[5;0]的正态分布,并且S1=I。
其中I是一个2×2 的单位矩阵。
(b)在上面产生的数据集上运用Fisher 线性判别、感知器算法和最小平方误差判别算法,需要初始化参数的方法使用不同的初始值。
(c)测试每一种方法在X1 和X1 ’ 上的性能(错误率)。
(d)画出数据集X1 和X1 ’,已经每种方法得到对应参数向量W 的分界线。
Fisher线性判别图1 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数向量w = [-9.9406, 0.9030]’错误率error=0,感知器算法:图2 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[0.1;0.1];迭代次数iter=2参数向量w = [-4.8925, 0.0920]’错误率error=0图3 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[1; 1];迭代次数iter=2参数向量w = [-3.9925, 0.9920]’错误率error=0图4 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[10; 10];迭代次数iter=122参数向量w = [-5.6569, 7.8096]’错误率error=0图5 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[50; 50];迭代次数iter=600参数向量w = [-27.0945, 37.4194]’错误率error=0图6 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[50; 100];迭代次数iter=1190参数向量w = [-54.0048, 74.5875]’错误率error=0最小平方误差判别算法:图7 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[0.1; 0.1];参数向量w = [-0.1908, -0.0001]’错误率error=0图8 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[0.5; 0.5];参数向量w = [-0.1924, 0.1492]’错误率error=0图9 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[1; 0.5];参数向量w = [-0.1914, 0.0564]’错误率error=0图10 红色为第一类,绿色为第二类,直线为对应参数向量W的分界线,参数的初始值为[1; 1];参数向量w = [-0.1943, 0.3359]’错误率error= 0.00502.重复1.中的实验内容,数据集为X2 和X2 ’。
模式识别:线性分类器一、实验目的和要求目的:了解线性分类器,对分类器的参数做一定的了解,理解参数设置对算法的影响。
要求:1. 产生两类样本2. 采用线性分类器生成出两类样本的分类面3. 对比线性分类器的性能,对比参数设置的结果二、实验环境、内容和方法环境:windows 7,matlab R2010a内容:通过实验,对生成的实验数据样本进行分类。
三、实验基本原理感知器基本原理:1.感知器的学习过程是不断改变权向量的输入,更新结构中的可变参数,最后实现在有限次迭代之后的收敛。
感知器的基本模型结构如图1所示:图1 感知器基本模型其中,X输入,Xi表示的是第i个输入;Y表示输出;W表示权向量;w0是阈值,f是一个阶跃函数。
感知器实现样本的线性分类主要过程是:特征向量的元素x1,x2,……,xk是网络的输入元素,每一个元素与相应的权wi相乘。
,乘积相加后再与阈值w0相加,结果通过f函数执行激活功能,f为系统的激活函数。
因为f是一个阶跃函数,故当自变量小于0时,f= -1;当自变量大于0时,f= 1。
这样,根据输出信号Y,把相应的特征向量分到为两类。
然而,权向量w并不是一个已知的参数,故感知器算法很重要的一个步骤即是寻找一个合理的决策超平面。
故设这个超平面为w,满足:(1)引入一个代价函数,定义为:(2)其中,Y是权向量w定义的超平面错误分类的训练向量的子集。
变量定义为:当时,= -1;当时,= +1。
显然,J(w)≥0。
当代价函数J(w)达到最小值0时,所有的训练向量分类都全部正确。
为了计算代价函数的最小迭代值,可以采用梯度下降法设计迭代算法,即:(3)其中,w(n)是第n次迭代的权向量,有多种取值方法,在本设计中采用固定非负值。
由J(w)的定义,可以进一步简化(3)得到:(4)通过(4)来不断更新w,这种算法就称为感知器算法(perceptron algorithm)。
可以证明,这种算法在经过有限次迭代之后是收敛的,也就是说,根据(4)规则修正权向量w,可以让所有的特征向量都正确分类。
模式识别教学大纲模式识别是利用机器模仿人脑对现实世界各种事物进行描述、分类、判断和识别的过程,是信息科学和人工智能的重要组成部分。
模式识别与我们日常生活中所用到的智能技术息息相关,小到手机上的智能语音播报,指纹匹配和人脸识别,大到自动驾驶、医学检测、智能制造都用到了模式识别的相关算法和理论。
课程概述模式识别是一门与人工智能密切相关的专业课,本课程主要系统介绍模式识别的基本理论和方法,包括:模式识别的基本理论、监督模式识别中常用的线性和非线性分类器、非监督模式识别的分类器设计方法以及特征选择和提取的方法、分类器的评价方法等。
模式识别作为一门实践性很强的学科,授课的时候采用算法的理论讲解和实验演示相结合的方法来进行。
通过本课程的学习,不仅可以系统掌握模式识别的基本知识、理论和方法,了解模式识别的发展趋势和应用领域,还能够为将来进一步深入学习和研究模式识别和人工智能打下坚实的基础,帮助我们提高解决工程问题的能力。
授课目标模式识别作为一门实践性很强的学科,授课的时候采用算法的理论讲解和实验演示相结合的方法来进行。
通过本课程的学习,可以系统掌握模式识别的基本知识、理论和方法,了解模式识别的发展趋势和应用领域,不仅能够为将来进一步深入学习和研究模式识别和人工智能打下坚实的基础,还会帮助我们提高解决工程问题的能力。
课程大纲第一章绪论第一讲模式与模式识别第二讲模式识别的主要方法第三讲模式识别系统的应用举例第四讲模式识别系统的典型构成第一章绪论部分的单元测试第二章贝叶斯决策理论第一讲贝叶斯决策基础第二讲基于最小错误率的贝叶斯决策第三讲基于最小风险的贝叶斯决策第四讲贝叶斯分类器的设计第五讲正态分布时的统计决策第六讲matlab代码演示实例贝叶斯决策理论测试(一)贝叶斯决策理论单元测试(二)第三章概率密度函数的估计第一讲最大似然估计第二讲贝叶斯估计第三讲贝叶斯学习概率密度函数的估计的单元测试第四章线性分类器第一讲引言第二讲线性判别函数的基本概念第三讲Fisher线性判别第四讲Fisher线性判别matlab演示第五讲感知器算法第六讲感知器算法实例第七讲感知器算法matlab演示第八讲最小平方误差判别关于感知器算法和最小平方误差判别的测验关于fisher线性判别准则的测验第五章非线性分类器第一讲分段线性判别函数第二讲二次判别函数第三讲神经网络的基础知识和BP神经网络第四讲神经网络参数的确定第五讲多层神经网络在模式识别中的应用方法第六讲BP神经网络的matlab实例单元测试(一)单元测试(二)单元测试(三)第六章其他分类方法近邻法的测试第一讲近邻法原理第二讲快速搜索近邻法第三讲剪辑近邻法第四讲压缩近邻法第七章决策树第一讲决策树第二讲id3算法第三讲随机森林决策树的测试第八章非监督模式识别第一讲动态聚类方法第二讲分级聚类方法非监督模式识别测试题第九章特征选择和特征提取第一讲特征选择和提取的基本概念第二讲特征选择的判据第三讲特征选择的最优和次优算法第四讲特征提取的PCA算法第五讲K-L变换第六讲特征提取的matlab演示实例特征选择的测试题目特征提取的单元测试第十章模式识别系统的评价第一讲监督模式识别中错误率的估计方法第二讲监督模式识别中的交叉验证及自举法第三讲影响分类器性能估计的其它因素第四讲非监督模式识别系统性能的评价系统评价的测试预备知识具有一定的数学基础,掌握了线性代数以及概率论与数理统计两门课程涉及到的知识,如果有人工智能的相关基础就更好了!参考资料[1] 张学工《模式识别》(第3版),清华大学出版社,2010年。
模式识别张学工
基本目的:
(1)使学生熟练掌握模式识别的基本理论和各种方法;
(2)培养学生具有运用模式识别概念和方法解决实际问题的能力。
内容提要:
1、引论(4学时)
模式识别和模式的概念,模式识别系统,模式的基本问题,历史和研究现状。
2、贝叶斯决策与概率密度估计(8学时)
最小错误率贝叶斯决策,最小风险贝叶斯决策,贝叶斯分类器错误率,聂曼-皮尔逊决策,均值向量和协方差矩阵的估计,概率密度的函数逼近和参数估计,正态分布模式的贝叶斯分类器。
3、线性分类器(8学时)
线性判别函数的基本概念,Fisher线性判别,感知器准则函数,最小均方误差准则函数,随机最小错误率线性判别准则函数,支持向量机,多类问题。
4、非线性分类器(8学时)
分段线性判别函数,近邻法,前馈多层神经网络,模拟退火方法,遗传算法。
5、特征选择与提取(8学时)
类别可分性准则,特征选择,基于距离分分性准则的特征提
取,基于K-L变换的特征提取,基于神经网络的特征提取。
6、非监督学习与聚类(8学时)
混合密度和可辨识性,混合正态密度的参数学习方法,k-均值聚类,数据描述与聚类,聚类的准则函数,在线聚类,主成分分析。
教学方式:每周3学时,课堂讲授(90%)、文献阅读和讨论(10%)。
《模式识别》课程教学大纲课程编号:04226课程名称:模式识别英文名称:Pattern Recognition课程类型:专业课课程要求:选修学时/学分:32/2 (讲课学时:28 实验学时:4)适用专业:智能科学与技术一、课程性质与任务模式识别课程是智能科学与技术专业的•门选修课,是研究计算机模式识别的基本理论和方法、应用。
模式识别就是利用计算机对某些物理现象进行分类,在错误概率最小的条件下,使识别的结果尽量与事物相符。
这门课的教学目的是让学生掌握统计模式识别和结构模式识别基本原理和方法。
本课程的主要任务是通过对模式识别的基本理论和方法、运用实例的学习,使学生掌握模式识别的基本理论与方法,培养学生利用模式识别方法、运用技能解决本专业及相关领域实际问题的能力,为将来继续深入学习或进行科学研究打下坚实的基础。
本课程的教学目的是为了使学生能应用模式识别处理计算机自动识别事物,机器学习数据分析中有关的技术问题。
由于本课程的目标是侧重在应用模式识别技术,因此在学习内容上侧重基本概念的讲解,辅以必要的数学推导,使学生能掌握模式识别技术中最基本的概念,以及最基本的处理问题方法。
学生在学习过程中还会用到一些概率论的最基本知识,线性代数中的部分知识,对学生在数学课中学到知识的进一步理解与巩固起到温故而知新的作用。
(该门课程支撑毕业要求中1.1, 2.1, 3.1, 3.3, 4.1, 6.1, 10.1和12.1)二、课程与其他课程的联系先修课程:概率论与数理统计、线性代数、机器学习后续课程:智能感知综合实践先修课程概率论与数理统计和线性代数为学生学习模式识别技术中最基本的概念,必要的数学推导打下基础,机器学习可以使学生建立整体思考问题的方法,并具有系统性能优化的概念。
本课程为后续智能优化方法打下理论基础。
三、课程教学目标1. 学习模式识别基本理论知识,理解参数估计的基本思想,掌握最大似然和贝叶斯儿种典型算法,理解聚类分析的的基本思想,掌握聚类分析的几种典型算法:(支撑毕业要求1.1,2.1)2. 具有数学分析和识别的基本能力;(支撑毕业要求1.1)3. 掌握基本的识别优化创新方法,培养学生追求创新的态度和意识;(支撑毕业要求3.1)4. 培养学生树立正确的分析和识别思想,了解设计过程中国家有关的经济、环境、法律、安全、健康、伦理等政策和制约因素;(支撑毕业要求3.3)5. 培养学生的工程实践学习能力,使学生具有运用标准、规范、手册、图册和查阅有关技术资料的能力;(支撑毕业要求4.1, 6.1)6, 了解模式识别方法前沿和新发展动向;(支撑毕业要求10.1, 12.1)四、教学内容、基本要求与学时分配五、其他教学环节(课外教学环节、要求、目标)无六、教学方法本课程以课堂教学为主,结合作业、自学及洲验等教学手段和形式完成课程教学任务。
《模式识别》课程实验线性分类器设计实验一、实验目的:1、掌握Fisher 线性分类器设计方法;2、掌握感知准则函数分类器设计方法。
二、实验内容:1、对下列两种情况,求采用Fisher 判决准则时的投影向量和分类界面,并做图。
12{(2,0),(2,2),(2,4),(3,3)}{(0,3),(2,2),(1,1),(1,2),(3,1)}T T T T T T T T T ωω⎧=⎪⎨=-----⎪⎩ 12{(1,1),(2,0),(2,1),(0,2),(1,3)}{(1,2),(0,0),(1,0),(1,1),(0,2)}T T T T T T T T T T ωω⎧=⎪⎨=-----⎪⎩ 2、对下面的两类分类问题,采用感知准则函数,利用迭代修正求权向量的方法求两类的线性判决函数及线性识别界面,并画出识别界面将训练样本区分的结果图。
12{(1,1),(2,0),(2,1),(0,2),(1,3)}{(1,2),(0,0),(1,0),(1,1),(0,2)}T T T T T T T T T T ωω⎧=⎪⎨=-----⎪⎩ 三、实验原理:(1)Fisher 判决准则投影方向:*112()w w S μμ-=-(2)感知准则函数:()()kT p z Z J v v z ==-∑当k Z为空时,即()0J v ,*v即为所求p四、解题思路:1、fisher线性判决器:A.用mean函数求两类样本的均值B.求两类样本的均值的类内离散矩阵SiC.利用类内离散矩阵求总类内离散矩阵SwD.求最佳投影方向WoE.定义阈值,并求得分界面2、感知准则函数分类器:A.获得增广样本向量和初始增广权向量B.对样本进行规范化处理C.获得解区,并用权向量迭代修正错分样本集,得到最终解区五、实验结果:1、fisher线性判决分类器:条件:取pw1=pw2=0.5,阈值系数为0.5A.第一种情况B.第二种情况2、感知准则函数判决:条件:取步长row为1判决结果:六、结果分析:1、fisher线性判决器中,调整阈值系数时,分界面会随之平行上下移动,通过调整阈值系数的大小,就能比较合理的得到分界面。
模式识别第四版Pattern Recognition Fourth EditionSergios Teodoridis / Konstantinos Koutroumbas第1章导论1.1 模式识别重要性1.2 特征、特征向量和分类器1.3 有监督、无监督和半监督学习1.4 MATLAB程序1.5 本书内容安排第2至10章有监督模式识别第2章估计未知概率密度函数的贝叶斯分类技术——重点关注:贝叶斯分类、最小距离、最近邻分类器、朴素贝叶斯分类器、贝叶斯网络。
第3章线性分类器的设计——均方理论的概率、偏差-方差、支持向量机(SVM Support Vector Machines)、线性可分性感知器算法均方和最小二乘法理论第4章非线性分类器的设计——反射传播算法基本原理、Cover定理、径向基函数(RBF Radial Basis Function)网络、非线性支持向量机、决策树、联合分类器第5章特征选择(介绍现有的知名技术)——t检验、发散、Bhattacharrya距离、散布矩阵、(重点)两类的Fisher线性判别方法(Fisher’s linear discriminant method LDA)第6章如何利用正交变换进行特征提取——KL变换、奇异值分解、DFT\DCT\DST\Hadamard\Haar变换、离散小波变换、第7章图像和声音分类中的特征提取一阶和二阶统计特征以及行程长度方法第8章模板匹配动态规划和Viterbi算法(应用于语音识别),相关匹配和可变形模板匹配的基本原理第9章上下文相关分类隐马尔可夫模型,并应用于通信和语音识别第10章系统评估和半监督学习第11章至第16章无监督模式识别第2章基于贝叶斯决策理论的分类器2.1 引言模式识别系统中的分类器设计共三章,这是其中的第1章以特征值的统计概率为基础。
设计分类器是将未知类型的样本分类到最可能的类别中。
现在的任务是定义什么是“最可能”首先要完成的任务是条件概率的计算,而贝叶斯规则条件概率是非常有用的2.2 贝叶斯决策理论BAYES DECISION THEORY概率中的贝叶斯规则P(x)是x的概率密度函数贝叶斯分类规则bayes classification rule结论等价表示为:若先验概率相等,上式可表示为:错误率Pe的计算公式最小化分类错误率Minimizing the Classification Error Probability:要证明贝叶斯分类器在最小化分类错误率上是最优的the Bayesian classifier is optimal with respect to minimizing the classification error probability.最小平均风险Minimizing the Average Risk用惩罚Penalty来衡量每一个错误it is more appropriate to assign a penalty term to weigh each error2.3 判别函数和决策面下面的主要讨论在高斯密度函数的情况下,与贝叶斯分类决策面有关的情况。
简答题1、什么是模式与模式识别?模式识别是研究用计算机来实现人类模式识别能力的一门学科。
广义的说,模式是一些供模仿用的,完美无缺的标本,本课程中,将所见到的具体事物成为模式。
将他们所属的类别称为模式类。
模式具有3个直观特性:可观察性,可区分性,相似性。
2、一个典型的模式识别系统主要由哪几个部分组成?数据获取,预处理,特征提取和分类决策。
3、什么是后验概率?系统在某个具体的模式样本X条件下位于某种类型的概率。
4、确定线性分类器的主要步骤?线性分类器的设计就是利用训练样本集建立线性判别函数式,也就是寻找最优的权向量w 的过程。
其主要步骤如下采集训练样本,构成训练样本集。
样本应该具有典型性确定一个准则J=J(w,x),能反映分类器性能,且存在权值w*使得分类器性能最优设计求解w的最优算法,得到解向量w*5、样本集推断总体概率分布的方法?分为两种,参数估计和非参数估计参数估计监督参数估计:样本所属类别及类条件总体概率密度函数的形式已知,某些参数未知非监督参数估计:已知总体概率密度函数形式但未知样本类别,要推断某些参数非参数估计已知样本类别,未知总体概率密度函数形式,要求直接推断概率密度函数本身6、近邻法的基本思想是什么?在分段线性判别函数中,利用每一类的代表点设计分类器,这是最简单和直观的设计方法。
但是这个代表点有时候不一定能很好地代表各个类。
作为一种分段线性判别函数的极端情况,将各类中全部样本都作为代表点,这样的决策方法就是近邻法的基本思想。
7、什么是K近邻法?最近邻法的一个明显的推广是K近邻法。
取未知样本x的k个近邻,看这k个近邻中多数属于哪一类,就把x归为哪一类。
8、监督学习与非监督学习的区别?利用已经标定类别的样本集进行分类器设计的方法称为监督学习方法或有导师学习方法。
从没有标记的样本集开始进行分类器设计,这就是非监督学习方法或无导师学习方法。
监督学习的用途明确,就是对样本进行分类。
训练样本集给出不同类别的实例,从这些实例中找出区分不同类样本的方法,划定决策面非监督学习的用途更广泛,用来分析数据的内在规律,如聚类分析,主分量分析,数据拟合等等监督学习方法总有一个训练阶段和一个测试阶段,训练阶段利用训练集中样本进行分类器设计;而非监督学习方法采用大量未标记类别的样本集来自动训练分类器。
作业2-线性分类器第一章感知机算法 (2)1.1算法原理 (2)1.2程序代码 (2)1.3运行结果及解释 (4)第二章最小二乘算法 (6)2.1算法原理 (6)2.2程序代码 (7)2.3运行结果及解释 (8)第三章支持矢量机算法 (10)3.1算法原理 (10)3.2程序代码 (11)3.3运行结果及解释 (13)第四章三种方法比较 (16)理解和体会 (18)附录 (18)主程序代码:stp2.m (18)生成样本数据代码createSample.m (20)绘图代码plotData.m: (21)第一章 感知机算法1.1 算法原理对于两类的情况,线性分类器是一个超平面: *T =w x 0 ,其中*w 是法向量,x 是训练集的增广向量(每一个训练样本的最后一维值为1),应该满足如下条件:*1*2T T w w >∀∈<∀∈w x 0x w x 0x该算法的代价函数定义为()()TYJ δ∈=∑xx w wx 其中Y 是所有的被分错的训练样本的集合,而针对每一个分错的样本x ,其对应的δx 满足:1211w w δδ=-∈=+∈x x x x ,因此()J w 一定大于0的。
现在的目标就是求解优化函数min ()J w ,为了简单起见,采用梯度下降法,()()YJ δ∈∇=∑w xx w x ,迭代步骤为(1)()()tYt t αδ∈+=-∑xx w w x ,其中t α是迭代步长,同样为了简单起见,可以取一个较小的常数(太大会导致迭代在最小值附近振荡,太小会导致迭代很慢)1.2 程序代码function [w, ws, miss] = perceptron( data, nSample, dim, alpha, nStep) %% 感知机算法 %% 输入 % data 训练数据% nSample 训练的个数,是一个向量(每个类的个数) % dim 代表特征的个数 % alpha 迭代步长 % nStep 迭代次数 % %% 输出% w 线性分类结果 w'x = 0; (x 是增广向量) % ws 迭代过程ws 的变化情况 % miss 迭代过程中分错数的变化情况%% 初始化权重向量 w = rand(dim+1, 1); ws = zeros(dim+1, nStep);miss = zeros(1, nStep);data1 = data{1, 1};data2 = data{1, 2};%% 感知机算法流程for i = 1 : nStep% 做第i次迭代ws(:, i) = w; % 存储当前w的值missNum = 0;% 第一类分错统计for k = 1 : nSample(1)% 遍历当前组的第k个实例x = data1(:, k);if(w' * x < 0)w = w + alpha * x; % 修改w,分错了x,(x属于第一类,本应该满足w'x > 0)missNum = missNum + 1;endend% 第二类分错统计for k = 1 : nSample(2)% 遍历当前组的第k个实例x = data2(:, k);if(w' * x > 0)w = w - alpha * x;missNum = missNum + 1;endendmiss(i) = missNum;endend1.3运行结果及解释对上述函数,生成实例的系数为{[2.0 0.8; -1.5 1.7;], [-1.7 1; 1.3 -0.6;]};分别代表两类数据的两个特征的正太分布的均值和系数。
α=,迭代201次的结果如下图1-1:当算法取步长0.001图1-1 感知机算法结果图图1-1的左边部分为分错次数变化图,说明了算法效果还不错,分错次数一开始降得很快,但因为两类数据不能完全分开,导致错误次数始终不能降到0,从右图中也可以看出,决策线从初始的绿色逐渐变回红色,不断地调整。
α=时,迭代201次结果如下图1-2所示:当取算法步长1图1-2 感知机算法结果图可以发现,由于步长太大的时候,分错样本数发生振荡,因此,梯度下降法不能把步长取太大。
α=,迭代201次的结果如下图1-1:生成样本系数修改为当算法取步长0.001{[2.0 0.8; -1.8 0.9;],[-1.9 1; 1.9 -0.6;]};时候两类可以完全分开,发现算法很快就得到了一条决策线(但是这根线离蓝色类很近,直观上讲并不是最佳的线)图1-3 感知机算法结果图下面给出三维的分类结果:图1-4 感知机算法三维分类结果图第二章 最小二乘算法2.1 算法原理此算法采用了不一样的代价函数,定义为:22()TJ =w y -w x ,其中y 的第i 项i y 代表每一个样本对应的函数值,可以用两种方式定义,第一种:1211T i i i Ti i i w w ==+∀∈==-∀∈y w x x y w x x (此种情况,就不考虑两类的权重),第二种:21211122/()/()T i i i Ti i i N N N w N N N w ==+∀∈==-+∀∈y w x x y w x x (此种情况,考虑了两类的权重)第二种方法中,12,N N 分别代表第一类和第二类的样本数量。
分析优化函数min ()J w ,目的是求解T =y x w ,则有:1()T T T -=⇒=⇒=y x w xy xx w w xx xy ,这个叫做求伪逆。
下面思考,这两种方法有什么不同呢?事实上,对于第一种方案,min ()J w 的效果就是得到三条平行的超平面,1211T T T w w =+∈==-∈w x x w x w x x ,第一个平面是第一类的线性拟合结果,第二个平面是决策面,第三个平面是第二类的线性拟合结果,这种情况下,决策面刚好位于两个拟合平面的中央。
对于第二种情况,得到的三个超平面变为21211122/()/()T T T N N N w N N N w =+∈==-+∈w x x w x w x x ,故而当12N N > 时, 决策面就更靠近第一类所拟合的超平面这是因为此时:212112/()/()N N N N N N +<+2.2程序代码function [w, ww] = meanSquareError( data, nSample, dim) %% mse算法最小化 ||y - w'x||%% 输入% data 训练数据% nSample 训练的个数,是一个向量(每个类的个数)% dim 代表特征的个数%%% 输出% w 线性分类结果 w'x = y; (y 值为1,或-1)% ww 带权重的,(y 值为 n1/n, -n2/n)%% 最小二乘流程n1 = nSample(1);n2 = nSample(2);n = n1 + n2;x = zeros(dim+1, n);y = zeros(n, 1);x(:, 1 : n1) = data{1, 1};x(:, n1+1 : n) = data{1, 2};%% 没有权重的情况y(1:n1, 1) = 1;y(n1+1 : n) = -1;% 最小二乘公式,伪逆w = inv(x * x') * x * y;%% 有权重的情况y(1:n1, 1) = n2 / n;y(n1+1 : n) = -n1 / n;% 最小二乘公式,伪逆ww = inv(x * x') * x * y;end2.3运行结果及解释针对生成系数{[2.0 0.8; -1.8 0.9;], [-1.9 1; 1.9 -0.6;]}; 一类有1000个样本,二类只有300个样本时,运行结果如下:图2-1 最小二乘算法结果图可以看到,两种方法生成了同样的拟合直线,但是在不带权重的条件下,决策面在两条拟合线的中央,而带权重的时候,决策面偏向了蓝色区域(第一类)。
当两类的样本数量一样的时候,就可以得到一样的结果。
图2-2 最小二乘算法结果图图中‘+’型黄色直线和实型黄色直线也重合了,验证了2.1节中理论的正确性。
下面给出三维的结果图:图2-3 最小二乘算法三维结果图图2-4 最小二乘算法三维结果图第三章 支持矢量机算法3.1 算法原理目的是最大化每一类的所有样本点到决策面的欧几里得距离中的最小距离。
可以参考july 的博客/v_july_v/article/details/7624837。
决策面函数()T g =x w x ,那么样本点x 到决策面的欧几里得距离是()g x w,我们可以通过缩放w ,使得第一类最接近决策面的样本点1x 满足是1()1g =x ,第二类最接近决策面的样本点2x 满足是2()1g =-x 。
也就是说优化问题变成了221()2()1J subject to Y =⋅≥T minimize w w w x , 这是一个凸优化的问题,可以用cvx 工具箱解决。
cvx 工具箱的下载地址:/cvx/download/,当样本不可分的时候,如下图:图3-1 svm 算法不可分情况图使用凸优化求解的时候会发生不可解的情况。
就需要把优化问题转换为2211()2()11,2,...,01,2,...,N i i i i J C Y i Nsubject to i N ξξξ==+⋅≥-=≥=∑T minimize w w w x 其中C 是一个常量,用于控制决策面的结果(具体效果见3.3节),这也是一个凸优化的问题,可直接使用cvx 工具箱求解。
3.2 程序代码function [ out, cvx_optval] = stpCvxSvm(data, nSample, dim, type)%% svm 的优化求解,使用cvx 工具箱% min ||w|| s.t. y .* (w' * x) >= 1 (x 是增广向量)%%% 输入% data 训练数据% nSample 训练的个数,是一个向量(每个类的个数)% dim 代表特征的个数% type 表示svm 类型,如果为1表示训练集完全可分,否则不可分%%% 输出% out 线性分类结果 out'x = y; (y 值为1,或-1)% cvx_optval cvx 输出结果%% 初始化数据n1 = nSample(1);n2 = nSample(2);n = n1 + n2;x = zeros(dim+1, n);y = zeros(n, 1);x(:, 1 : n1) = data{1, 1};x(:, n1+1 : n) = data{1, 2};y(1:n1, 1) = 1;y(n1+1 : n) = -1;%% 核心代码,调用cvx 工具箱,优化该QP 问题if type == 1cvx_beginvariable w(dim+1, 1);minimize( norm(w, 2));subject toy .* (x' * w)>= 1;cvx_endelsecvx_beginvariables w(dim+1, 1)rho(n);minimize( norm(w, 2) + 1 * sum(rho) ); subject toy .* (x' * w) >= 1 - rho;rho >= 0;cvx_endendout = w;end3.3运行结果及解释对于二维情况,在线性可分的时候,结果如下:图3-2 svm算法线性可分结果图可以看到,决策线(黄色线)位于两类的支持向量的中央。