机器学习简明原理.docx

上传人:b****1 文档编号:3129200 上传时间:2023-05-05 格式:DOCX 页数:45 大小:563.24KB
下载 相关 举报
机器学习简明原理.docx_第1页
第1页 / 共45页
机器学习简明原理.docx_第2页
第2页 / 共45页
机器学习简明原理.docx_第3页
第3页 / 共45页
机器学习简明原理.docx_第4页
第4页 / 共45页
机器学习简明原理.docx_第5页
第5页 / 共45页
机器学习简明原理.docx_第6页
第6页 / 共45页
机器学习简明原理.docx_第7页
第7页 / 共45页
机器学习简明原理.docx_第8页
第8页 / 共45页
机器学习简明原理.docx_第9页
第9页 / 共45页
机器学习简明原理.docx_第10页
第10页 / 共45页
机器学习简明原理.docx_第11页
第11页 / 共45页
机器学习简明原理.docx_第12页
第12页 / 共45页
机器学习简明原理.docx_第13页
第13页 / 共45页
机器学习简明原理.docx_第14页
第14页 / 共45页
机器学习简明原理.docx_第15页
第15页 / 共45页
机器学习简明原理.docx_第16页
第16页 / 共45页
机器学习简明原理.docx_第17页
第17页 / 共45页
机器学习简明原理.docx_第18页
第18页 / 共45页
机器学习简明原理.docx_第19页
第19页 / 共45页
机器学习简明原理.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

机器学习简明原理.docx

《机器学习简明原理.docx》由会员分享,可在线阅读,更多相关《机器学习简明原理.docx(45页珍藏版)》请在冰点文库上搜索。

机器学习简明原理.docx

机器学习简明原理

机器学习简明原理

讲明:

本文整理自IBM大数据学习文档,原文作者:

韩笑琳

1.关于机器学习的简介

机器学习是从大量数据中学习出特定规律的算法。

其中提到的规律有专门多种,比如分类、聚类、回归、关联分析等。

分类确实是给定大量带标签的数据,计算出未知标签样本的标签取值。

如年龄40岁以上、工科、研究生以上学历,这类人薪资水平是高收入;年龄20-30岁、文科、大专学历,这类人的薪资水平是低收入;现有一位23岁大专文科人士,求该人的薪资水平是哪类?

依照分类建模,就能够明白那个人的薪资水平专门可能是低收入。

聚类是将大量不带标签的数据依照距离聚拢成不同的簇,每一簇数据有共同的特征。

如电信行业能够依照用户的月长途电话分钟数、上网时长、短信使用数、地理位置、月消费数,将所有用户聚拢成有典型特征的簇,聚拢出的某簇特征可能是月长途电话分钟数长、上网时刻长、地理位置变化不大、月消费数目低,分析可得这类人极有可能是在校大学生,那么电信公司就能够针对这类特定人群制定有针对性的营销策略。

回归是依照特征值、目标变量拟合出特征值与目标变量之间的函数关系,可用来可能特征值对应的目标变量的可能取值。

举个简单的例子,某市今年某100平米的房子价格是80万,某150平米房子价格是120万,那么某200平米的房子价格的取值就可能是200*0.8=160万左右。

关联分析是计算出大量数据之间的频繁项集合。

如超市订单中有大量订单同时包含啤酒与尿布,这其中的频繁项确实是啤酒和尿布,那么超市就能够针对那个规律对啤酒和尿布进行组合促销活动。

分类算法要紧包括K近邻、决策树、朴素贝叶斯、逻辑回归、支持向量机、AdaBoost等;回归要紧包括线性回归、岭回归、lasso、树回归等;聚类要紧包括K-Means以及它的各种变形算法;关联分析要紧包括Apriori、FP-growth等算法。

支持向量机即supportvectormachine(简称SVM),是机器学习领域经典的分类算法。

2.关于SVM的简介

支持向量是距离分类超平面近的那些点,SVM的思想确实是使得支持向量到分类超平面的间隔最大化。

动身点专门容易理解,距离分类超平面近的那些点到该超平面的间隔最大化代表了该超平面对两类数据的区分度强,不容易出现错分的情况。

