机器学习: 贝叶斯分类器

在机器学习的监督学习里,贝叶斯分类器算是很有名的一个方法了,而且这个方法效果还不错。

贝叶斯方程

我们先来复习一下大学里高数的贝叶斯方程

P(A|B) = \frac{P(B|A) \times P(A)}{P(B)}

只要记住这个方程,后面就都很容易理解 了。

为什么要用贝叶斯

为什么一定是贝叶斯呢?就是因为贝叶斯可以根据 P(A|B) 去推 P(B|A)。我们先看下面的数据集。

现在你根据这个数据集去生成一个模型(现在还不知道怎么生成),然后我给 X = 0,你预测 X=0 时是 Bad 还是 Good。如果用条件概率来表示应该就是求

P(Y=Good|X=0)

P(Y=Bad|X=0)

两个概率,然后比一下哪个概率大,概率大的那个就是预测值喽~。现在看傻眼了,这概率我怎么求呀,一点线索没有。OK,现在贝叶斯就出来求这两个概率了,这里就求上面的概率吧。

P(Y=Good|X=0) = \frac{P(X=0|Y=Good) \times P(Y=Good)}{P(X=0)}

其中,已知 Y=Good 是有 15+287+5 个了,所以

P(X=0|Y=Good) = \frac{15}{15+287+5}=\frac{15}{307}

P(Y=Good) = \frac{15+287+5}{15+287+5+42+338+3}=\frac{307}{690}

P(X=0) = \frac{42+15}{42+15+338+287+3+5}=\frac{57}{690}

整合一下概率为

P(Y=Good|X=0) = \frac{P(X=0|Y=Good) \times P(Y=Good)}{P(X=0)} =\frac{15}{57} \approx 0.2632

以此类推我们把其它的概率都算出来,下面最右边的表格就是我们对给定 X 值的预测概率,其中绿色为较高的概率,会分到那个类。

贝叶斯分类器就没了,原理就是这么简单。不过,像上面使用贝叶斯在细节上会有一点问题,下面来说说这些问题。

Normalization

现在我们慢慢优化上面的分类器。假设现在我们的特征值变成 3 个,分别是 A,B,C 三个,数据集是这样的

不错呀,那么撸起袖子算预测值呗。但是你有没有想到一种情况是 A,B,C 对应的值是 0 呢?如下表。换句话说我的数据集里就没 有一项是 A=0,B=0,C=0,那该怎么办呢?

所以一般计算后的结果会加一个小数使其结果不为 0 就好了,这个过程叫做 Normalization.

Naive Bayes

Naive Bayes 分类器应该都很耳熟了,它主要解决的问题是贝叶斯的计算问题。刚刚也就三个特征值,那如果再多一点那计算量就很大了。公式可能写成这样

P(Y=y∣F_1=f_1,…,F_k=f_k)=\max_y {\frac{P(F_1=f_1,…,F_k=f_k|Y=y) \times P(Y=y)}{P(F_1=f_1,…,F_k=f_k)}}

而且我们不能保证所有特征值都会有对应的 Y 值,如有可能存在 A_1=0,A_2=0,...A_10000=0 没有对应的 Y 值。那这样就计算不了了。所以我们“大概地”,“理想化地”把所有特征值都看成是独立的,于是计算预测概率时就有

P(F_1=f_1,…,F_k=f_k|Y=y) \approx P(F_1=f_1|Y=y) \times P(F_2=f_2|Y=y) \times ... \times P(F_k=f_k|Y=y)

将上面的式子整理一下

P(F_1=f_1|Y=y) \times P(F_2=f_2|Y=y) \times ... \times P(F_k=f_k|Y=y) = \prod^k_{i=1}{P(F_i=f_i|Y=y)}

再代回原来的公式变成

P(Y=y∣F_1=f_1,…,F_k=f_k) \approx \max_y {\frac{P(Y=y) \times \max_y {\prod^k_{i=1}{P(F_i=f_i|Y=y)}}}{P(F_1=f_1,…,F_k=f_k)}}

因为我们只是每次对给定相同的特征值去对比预测值,所以分母是一样的,我们只需要关注分子就可以了。因此,我们直接把分母去掉,只比较分子

要对比的预测值 \approx P(Y=y) \times \max_y {\prod^k_{i=1}{P(F_i=f_i|Y=y)}}

因为这只是我们假想所有特征值是独立的,因此这个方法很 Naive,也就叫成了 Naive Bayes Classifier.

Naive Bayes vs Joint Bayes

下面通过一个例子来对比一下这两个方法

Naive Bayes

因为特征值是独立的,所以 \hat{p}(x_1, x_2|y=1) 不是 0 而是 \hat{p}(x_1|y=1)\hat{p}(x_2|y=1) 的乘积。

Joint Bayes

Joint Bayes 也就是之前的 Bayes 啦。这里特征值不是独立的,而且我们找不到 y=1 的条件下 x_1=1x_2=1 同时成立的样本,因此 \hat{p}(x_1, x_2|y=1) = 0

从上面例子可以看到,如果不用 Naive Bayes 来做,会出现预测概率为 0 的情况,这是很不好的。Naive Bayes 就可以避免这种结果,而且在实际使用中 Naive Bayes 效果还挺不错的,虽然它是一个估算值。

Gaussian Bayes

下面说说高斯贝叶斯分类器。首先说下高斯模型,也就是正态分布模型。

这里面 \mu 表示平均数, \sigma 表示方差,函数的公式是

f(x)=\frac{1}{\sigma \sqrt{2\pi}}e^{- \frac{{(x-\mu)}^2}{2\sigma^2}}

为什么又搞这个玩意呢?因为有些特征值是服从高斯分布的(正态分布),我们首先可以通过数据集里的特征值算出这个特征值服从高斯分布的平均值和方差,然后就得到了对应的高斯分布方程。以后在给定特征值 F_1=f1 时,我们就可以用这个方程去求对应的概率了,如下面代入 x = f_1,这里假定已经算出 \mu\sigma

p(F_1=f_1|Y=y)=\frac{1}{\sigma \sqrt{2\pi}}e^{- \frac{{(f_1-\mu)}^2}{2\sigma^2}}

这样就不用去找总数是多少,符合条件的有多少个,然后再一除得到概率值 。

错误率

最后应该要讲讲这个分类器的错误率了。在分两个种类时,一般使用下面的不等式去看属于 1 类还是 0 类。

p(y=0|x) < p(y=1|x)
p(y=0|x) > p(y=1|x)

可视化这两个概率会得到图

这里有两个相交的地方,红色阴影表示 False Negative,也就是本来应该判为 1 类的,这里判成了 0 类;蓝色阴影表示 False Positive,本来应该判为 0 类,但是判成了 1 类。所以我们有以下公式去算每个区域的概率

  • True Positive Rate: \frac{p(y=1, \hat{y}=1)}{p(y=1)}
  • False Positive Rate: \frac{p(y=1, \hat{y}=0)}{p(y=1)}
  • False Negative Rate: \frac{p(y=0, \hat{y}=1)}{p(y=0)}
  • True Negative Rate: \frac{p(y=0, \hat{y}=0)}{p(y=0)}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容