背景
算是机器学习比较经典的算法中之一了,刚开始接触机器学习的时候就有耳闻,当时看了看,看不懂,现在回过头来渐入佳境,写个博客mark一下。
贝叶斯定理
贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1763 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。
按照乘法法则:
P(A∩B)=P(A)P(B|A)=P(B)P(A|B)
如上公式也可变形为:
P(B|A)=P(A|B)P(B)P(A)
举个栗子:
小明的择偶观,下面这个表格是小明对5个不同的妹子的态度。
罩杯 | 风格 | 小明的态度 |
---|---|---|
A | 清纯 | 不喜欢 |
A | 呆萌 | 不喜欢 |
C | 性感 | 喜欢 |
C | 清纯 | 喜欢 |
D | 性感 | 喜欢 |
那么现在问题来了,假如又来个D罩杯清纯风格的妹子(话说D罩杯还能是清纯风格么。。。),小明喜欢这个妹子的概率是多少呢?即求:
P(小明喜欢|(D罩杯×清纯))
由上面的贝叶斯定理:
P(小明喜欢|(D罩杯×清纯))=P((D罩杯×清纯)|小明喜欢)P(小明喜欢)P(D罩杯×清纯)
假设D罩杯和清纯是相互独立的事件:
P(小明喜欢|(D罩杯×清纯))=P(D罩杯|小明喜欢)P(清纯|小明喜欢)P(小明喜欢)P(D罩杯)P(清纯)=13×13×0.60.2×0.4=56
大概是83.33%左右,小明会喜欢这个妹子,概率还是挺高的。
朴素贝叶斯分类器
上面那个例子就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。用更学术的语言来阐述一下:某一个体有n个特征: F1,F2,F3,...,Fn ,有m个类别: C1,C2,C3,...,Cm 。我们要给某个个体分类,就是求
max:P(Ci|(F1×F2...×Fn))其中i=1,2,3,...m
根据贝叶斯定理可得:
P(Ci|(F1×F2...×Fn))=P((F1×F2...×Fn)|Ci)P(Ci)P(F1×F2...×Fn)
P(F1×F2...×Fn) 对每个分类而言都是相等的,问题转换成了求 P((F1×F2...×Fn)|Ci)P(Ci) 的最大值。假设这些特征之间相互独立,问题又变成了求 P(F1|Ci)P(F2|Ci)...P(Fn|Ci)P(Ci) 的最大值,这些值都是可以通过训练数据得到的。