如图1所示,支持向量到超平面1的间隔大于支持向量到超平面2的间隔,因此超平面1优于超平面2。

图1两个超平面示例

SVM能够专门好得解决二分类问题,关于多分类情况,就需要对模型进行改动。

如one-versus-rest法,这种方法每次选择一个类不作为正样本,剩下其他类不作为负样本,假设一共有3个类不,如此相当于训练出了3个不同的SVM。

然后将测试数据分不带入3个SVM模型中,得到的3个结果中的最大值则为最终的分类结果。

支持向量到分类超平面的间隔最大化的思路专门完美,按这种思路得到的模型理论上是准确度最高的一种模型。

然而使用过SVM的朋友都明白,调用SVM算法的测试准确度并不一定都专门高。

这其中有专门多缘故,比如数据预处理的效果、训练集的大小、特征值的选择、参数设置以及核函数的选择等因素。

任何模型差不多上优点与缺点并存的。

SVM的优点是:

1.能够解决线性不可分的情况。

如图2所示,两类数据点全然无法用超平面分隔开;

2.计算复杂度仅取决于少量支持向量,关于数据量大的数据集计算复杂度低。

SVM的缺点是:

1.经典的SVM算法仅支持二分类,关于多分类问题需要改动模型;

2.不支持类不型数据,需在预处理时期将类不型数据转换成离散型数据。

类不型数据即"男"、"女"这类由字符串表示某类信息的数据,需将这类数据转换成离散型数据如1、2。

图2线性不可分问题

3.SVM差不多原理

SVM原理分为软间隔最大化、拉格朗日对偶、最优化问题求解、核函数、序列最小优化SMO等部分。

尽管这些名词看起来专门晦涩,然而深入探究后就会发觉其中的思想并没有那么复杂。

3.1.软间隔最大化

SVM的核心思路是最大化支持向量到分隔超平面的间隔。

后面所有的推导差不多上以最大化此间隔为核心思想展开。

一般的机器学习问题差不多上先得到模型的目标函数和约束条件,然后在约束条件下对目标函数求得最优解。

因此,我们下面首先需要推导出SVM模型的目标函数和约束条件。

既然要最大化间隔,那么回忆下点x到超平面(w,b)的距离公式:

其中超平面的公式为:

由此可推出点x到超平面(w,b)的几何间隔为:

其中xi代表第i条数据,yi代表第i条数据对应的目标变量的取值,取值有+1和-1两种。

因此当第i条数据被正确分类时,y取值和w*x+b取值的正负一致,几何间隔为正;当被错误分类时,y取值和w*x+b取值的正负相反,几何间隔为负。

图3样本数关于w*x+b的取值符号

定义几何间隔中最小的为:

由此,能够得到间隔最大化问题的目标函数:

并遵循如下约束条件:

做如下变换:

则目标函数转换为:

相应的约束条件变为:

做如下变换:

可得目标函数和约束条件变为:

由于w,b成倍数变化并可不能阻碍超平面的公式,因此:

现在得到最终的间隔最大化的目标函数和约束条件如下:

然而,到那个地点并没有真正得结束。

考虑到现实生活中的真实数据,存在一些特异点即outliers,这些数据点并不满足上面推导出的约束条件,如图4所示,图中点A确实是outlier特异点。

图4Outlier特异点

为了解决这种问题,对每个样本点引进一个松弛变量,使得约束条件变为:

如此给outlier的约束条件加上一个变量,使其能够满足大于等于1的条件。

则相应的目标变量变为:

其中C为惩处参数,它的目的是使得目标变量最小即几何间隔最大,且使得松弛变量最小化。

加入松弛变量的目标函数确实是软间隔最大化。

3.2.拉格朗日对偶

关于凸二次优化问题,通过引入拉格朗日乘子,将目标函数和约束条件整合到拉格朗日函数中,如此能方便求解最值问题。

那么,对每个不等式约束引入拉格朗日乘子,得到拉格朗日函数如下:

分析可知:

则原最优化问题转换成:

由于原最优化问题直接求解专门困难,利用拉格朗日对偶性,可通过求解原最优化问题的对偶问题得到原问题的最优解。

原最优化问题的对偶问题为:

3.3.最优化问题求解

