版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宁夏大学
第八章支持向量机决策树算法www.islide.cc2目录
CONTENT01introduction引言02Algorithmoverview算法概述03Experimentaldata实验数据04Algorithmcombat算法实战05chaptersummary本章小结SectionHeaderHere01introduction引言引言
支持向量机(SupportVectorMachine,SVM)是用于分类的一种算法,也属于有监督学习的范畴。让我们先从一个闯关的故事开始吧;第一关:桌子上似乎有规律地放了两种颜色的球,用一根棍子分离开他们,要求是尽量再放更多的球之后,仍然适用。第二关:桌子放上了更多的球,似乎有一个红球站错了阵营。引言
第三关:将球散乱地放在桌子上。现在已经没有方法用一根棍子将这些球分开了,怎么办呢?用手拍向桌子,然后桌子上的球就被震到空中,瞬间抓起一张纸,插到了两种球的中间。现在从另一个角度看这些球,这些球像是被一条曲线分开了。这些球叫做「data」,棍子叫做「classififier」,最大间隙trick叫做「optimization」,拍桌子叫做「kernelling」,那张纸叫做「hyperplane」。引言
当一个分类问题,数据是线性可分的,我们只要将棍的位置放在让小球距离棍的距离最大化的位置即可,寻找这个最大间隔的过程,就叫做最优化。但是,现实的数据往往是线性不可分的,找不到一个棍将两种小球很好的分类。这个时候,就需要将小球拍起,用一张纸代替小棍将小球进行分类。想要让数据飞起,我们需要的东西就是核函数(kernel),用于切分小球的纸,就是超平面(hyperplane)。如果数据集是N维的,那么超平面就是N-1维的。引言
把一个数据集正确分开的超平面可能有多个(如下图),而那个具有“最大间隔”的超平面就是SVM要寻找的最优解。而这个真正的最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为“支持向量(supportvector)“。支持向量到超平面的距离被称为间隔(margin)。SectionHeaderHere02算法概述SVM算法思想1.算法原理
支持向量机(supportvectormachines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。2.算法流程
一个最优化问题通常有两个最基本的因素:
1)目标函数。
2)优化对象。
在线性SVM算法中,目标函数显然就是那个“间隔”,而优化对象则是超平面。SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想约束条件
虽然找到了目标函数,但是:
(1)如何判断一条直线能够将所有的样本点都正确分类?
(2)超平面的位置应该是在间隔区域的中轴线上,所以确定超平面位置的b参数也不能随意的取值。
(3)对于一个给定的超平面,如何找到对应的支持向量,来计算距离d?
上述三个问题就是”约束条件“,也就是说,要优化的变量的取值范围收到了约束和限制。既然约束确实存在,那么就不得不用数学语言对它们进行描述。这里需要说明的是SVM可以通过一些小技巧,将这些约束条件糅合成一个不等式。SVM算法思想请看下面糅合过程:以下图为例,在平面空间中有红蓝两种点,对其分别标记为:红色为正样本,标记为+1;蓝色为负样本,标记为-1.SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想
(公式20)SVM算法思想
SVM算法思想
SVM算法思想
SVM算法思想
SectionHeaderHere03实验数据1准备数据数据集介绍:
本实验数据集Titanic为1912年泰坦尼克号沉船事件中一些船员的个人信息以及存活状况。这些历史数据已经非分为训练集和测试集,可以根据训练集训练出合适的模型并预测测试集中的存活状况。训练集有891条记录,测试集有418条记录。2处理数据对数据集进行规范化处理,具体实现步骤如下所示:3数据划分对训练数据集进行划分,分别获取数据和对应标签:SectionHeaderHere04案例实战1算法构建SMO算法的伪代码1算法构建构建辅助函数随机选择alpha对:alpha的修剪函数:w的计算:1算法构建下面是简化SMO算法,代码如下:1算法构建简化SMO算法续:1算法构建简化SMO算法续:2训练测试数据数据训练并返回对应的b,alphas,w值:3结果分析
训练后的结果在测试集上进行验证,得到正确率为71%,原因有多种,可能是训练数据集太少,致使在测试集上正确率不够高,可以通过增加训练数据集解决。SectionHeaderHere05本章小结本章小节
支持向量机(SVM)是一种二分类模型,基本模型是定义在特征空间上间隔最大化的线性分类器。当训练可分时候通过硬间隔最大化学习一个线性分类器,训练数据近似线性可分时候,通过软间隔最大化学习一个线性分类器,训练数据不可分时候通过核技巧(低维空间映射到高维空间)和软间隔最大化学习线性分类器。构建它的条件是训练数据线性可分。其学习策略是最大间隔法。SMO算法是支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止。这样通过启发式的方法得到原二次规划问题的最优解。因为子问题有解析解,所以每次计算子问题都很快,虽然计算子问题次数很多,但在总体上还是高效的。www.islide.ccThanks
www.islide.ccSpeakernameandtitle宁夏大学
第九章随机森林算法随机森林算法www.islide.cc42目录
CONTENT01引言02算法概述03实验数据04算法实战05本章小结01引言引言
通过前面章节的学习,了解到决策树算法可以通过根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。但是俗话说得好,三个臭皮匠顶过诸葛亮,一棵树的生成肯定还是不如多棵树。随机森林就是希望构建多个臭皮匠,使最终的分类效果能够超过单个决策树的一种算法。
随机森林就是通过集成学习的思想集成多棵树的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(EnsembleLearning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。其中,“森林”可以比喻为成百上千棵的树,其实这就是随机森林的主要思想——集成思想的体现。通常,随机森林算法可以应用在离散值的分类、连续值的回归、无监督学习聚类以及异常点检测等方面。引言
第四章所讲的决策树,虽然有剪枝等处理方法,但其泛化能力较弱,也极易受异常值的影响。而本章所讲的随机森林算法,可以一定程度上降低过拟合的可能性,降低异常值带来的影响,使分类准确性更高。
本章首先学习集成学习及其两大流派,再围绕集成思想的具体实现——随机森林算法,介绍其算法流程,分析其优缺点;其次,依托汽车评价数据集,对数据集进行数据准备、数据分析、数据处理操作;最后,构建随机森林模型,并对模型参数和特征数量进行修改,分析各因素对模型准确率的影响。02算法概述1、集成学习概述
集成学习(Ensemblelearning)就是将若干个弱分类器通过一定的**策略组合**之后产生一个强分类器。弱分类器(WeakClassififier)指的就是那些分类准确率只比随机猜测略好一点的分类器,而强分类器(StrongClassififier)的分类准确率会高很多。这里的"强"和"弱"是相对的。
目前集成学习算法的流派主要有两种:(1)bagging、(2)boosting1.1bagging
自举汇聚法(bootstrapaggregating),也称为bagging方法,是一种根据均匀概率分布从数据集中重复抽样(有放回的)的技术。
这种方法将训练集分成m个新的训练集,然后在每个新训练集上构建一个模型,各自不相干,最后预测时将这个m个模型的结果进行整合,得到最终结果。
整合方式分为两种,分类问题用投票表决(最多票的类别即为预测类别),回归用均值。
值得注意的是,由于新数据集中的每个样本都是从原始数据集中有放回的随机抽样出来的,使得新数据集中存在重复的值,而原始数据集的某些值就不会出现在新集合当中。1.1baggingbagging方法的流程,如下图所示:
从图中可以看出,bagging方法根据有放回的随机抽样构造n个数据集,将某个学习算法分别作用于每个数据集就得到了n个弱分类器,然后根据每个弱分类器返回的结果,采用一定的组合策略得到最后需要的强分类器。
bagging方法的代表算法是**随机森林**,准确的来说,随机森林是bagging的一个特化进阶版。1.2boosting
Boosting是集成学习的重要分支,其核心思想就是通过弱分类器的不断集成,形成一个强分类器。具体地,每轮迭代产生的新分类器都是重点改进之前轮没有处理好的地方,这样新产生的分类器与之前分类器的集成就能够产生一个更强的分类器,重复这一过程,直到达到任务目标。与上述bagging相比,两者的区别如下:(1)Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。(2)Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boosting的各轮训练集的选择与前面各轮的学习结果有关。(3)Bagging的各个预测函数没有权重,而Boosting是有权重的。(4)Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。2.1随机森林算法流程
为了描述方便,我们设训练集为T,有N个样本,即T={t1,t2,…,tN},设特征集为F,有M维特征,即F={f1,f2,…,fM},类别集合为C,有L种类别,即C={c1,c2,…,cL},测试集为D,有λ个测试样本,即D={d1,d2,…,dλ}。
随机森林的算法流程如下所示:(1)从容量为N的训练集T中,采用自助抽样法(bootstrap),即有放回地抽取N个样本,作为一个训练子集Tk。子数据集的数据量是和原始数据集相同的,不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。(2)对于训练子集Tk,从特征集F中无放回地随机抽取m个特征,其中m=log2M(向上取整),作为当前节点下决策的备选特征,从这些特征中选择最好地划分训练样本的特征。在单个决策树在产生样本集和确定特征后,从根结点开始,自上而下生成一个完整的决策树Sk(不需要剪枝);2.1随机森林算法流程(3)重复n次步骤1和2,得到n个训练子集T1,T2,…,Tn,并生成决策树S1,S2,…,Sn,将n个决策树组合起来,形成随机森林;(4)将测试集D的样本dμ输入随机森林中,让每个决策树对dμ进行决策,然后采用多数投票法(MajorityVotingAlgorithm)对决策结果投票,最终决定dμ的分类;(5)重复λ次步骤4,直到测试集D分类完成。随机森林建立过程如下图所示:
2.2随机森林算法优缺点
随机森林算法的优点如下:
(1)随机森林的方法即对训练样本进行了采样,又对特征进行了采样,充分保证了所构建的每个树之间的独立性,使得投票结果更准确。
(2)随机森林的随机性体现在每棵树的训练样本是随机的,树中每个节点的分裂属性也是随机选择的。有了这2个随机因素,即使每棵决策树没有进行剪枝,随机森林也不会产生过拟合的现象。
(3)随机森林可以判断特征的重要程度,可以判断出不同特征之间的相互影响。
(4)随机森林对某些特殊数据集,仍有较好效果。比如:对于不平衡的数据集来说,它可以平衡误差;对于有很大一部分特征遗失的数据集来说,仍可以维持准确度。2.2随机森林算法优缺点随机森林算法的缺点如下:
(1)随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
(2)对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
(3)随机森林的最大缺点是计算复杂。因为大量的决策树被用来进行预测,使得随机森林在进行预测时非常缓慢,非常耗时。03实验数据1.1数据集介绍实验数据集:CarEvaluationDatabase(汽车评估数据集)实验目的:利用汽车评估数据集构建随机森林模型来预测汽车的质量。
本实验所采用的汽车评估数据库源自一个简单的分层决策模型,最初是为演示DEX开发的。通过对数据集中包含的汽车多种细节,例如:车门数量、后备箱大小、维修成本等,来确定汽车的质量,将汽车质量分成4种类型:不达标、达标、良好、优秀。数据集中7个属性列的具体信息如下表所示:1.2数据集下载及导入
本实验所采用的数据集依旧来源于UCI数据集,链接为:
/ml/datasets/Car+Evaluation。
导入数据集:2、分析数据
首先,查看数据集的维度,并查看数据前五行,了解各属性列列名和属性值情况。从数据集前五行可以看出,每列列名含义未知,故需要对列名进行重命名。对上述导入的数据集数据进行探索性分析,增强对其中数据的理解。2、分析数据其次,查看数据集摘要,了解数据集各列的数据类型、是否为空值及内存占用情况。
可以从输出结果看出,数据集中没有缺失值。接下来将进一步确认这一点。从上面看出数据集中不存在缺失值。2、分析数据最后,查看分类变量的各值频率分布。可以从上图看出,这些分类变量本质上是有序的。3、处理数据
完成数据分析后,开始对数据进行处理。首先按照一定比例地要求(test_size=0.33),将新生成的数据集分为训练集和测试集两部分。
经过划分,可以看出训练集共有1157条记录,测试集共有571条记录。3.2特征工程
由于原始数据的属性值较为复杂,故需要进一步采取特征工程,将原始数据转换为有用特征,提高模型的预测能力,接下来将对变量进行特征工程。
从上述结果可以看到数据集中的六种变量都是分类变量,下一步对训练集和测试集的分类变量进行编码。
完成特征工程后,所有分类变量都已进行简单的顺序编码。数据处理完毕后,接下来将开始算法实战环节。04案例实战1、创建随机森林分类器
首先,借助sklearn包中的RandomForestClassifier()函数来实现随机森林分类器的创建,将其实例化。n_estimators参数,即随机森林中数目的数量,它的默认值为10。
其次,使用训练集来训练模型,这里使用fit()函数来进行训练。
最后,来预测测试集的结果,并检查分类的准确率。
在这里,建立了随机森林分类器模型,其中默认参数为n_estimators=10,即使用了10个决策树来构建模型。接下来,将增加决策树的数量,并查看其对准确性的影响。输出结果为:Modelaccuracyscorewith10decision-trees:0.9247。2、创建修改参数的随机森林
将RandomForestClassifier()函数中n_estimators属性值改为100,即采用100棵决策树来进行预测。输出结果为:Modelaccuracyscorewith100decision-trees:0.9457。10棵决策树的模型准确度得分为0.9247,而100棵决策树的模型准确度得分为0.9457。因此可以看出随机森林的准确度随着模型中决策树的数量而增加。3、使用随机森林模型找重要特征
上述的实验,将六个特征全部采用。但从实际角度出发,所有特征对目标变量的影响力并非是相同的,他们其中有的对目标变量起决定性作用,有的甚至不起任何作用。接下来,将只选择重要的特性,使用这些特征构建模型,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水工闸门运行工岗前冲突解决考核试卷含答案
- 细菌性疫苗生产工安全风险测试考核试卷含答案
- 双酚A装置操作工安全演练能力考核试卷含答案
- 砖瓦码窑工安全应急知识考核试卷含答案
- 2026年新科教版初中八年级语文上册第三单元说明文方法作用卷含答案
- 2026年新科教版初中八年级道德与法治下册第一单元保障宪法实施卷含答案
- 手风琴装配工岗前基础综合考核试卷含答案
- 列检值班员8S考核试卷含答案
- 日间手术流程优化:JCI认证的效率提升路径
- 日间手术医保与绩效挂钩模式
- (二模)烟台市2026年5月高三高考适应性测试英语试卷(含答案)+听力音频
- 广东省湛江市2026年高三冲刺模拟物理试卷(含答案解析)
- 2026江苏徐州市新盛集团下属城商集团招聘12人备考题库及答案详解(典优)
- 仓库保管员应会考试试题及答案
- 2025湖北武汉新芯集成电路制造有限公司招聘184人笔试历年参考题库附带答案详解
- 浙江温州市十校联合体2025-2026学年高一下学期4月期中考试语文试题及参考答案
- 山东省潍坊市2026届高三下学期4月高考模拟考试(二模)语文试题(含答案)
- (二模)郑州市2026年高三毕业年级第二次质量预测语文试卷(含官方答案)
- 娄底市2026教师资格证笔试-综合素质-教育知识与能力试卷(含答案)
- 2026福建鑫叶投资管理集团有限公司(第一批 )社会招聘32人笔试备考试题及答案解析
- 2025年团校共青团入团积极分子考试题【附答案】
评论
0/150
提交评论