面向对象思想理解贝叶斯公式,及其在机器分类中的应用

如何理解贝叶斯公式?我可以借助面向对象的思想去理解它.

假设我有很多JavaBean,

class Bean1 {
String porpertyX=value1
//其他属性......
}

class Bean2{
String porpertyX=value2
//其他属性......
}

//其他JavaBean......

不同的Bean(Bean1,Bean2,...)就可以看作不同的类的事物,

然后这些事物都有共同的属性(生物上叫性状),

一个属性可以有不同的值(也可以叫特征,生物上叫表现型),表现型一般是可以直接得到(观测到)的,举例如下:

class 成熟的西瓜 {
Boolean 瓜蒂是否掉落
float 西瓜体积
float 含糖量
//......
}

class 不成熟的西瓜 {
Boolean 瓜蒂是否掉落
float 西瓜体积
float 含糖量
//......
}

 

根据经验我们知道:

P(西瓜瓜蒂掉落|西瓜成熟)的概率是比较大的,

翻译成面向对象的语言就是:

已知Class1有个属性porpertyX,如果你确定了某个class为Class1的时候,那么很大概率下porperty1∈value1,

这其实就是简单的因果思维,由因得果.

那么现在我反过来,已经知道某个class的porperty1∈value1,那么我判断这个class就是Class1的概率(把握)是多少?

已知:

P(porperty1=value1|class=Class1)

求:

P(class=Class1|porperty1=value1)

核心问题就是这两个条件概率的转化,这就要用到贝叶斯公式了:

P(class=Class1|porperty1=value1)=\frac{P(porperty1=value1|class=Class1)*P(class=Class1)}{P(porperty1=value1)}

具体推到我就不写了.

所以我们能否以西瓜的半径判断西瓜是否成熟呢?

不行,因为P(所有水果摊位上出现大西瓜)和P(西瓜大|西瓜成熟)几乎都是1,所以结果就很滑稽了.

这在机器学习中是比较有用的,因为它要做分类的时候和我们一样也是通过判断事物的属性,

做分类的主要两个要素:

1.选择哪个属性(特征)

2.根据特征决定分类结果

人可以依据逻辑推理,经验总结来完成这两步,

但是机器呢?它不会逻辑推理判断,简单粗暴的方法就是统计方法,反正它算的快.

贝叶斯公式这么一看就好像是专门为它准备的一样,

1.选择用哪个特征:

给它确定数量的内部属性明确的Class1,Class2,Class3的足够多对象clss11,class12,...,class1n,clss21,class22,...,class2m,

clss31,class32,...,class3k,然后它依次选取所有的属性porperty1,porperty2,...,porpertyi

每选定一个porpertyi(取值为valuei),上面贝叶斯公式的右边是可求的,就可以得到当porpertyi取valuei时,判断这个class就是Class1的把握,

只要这个概率比较大(如超过50%),那么它就可以当特征了,好开心.

2.根据特征判断分类结果:

假设经过上一步我已经得到了可用的3个特征以及它们的值,记为porperty1(value1),porperty2(value2),porperty3(value3),

那么以后每遇到class,我就抽它的这三个porperty对应的值,

然后判断它的value集合和我的value集合的合程度.

这就是使用贝叶斯公式抽取特征并进行判断的基本原理和思想,下面是一些个人认为的拓展内容:

1.抽取特征所用的数据集,不同类别的数据比例是否需要和现实生活中的拟合?如果不拟合会对抽取出的特征有怎样的影响?

(我取了几个特值也没太想明白)

2.其实你除了要遍历所有的属性,还要在每取到一个属性下遍历它的可能值

3.根据抽取出的特征时计算出的左边的概率的不同在判断的时候加权

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值