到此为止,差不多将目标函数和约束条件转换成了极大微小化拉格朗日函数的问题了。

首先求解关于拉格朗日函数的微小化问题。

对三个变量分不求偏导得:

将以上三式带入拉格朗日函数中得:

那么极大微小化拉格朗日函数转换成:

为求解方便,将极大转换成微小得:

3.4.核函数

关于线性不可分问题,如图2所示,这类问题是无法用超平面划分正负样本数据的。

倘若能将超平面换成超曲面,则能够将正负样本正确分类,如图5所示。

图5超曲面分离正负样本

我们明白曲面的公式是:

映射到新坐标如下:

可将超曲面在新坐标下表示成超平面:

也确实是将在二维空间(x1,x2)下线性不可分的问题转换成了在五维空间(z1,z2,z3,z4,z5)下线性可分的问题。

得映射后新坐标下的内积:

有一核函数如下:

可知

何为核函数?

核函数在低维空间中完成了映射到高维空间后的内积运算。

这点特不有用,利用核函数,无需先将变量一一映射到高维空间再计算内积,而是简单得在低维空间中利用核函数完成这一操作。

什么缘故讲不用一一映射到高维空间专门有用呢?

缘故就在于首先我们无法针对每种情况提供精确的映射函数,再者关于需要映射到无穷维的情况显然无法一一映射完成。

那么什么缘故是映射到高维后的内积运算呢?

这是因为在上节中我们得到了如下目标函数:

正是因为该目标函数中包含自变量的内积运算,而映射到高维空间后的内积运算又恰好能够通过核函数在低维空间中直接求得,故而有了核函数的由来。

较常用的核函数是高斯核,高斯核能够将低维空间映射到无穷维。

运用核函数后,最优化问题的目标函数和约束条件变为:

3.5.序列最小优化(Sequentialminimaloptimization)

到目前为止,优化问题差不多转化成了一个包含N个alpha自变量的目标变量和两个约束条件。

由于目标变量中自变量alpha有N个,为了便与求解,每次选出一对自变量alpha,然后求目标函数关于其中一个alpha的偏导,如此就能够得到这一对alpha的新值。

给这一对alpha赋上新值,然后不断重复选出下一对alpha并执行上述操作,直到达到最大迭代数或没有任何自变量alpha再发生变化为止,这确实是SMO的差不多思想。

讲直白些,SMO确实是在约束条件下对目标函数的优化求解算法。

为何不能每次只选一个自变量进行优化?

那是因为只选一个自变量alpha的话,会违反第一个约束条件,即所有alpha和y值乘积的和等于0。

下面是详细的SMO过程。

假设选出了两个自变量分不是alpha1和alpha2,除了这两个自变量之外的其他自变量保持固定,则目标变量和约束条件转化为:

将约束条件中的alpha1用alpha2表示,并代入目标函数中,则将目标函数转化成只包含alpha2的目标函数,让该目标函数对alpha2的偏导等于0:

可求得alpha2未经修剪的值:

之因此讲alpha2是未经修剪的值是因为所有alpha都必须满足大于等于0且小于等于C的约束条件,用此约束条件将alpha2进行修剪,修剪过程如下:

由此得:

分两种情况讨论:

情况1.当y1等于y2时,有:

情况2.当y1不等于y2时,有:

修剪后,可得alpha2的取值如下:

由alpha2和alpha1的关系,可得:

在完成alpha1和alpha2的一轮更新后,需要同时更新b的值,当alpha1更新后的值满足0

由于篇幅有限,在此就不把推导过程一一列举,可得:

同样的道理,当alpha2更新后的值满足0

若更新后的alpha1和alpha2同时满足大于0且小于C的条件,那么b就等于b1等于b2;否则,b取b1和b2的中点。

那么问题来了,如何选择alpha1和alpha2呢?

选择违背下列KKT条件推导结果的alpha作为alpha1:

为了让每次变化尽可能大,alpha2的选择满足如下式子最大,即步长最大化:

其中E是上面提到过的预测值和真实值差值的绝对值,也确实是误差值。

按上述方法不断选择一对alpha并更新,直到达到最大迭代次数或所有alpha都不再变化,则停止迭代。

