白话贝叶斯算法

    贝叶斯算法是一个很漂亮的算法,不过要真正掌握它,除了要清楚它的优点,还需要弄清楚它的一些缺点所在.

    先弄清它的本质吧,不谈公式,谈实质。

    吃路边摊的烤肉,吃烤肉是有可能上火的牙痛的,也是有可能拉肚子的, 那么它究竟是导致上火还是导致拉肚子?这个概率如何确定,如何量化它?

    吃多了上火,吃脏了拉肚子, 两个特征我们是无法准确量化与表达的,但我们可以基于统计,知道吃烤肉拉肚子的概率是多少,吃烤肉吃到上火的概率是多少,贝叶斯算法的威力在这里就体现出来了,你在哪里吃,吃了多少,都是有不同的上火还是拉肚子的概率的,所以提供足够多的摊位中的人吃烤肉是上火还是拉的样本,它就能正确识别出,你在某摊位吃了东西,是拉肚子的机率更高还是上火的机率更高,它会挑选出一个概率更大的结果告诉你。

    简单来说,它就是能告诉你,什么情况下,根据历史数据,什么是最有可能的,听起来很美好,不过你要是用来算彩票或是股票,那还是省省吧。
 
    为什么?注意观察这种方法,可以发现,它有一些特别的要求:
    首先,要求你输入的条件有一定的相对独立性,如果没有,事情就会变得复杂,如果你不清楚条件之间的关系,就会完蛋。
    这样说太抽象,具体举例:你有两块钱,买了彩票中了五百万,然后包了二奶,两块钱与二奶之间,必须有个条件是你中了五百万,要不二块钱你是包不了二奶的。
    所以条件之间产生了依赖关系,中间有一个关键的条件,对于这种情况,贝叶斯算法只能改进,把条件建立为有向图,然后一步一步来推算,形成连续的概率推算公式,这种情况是比较简单的情况,如果复杂有几十个联立的条件,还有各种其它的条件时,这种方法很容易混乱---因为人不是都能弄清楚条件之间是否有关联性。

    垃圾邮件为什么用贝叶斯算法效果是不错的?因为各份邮件之类都是独立的,很少有连续条件发生。
    
     而像彩票,金融这种,是由什么条件导致它的数字变化,中间又有多少条件,基本上不是大脑弄得清楚的。

    更重要的是,不但对条件有所要求,对提供的样本,这家伙也有要求,比如说,你只提供了一个你有两元钱,你中了奖,你包了二奶的样本,那么即使是你建立了有向图,逐步判断,这家伙也一样会认为,只要有两块钱,你就能包二奶,除非你再提供新的样本,于是这就要求了你提供的样本要完备,那么,中彩票的概率是一千万分之一,你最好提供一千万个样本,而且还不能是一千万个都是中彩票的,必须是完备的自然数据 ,它的统计概率才有可能(注意是可能)近乎事实。

    所以在实际的运用中,几乎所有的贝叶斯算法都是要针对应用的不同方面,针对其中的条件进行其它的概率条件处理及样本的处理,所以,尽量它很优秀,在弄清事物条件与结果的关系时,能给出很漂亮的结果,但是对条件及样本的依赖,导致了应用范围并不广。
posted @ 2010-09-28 14:01  一根神棍研古今  阅读(1202)  评论(1编辑  收藏  举报
Web Counter