机器学习简明原理Word文件下载.docx
- 文档编号:21817346
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:211.88KB
机器学习简明原理Word文件下载.docx
《机器学习简明原理Word文件下载.docx》由会员分享,可在线阅读,更多相关《机器学习简明原理Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
SVM的缺点是:
1.经典的SVM算法仅支持二分类,关于多分类问题需要改动模型;
2.不支持类不型数据,需在预处理时期将类不型数据转换成离散型数据。
类不型数据即”男”、”女"
这类由字符串表示某类信息的数据,需将这类数据转换成离散型数据如1、2O
'
•XXxX
・XX
・・XXX
■一XX
图2线性不可分问题
3.SVM差不多原理
SVM原理分为软间隔最大化、拉格朗日对偶、最优化问题求解、核函数、序列最小优化SMO等部分。
尽管这些名词看起来专门晦涩,然而深入探究后就会发觉其中的思想并没有那么复杂。
3.1.软间隔最大化
SVM的核心思路是最大化支持向量到分隔超平面的间隔。
后面所有的推导差不多上以最大化此间隔为核心思想展开。
一般的机器学习问题差不多上先得到模型的目标函数和约束条件,然后在约束条件下对目标函数求得最优解。
因此,我们下面首先需要推导出SVM模型的目标函数和约束条件。
既然要最大化间隔,那么回忆下点x到超平面(w,b)的距离公式:
|w-x4-2?
|
d二II沖II
其中超平面的公式为:
w・x+b=0
由此可推出点X到超平面(w,b)的几何间隔为:
[w-Xi+b\
其中xi代表第i条数据,yi代表第i条数据对应的目标变量的取值,取值有+1和-1两种。
因此当第i条数据被正确分类时,y取值和w*x+b取值的正负一致,几何间隔为正;
当被错误分类时,y取值和w*x+b取值的正负相反.,几何间隔为负。
图3样本数关于w*x+b的取值符号
定义几何间隔中最小的为:
y=minyf
由此,能够得到间隔最大化问题的目标函数:
maxy
并遵循如下约束条件:
做如下变换:
r
y=w
则目标函数转换为:
maxM
相应的约束条件变为:
s・t・x(w+&
)>
y
rtv,rb
W=Pb=7
可得目标函数和约束条件变为:
1
由于W,b成倍数变化并可不能阻碍超平面的公式,因此:
wr=w,bf=b
现在得到最终的间隔最大化的目标函数和约束条件如下:
s.t.yf(w-xf+b)>
1
然而,到那个地点并没有真正得结束。
考虑到现实生活中的真实数据,存在一些特异点即outliers,这些数据点并不满足上面推导出的约束条件,如图4所示,图中点A确实是outlier特异点。
图4Outlier特异点
为了解决这种问题,对每个样本点引进一个松弛变量,使得约束条件变为:
s.t.(w-Xj+&
)+>
Si>
如此给outlier的约束条件加上一个变量,使其能够满足大于等于1的条件。
则相应的目标变量变为:
min^HwII2+£
・
其中c为惩处参数,它的目的是使得目标变量最小即几何间隔最大,且使得松弛变量最小化。
加入松弛变量的目标函数确实是软间隔最大化。
3.2.拉格朗日对偶
关于凸二次优化问题,通过引入拉格朗日乘子,将目标函数和约束条件整合到拉格朗日函数中,如此能方便求解最值问题。
那么,对每个不等式约束引入拉格朗日乘子,得到拉格朗日函数如下:
&
(X口)=|||w||2+C勺一》qw+b)-1+冼)一工"
厂q
>
Ofut>
分析可知:
ma.xaL(w,b,E,d,ii)=y||w||2十
则原最优化问题转换成:
如m%L(wbs,ccu)
由于原最优化问题直接求解专门困难,利用拉格朗日对偶性,可通过求解原最优化问题的对偶问题得到原问题的最优解。
原最优化问题的对偶问题为:
77iarflni2^v>
6>
£
L(w,b,c,ccp)
3.3.最优化问题求解
到此为止,差不多将目标函数和约束条件转换成了极大微小化拉格朗日函数的问题了。
首先求解关于拉格朗日函数的微小化问题。
对三个变量分不求偏导得:
VwL(wbE(Xu)=w-2=0
L(Wjb&
6A)=一》口加=0
V毎L(w,b£
ccu)=£
—业一山=0
将以上三式带入拉格朗日函数中得:
那么极大微小化拉格朗日函数转换成:
加4如加%•恥L(w,b,厲町二机©
:
a一扭》曾沟y为(血•勺)斗E的
为求解方便,将极大转换成微小得:
maxamin,^L(w,b,s,a,\l)=妞E%勾:
X为(竝•巧)一Y曾
0兰曾兰C
3.4.核函数
关于线性不可分问题,如图2所示,这类问题是无法用超平
面划分正负样本数据的。
倘若能将超平面换成超曲面,则能够将正负样本正确分类,如图5所示。
图5超曲面分离正负样本
我们明白曲面的公式是:
k'
JCf+^2^2^+k?
+k_^x^+ZcgXjXj+fcg=0
映射到新坐标如下:
Zj=Xj2jZz=Zg=丫'
2工1»
乙4=v2^2^5=丫'
2%丄工2‘
可将超曲面在新坐标下表示成超平面:
k]Z]+*2Z:
+疋3?
3+*4+*5务十k|5=0,
也确实是将在二维空间(xl,x2)下线性不可分的问题转换成
了在五维空间(zl,z2,z3,z4,z5)下线性可分的问题。
得映射后新坐标下的内积:
(<
p(p)-<
p(q)j=Pi2?
i2+p22Q22+2p1q1+2p2q2+2p1p2q1q2
有一核函数如下:
k(p>
q)=((pq)+l)2=(Pi<
Ii十卩2心"
)2
k(P>
q)=为洛2+甘疔+2卩凤+2p2q^-2p1p2q1q2+t
可知
k(p,q)=((p(p)-(p(q))+1
何为核函数?
核函数在低维空间中完成了映射到高维空间后的内积运算。
这点特不有用,利用核函数,无需先将变量一一映射到髙维空间再计算内积,而是简单得在低维空间中利用核函数完成这一操作。
什么缘故讲不用一一映射到高维空间专门有用呢?
缘故就在于首先我们无法针对每种情况提供精确的映射函数,再者关于需要映射到无穷维的情况显然无法一一映射完成。
那么什么缘故是映射到高维后的内积运算呢?
这是因为在上节中我们得到了如下目标函数:
L(w,b,e,a,p)二mma工玛丐”升(尤厂习)一£
ai
正是因为该目标函数中包含自变量的内积运算,而映射到高维空间后的内积运算又恰好能够通过核函数在低维空间中直接求得,故而有了核函数的由来。
较常用的核函数是高斯核,高斯核能够将低维空间映射到无穷维。
运用核函数后,最优化问题的目标函数和约束条件变为:
mtna
3.5.序列最小优化(Sequentialminimaloptimization)
到目前为止,优化问题差不多转化成了一个包含N个alpha自变量的目标变量和两个约束条件。
由于目标变量中自变量alpha有N个,为了便与求解,每次选出一对自变量alpha,然后求目标函数关于其中一个alpha的偏导,如此就能够得到这一对alpha的新值。
给这一对alpha赋上新值,然后不断重复选出下一对alpha并执行上述操作,直到达到最大迭代数或没有任何自变量alpha再发生变化为止,这确实是SMO的差不多思想。
讲直白些,SMO确实是在约束条件下对目标函数的优化求解算法。
为何不能每次只选一个自变量进行优化?
那是因为只选一个自变量alpha的话,会违反第一个约束条件,即所有alpha和y值乘积的和等于0。
下面是详细的SMO过程。
假设选出了两个自变量分不是alphal和alpha2,除了这两个自变量之外的其他自变量保持固定,则目标变量和约束条件转化为:
=2^na^斗㊁匚尹子+yiy2^izaia2~(旳■*■a2)
NN
十%吐》y:
氐血]十y2a2》yfgKi2
i=2e=3
N
s.t.ffiYi十a2y2=-》*©
=5
f=2
0<
crf<
C
将约束条件中的alphal用alpha2表示,并代入目标函数中,则将目标函数转化成只包含alpha2的目标函数,让该目标函数对alpha2的偏导等于0:
%皿)=o
可求得alpha2未经修剪的值:
之因此讲alpha2是未经修剪的值是因为所有alpha都必
须满足大于等于0且小于等于C的约束条件,用此约束条件将
alpha2进行修剪,修剪过程如下:
ai°
ddyj+a2oddy2=+a2newy2
由此得:
0二®
Oddy】十色讯心旳_色“时力二一%一
0<
a2neu,<
C
分两种情况讨论:
情况1.当yl等于y2时,有:
L=max(0卫『皿+比一C)
H=minfaa^^+az^)
情况2.当yl不等于y2时,有:
a20dd—ajdd0a^'
<
c-ajdd+购。
1^
a畀册<
L=maxQa/dd-如°
血)
H=min(CC-aaoid+a:
2odd)
修剪后,可得alpha2的取值如下:
由alpha2和alpha!
的关系,可得:
=aJdd+Ny/^odd—t^w)
在完成alphal和alpha2的一轮更新后,需要同时更新b
的值,当alphal更新后的值满足O〈alphal〈C时,由KKT条件得:
》啊屁+b=y2
由于篇幅有限,在此就不把推导过程一一列举,可得:
乂=一虽一加危](的庭闪-Q』dd)_北层1©
2呎、‘一色讯今+b。
"
■
同样的道理,当alpha2更新后的值满足OCalphal〈C时可得:
2=-E2-y^K^a^-«
iOdd)-j2/r22(a2n6W-a20dd)十b°
若更新后的alphal和alpha2同时满足大于0且小于C的条件,那么b就等于bl等于b2;
否则,b取bl和b2的中点。
那么问题来了,如何选择alphal和alpha2呢?
选择违背下列KKT条件推导结果的alpha作为alphal:
lOj=o}
Xi-pC%:
)=\fe|0<
C}
(v1,g肉=c}
为了让每次变化尽可能大,alpha2的选择满足如下式子最大,即步长最大化:
咼一方』
其中E是上面提到过的预测值和真实值差值的绝对值,也确实是误差值。
按上述方法不断选择一对alpha并更新,直到达到最大迭代次数或所有alpha都不再变化,则停止迭代。
有朋友就会问,求出alpha之后呢?
如何推断新样本数据属于1依旧-1呢?
不忘了,在最优化求解一节,我们得到了如下:
f(x)=》©
丁怡匕泌)+b
若f(x)大于0,则新样本数据属于1;
否则,新样本数据属于T。
能够见得,求出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,能够在某置信度下推出集合Bo通俗来讲,确实是假如A发生了,那么B也专门有可能会发生。
举个例子,有关联规则如:
『鸡蛋'
面包'
}->
C牛奶'
},该规则的置信度是0.9,意味着在所有买了鸡蛋和面包的客户中,有90%的客户还买了牛奶。
关联规则能够用来发觉专门多有味的规律。
这其中需要先阐明两个概念:
支持度和置信度。
4.2.1.支持度Support
支持度指某频繁项集在整个数据集中的比例。
假设数据集有io条记录,包含「鸡蛋'
「面包‘}的有5条记录,那么r鸡蛋
面包的支持度确实是5/10=0.5o
4.2.2.置信度Confidence
置信度是针对某个关联规则定义的。
有关联规则如{'
鸡蛋'
面包->
r牛奶‘},它的置信度计算公式为{‘鸡蛋‘面包‘,'
牛奶‘}的支持度/r鸡蛋‘面包的支持度。
假设「鸡蛋‘面包'
牛奶'
}的支持度为0.45,r鸡蛋‘面包'
}的支持度为0.5,则{'
面包J->
{'
}的置信度为0.45/0.5=0.9O
关联规则用于发觉if-〉then如此的规则,并能够给出这条规则的可信度(即置信度)。
现实场景中能够用来发觉专门多规律,下面举个例子。
在信息安全领域,需要依照已有流量数据制定规则,来推断是否触发安全报警。
如规则「数据包大’多个ip地址同时发送数据->
异常该规则的置信度为0.85O这条规则表示,当流量数据包大,并有多个ip地址同时向目标ip发送数据时,则有85%的概率存在异常,需要触发报警。
4.3.频繁项集挖掘原理
频繁项集挖掘分为构建FP树,和从FP树中挖掘频繁项集两步。
本节用如下表所示的数据集作为例子展开,该示例数据集共四条数据。
表格1示例数据集
4.3.1.构建FP树
构建FP树时,首先统计数据集中各个元素出现的频数,将频数小于最小支持度的元素删除,然后将数据集中的各条记录按出现频数排序,剩下的这些元素称为频繁项;
接着,用更新后的数据集中的每条记录构建FP树,同时更新头指针表。
头指针表包含所有频繁项及它们的频数,还有每个频繁项指向下一个相同元素的指针,该指针要紧在挖掘FP树时使用。
下面用上文提到的数据集展开讲明,假设最小支持度为2。
首先,统计数据集中各元素出现的次数,得a出现4次,b出现3次,c出现2次,d出现2次,e出现1次。
接着,将出现次数小于最小支持度2的元素(即e)在数据
集中删除,并将数据集按出现次数由高到低排序,得表格2。
表格2示例数据集
然后,用更新后的数据集中的记录创建FP树,并同时更新头指针表。
创建FP树时,当待添加的记录与FP树中的路径相同,则只需更新元素对应的频数;
假如待添加的记录与FP树存在不一致,则在不一致的地点分叉,创建新的结点。
如图6、图9所示。
注意,FP树的根节点是null。
图6向FP树添加第一条记录{a,b,c}
图7向FP树添加第二条记录{a,b,ctd}
图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的频数就都为2O
接着,创建条件FP树,具体的创建过程和上一节创建FP树的过程一样,如图10所示。
null
头指针表
图10c元素的前缀路径构成的条件FP树
注意现在头指针表中包含两个元素,因此对每个元素,需要获得前缀路径,并将前缀路径创建成条件FP树,直到条件FP树中只包含一个元素时返回。
1.对元素a,获得前缀路径为{},则频繁项集返回{c,a};
2.对元素b,获得前缀路径4},则将前缀路径创建成条件
FP树,如图11所示。
注意现在条件FP树中只包含一个元素,故返回频繁项集{c,b,a}o由于元素b也是频繁项,因此{c,b}也是频繁项集。
再加上{c}本身确实是频繁项集,因此c对应的频繁项集有:
{c}{c,a}{c,b}{c,b,a}o
a:
2
a:
2
图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模型不同的的是,朴素贝叶斯模型不需要针对目标变量建立模型,而是借助贝叶斯公式计算样本属于各个类不的概率,然后取概率值大的类不作为分类类不。
之因此称之为朴素,是因为朴素贝叶斯模型假设各属性之间是条件独立的,该假设极大得简化了运算,使得朴素贝叶斯模型变得特不简单。
朴素贝叶斯模型要紧应用在文本分类方面。
那个地点需要用到向量空间模型,立即文本转换成词向量。
词向量的每一项是该词出现的频数。
在朴素贝叶斯中会将频数进一步转换成频率。
如此就完成了文本到数值上的转化,方便后期计算条件概率和先验概率。
朴素贝叶斯模型也有它的优缺点,优点是模型简单,计算快;
缺点是依靠于属性之间条件独立这一假设,然而现实场景下专门多情况并不满足这一假设,使得朴素贝叶斯的准确率受到阻碍。
这种情况需要考虑半朴素贝叶斯,即放松属性之间条件独立这一假设,一定程度上考虑属性之间的依靠关系。
由于篇幅有限,对半朴素贝叶斯感兴趣的话可自行参照文末参考资源学习,本文重点介绍朴
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器 学习 简明 原理