有朋友就会问,求出alpha之后呢?

如何推断新样本数据属于1依旧-1呢?

不忘了,在最优化求解一节,我们得到了如下:

若f(x)大于0,则新样本数据属于1;否则,新样本数据属于-1。

能够见得,求出alpha后,所有问题都迎刃而解了。

4.频繁项集与关联规则FP-growth差不多原理

4.1.从啤酒和尿布引出的频繁项集

在上一节中,要紧介绍了支持向量机SVM模型的原理和实现。

在文章一开始,笔者提到机器学习要紧分为四大类,分不是分类,聚类,回归和关联分析。

第一篇中的SVM就属于分类。

那么下面笔者开始介绍关联分析。

关联分析分为频繁项集挖掘和关联规则挖掘。

生活中的数据本身包含着各种规律,机器学习模型能够从数据中挖掘出这些规律,啤酒与尿布确实是一个典型的例子。

有研究发觉,在超市的订单记录中,啤酒和尿布总是频繁共同出现在同一条订单记录里。

换句话讲,买尿布的人,往往会顺手买啤酒。

这就引出了本文的主题之一,即频繁项集。

频繁项集是在数据库中大量频繁出现的数据集合。

那么发觉这些频繁项集有什么意义呢?

1.用于制定营销策略。

如同啤酒与尿布的例子,超市假如将啤酒和尿布放在相邻的位置,会增加两者的销量。

还可用于制定打折促销活动,给买了啤酒和尿布的客户打折,也能够增加销量。

2.用于发觉共现词。

这种场景事实上我们经常会遇到。

当我们在扫瞄器中输入"频繁项集"时,扫瞄器自动弹出如"频繁项集置信度","频繁项集关联规则"等备选记录,我们每每都会感叹扫瞄器的智能,事实上那个地点的秘诀确实是频繁项集。

也确实是讲,在大量的用户搜索记录中,"频繁项集"和"置信度"共同出现在了大多数的搜索记录中。

同理,"频繁项集"和"关联规则"也频繁得共同出现在搜索记录中。

3.用于发觉事物的热点信息。

从新闻报道和微博中猎取关于某事物的相关文档,然后应用频繁项集挖掘算法能够得到该事物的热点新闻。

主流的频繁项集挖掘算法有Apriori和FP-growth。

其中Apriori算法需要多次扫描数据库,这就使得该算法本身不适合大数据量。

FP-growth,即FrequentPatternGrowth,它通过构建FP树(即FrequentPatternTree)如此的数据结构,巧妙得将数据存储在FP树中,只需要在构建FP树时扫描数据库两次,后续处理就不需要再访问数据库了。

这种特性使得FP-growth算法比Apriori算法速度快。

FP树是一种前缀树,由频繁项的前缀构成,具体细节会在频繁项集挖掘原理一节介绍。

挖掘出频繁项集后,能够从频繁项集中进一步挖掘关联规则。

4.2.关联规则简介

关联规则是在频繁项集的基础上得到的。

关联规则指由集合A,能够在某置信度下推出集合B。

通俗来讲,确实是假如A发生了,那么B也专门有可能会发生。

举个例子,有关联规则如:

{'鸡蛋','面包'}->{'牛奶'},该规则的置信度是0.9,意味着在所有买了鸡蛋和面包的客户中,有90%的客户还买了牛奶。

关联规则能够用来发觉专门多有味的规律。

这其中需要先阐明两个概念:

支持度和置信度。

4.2.1.支持度Support

支持度指某频繁项集在整个数据集中的比例。

假设数据集有10条记录,包含{'鸡蛋','面包'}的有5条记录,那么{'鸡蛋','面包'}的支持度确实是5/10=0.5。

4.2.2.置信度Confidence

置信度是针对某个关联规则定义的。

有关联规则如{'鸡蛋','面包'}->{'牛奶'},它的置信度计算公式为{'鸡蛋','面包','牛奶'}的支持度/{'鸡蛋','面包'}的支持度。

假设{'鸡蛋','面包','牛奶'}的支持度为0.45,{'鸡蛋','面包'}的支持度为0.5,则{'鸡蛋','面包'}->{'牛奶'}的置信度为0.45/0.5=0.9。

关联规则用于发觉if->then如此的规则,并能够给出这条规则的可信度(即置信度)。

现实场景中能够用来发觉专门多规律,下面举个例子。

在信息安全领域,需要依照已有流量数据制定规则,来推断是否触发安全报警。

如规则{'数据包大','多个ip地址同时发送数据'}->{'异常'},该规则的置信度为0.85。

这条规则表示,当流量数据包大,并有多个ip地址同时向目标ip发送数据时,则有85%的概率存在异常,需要触发报警。

4.3.频繁项集挖掘原理

频繁项集挖掘分为构建FP树,和从FP树中挖掘频繁项集两步。

本节用如下表所示的数据集作为例子展开,该示例数据集共四条数据。

表格1示例数据集

数据集

a,b,c

c,d,b,a

d,e,a

b,a

4.3.1.构建FP树

构建FP树时,首先统计数据集中各个元素出现的频数,将频数小于最小支持度的元素删除,然后将数据集中的各条记录按出现频数排序,剩下的这些元素称为频繁项;接着,用更新后的数据集中的每条记录构建FP树,同时更新头指针表。

头指针表包含所有频繁项及它们的频数,还有每个频繁项指向下一个相同元素的指针,该指针要紧在挖掘FP树时使用。

下面用上文提到的数据集展开讲明,假设最小支持度为2。

首先,统计数据集中各元素出现的次数,得a出现4次,b出现3次,c出现2次,d出现2次,e出现1次。

接着,将出现次数小于最小支持度2的元素(即e)在数据集中删除,并将数据集按出现次数由高到低排序,得表格2。

表格2示例数据集

数据集

a,b,c

a,b,c,d

a,d

a,b

然后,用更新后的数据集中的记录创建FP树,并同时更新头指针表。

创建FP树时,当待添加的记录与FP树中的路径相同,则只需更新元素对应的频数;假如待添加的记录与FP树存在不一致,则在不一致的地点分叉,创建新的结点。

如图6~图9所示。

注意,FP树的根节点是null。

图6向FP树添加第一条记录{a,b,c}

图7向FP树添加第二条记录{a,b,c,d}

图8向FP树添加第三条记录{a,d}

图9向FP树添加第四条记录{a,b}

4.3.2.挖掘频繁项集

得到FP树后,需要对每一个频繁项,逐个挖掘频繁项集。

具体过程为:

首先获得频繁项的前缀路径,然后将前缀路径作为新的数据集,以此构建前缀路径的条件FP树。

然后对条件FP树中的每个频繁项,获得前缀路径并以此构建新的条件FP树。

不断迭代,直到条件FP树中只包含一个频繁项为止。

下面以元素c为例,从上文图9创建好的FP树中挖掘频繁项集。

首先,获得以c元素的前缀路径{a:

2,b:

2},注意此处a和b的频数为2是因为c的频数为2,因此与c共同出现的a和b的频数就都为2。

接着,创建条件FP树,具体的创建过程和上一节创建FP树的过程一样,如图10所示。

图10c元素的前缀路径构成的条件FP树

注意现在头指针表中包含两个元素,因此对每个元素,需要获得前缀路径,并将前缀路径创建成条件FP树,直到条件FP树中只包含一个元素时返回。

1.对元素a,获得前缀路径为{},则频繁项集返回{c,a};

2.对元素b,获得前缀路径{a},则将前缀路径创建成条件FP树,如图11所示。

注意现在条件FP树中只包含一个元素,故返回频繁项集{c,b,a}。

由于元素b也是频繁项,因此{c,b}也是频繁项集。

再加上{c}本身确实是频繁项集,因此c对应的频繁项集有:

{c}{c,a}{c,b}{c,b,a}。

图11b元素的前缀路径构成的条件FP树

将其他元素a,b,d同样按照上述对c的操作,得到表格3所示频繁项集。

表格3元素a,b,c,d对应的频繁项集

元素

频繁项集

a

{a}

b

{b}{b,a}

c

{c}{c,a}{c,b}{c,b,a}

d

{d}{d,a}

4.4.关联规则挖掘原理

关联规则挖掘首先需要对上文得到的频繁项集构建所有可能的规则,然后对每条规则逐个计算置信度,输出置信度大于最小置信度的所有规则。

以频繁项集{a,b,c}为例,构建所有可能的规则:

{b,c}->{a},{a,c}->{b},{a,b}->{c},{c}->{a,b},{b}->{a,c},{a}->{b,c}。

对每条规则计算置信度后,输出满足要求的规则即可。

5.NaiveBayes差不多原理

朴素贝叶斯模型要紧用来分类,然而与SVM模型不同的的是,朴素贝叶斯模型不需要针对目标变量建立模型,而是借助贝叶斯公式计算样本属于各个类不的概率,然后取概率值大的类不作为分类类不。

之因此称之为朴素,是因为朴素贝叶斯模型假设各属性之间是条件独立的,该假设极大得简化了运算,使得朴素贝叶斯模型变得特不简单。

朴素贝叶斯模型要紧应用在文本分类方面。

那个地点需要用到向量空间模型,立即文本转换成词向量。

词向量的每一项是该词出现的频数。

在朴素贝叶斯中会将频数进一步转换成频率。

如此就完成了文本到数值上的转化,方便后期计算条件概率和先验概率。

朴素贝叶斯模型也有它的优缺点,优点是模型简单,计算快;缺点是依靠于属性之间条件独立这一假设,然而现实场景下专门多情况并不满足这一假设,使得朴素贝叶斯的准确率受到阻碍。

这种情况需要考虑半朴素贝叶斯,即放松属性之间条件独立这一假设,一定程度上考虑属性之间的依靠关系。

由于篇幅有限,对半朴素贝叶斯感兴趣的话可自行参照文末参考资源学习,本文重点介绍朴素贝叶斯的原理和实现。

5.1.朴素贝叶斯原理

朴素贝叶斯模型要紧利用贝叶斯公式进行展开。

贝叶斯公式如下:

公式中P(C|X)表示X属于类不C的概率,P(X|C)表示类不C中X出现的概率,P(C)表示类不C出现的概率。

其中P(C)称为先验概率,P(X|C)是条件概率,P(C|X)称为后验概率,将后验概率最大的类作为X的类不输出。

假设有C0和C1两个类,由于P(X)差不多上一样的,因此不需要考虑P(X),只需考虑如下:

1.假如P(X|C0)*P(C0)>P(X|C1)*P(C1),则P(C0|X)>P(C1|X),可得X属于C0类;

2.假如P(X|C0)*P(C0)

由上述可知,需要计算P(X|C)和P(C)。

朴素贝叶斯假设属性之间条件独立,可得:

P(X|C)=P(X0|C)*P(X1|C)*P(X2|C)*P(X3|C)*…*P(Xn|C)

令Dc表示训练集D中第C类样本组成的集合,可得:

P(Xi|C)=|Dc,xi|/|Dc,x|,表示类不为C的样本在第i个属性上频数总和除以类不为C的样本集合中所有属性频数总和。

为了幸免P(Xi|C)为0造成P(X|C)为0而阻碍分类结果,在此引入拉普拉斯平滑,本文分不给分子和分母加上1和2,即P(Xi|C)=(|Dc,xi|+1)/(|Dc,x|+2)。

又有P(C)=|Dc|/|D|,表示类不为C的样本集合大小除以数据集D的样本集合大小。

至此,通过P(X|C0)*P(C0)和P(X|C1)*P(C1)的大小比较,可得X所属类不。

然而小数连乘会造成所得值几乎等于0的结果,从而无法比较大小。

鉴于此,往往在实际运算中,会借助log函数,比较log(P(X|C0)*P(C0))和log(P(X|C1)*P(C1))的大小来推断X所属类不。

从而得:

log(P(X|C0)*P(C0))=log(P(X|C0))+log(P(C0))=log(P(X0|C0))+log(P(X1|C0))+log(P(X2|C0))+…+log(P(Xn|C0))+log(P(C0)),

同理可得log(P(X|C1)* P(C1))=log(P(X|C1))+log(P(C1))=log(P(X0|C1))+log(P(X1|C1))+log(P(X2|C1))+…+log(P(Xn|C1))+log

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2