|
|
|
@ -1463,3 +1463,100 @@ X轴上的特征表示归一化后,是对某个特征增强10倍,其它不
|
|
|
|
|
|
|
|
|
|
还是上面的例子,这回我们可以说θ=1概率是30%。而且随着所得样本的增多,我们可以把这个概率加以变化,得到θ|x的分布。这个概率其实是信心的含义。
|
|
|
|
|
|
|
|
|
|
#### 贝叶斯算法概述:
|
|
|
|
|
|
|
|
|
|
要解决的问题:
|
|
|
|
|
|
|
|
|
|
- 正向概率:假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大
|
|
|
|
|
- 逆向概率:如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测
|
|
|
|
|
|
|
|
|
|
什么使用贝叶斯:
|
|
|
|
|
|
|
|
|
|
- 现实世界本身就是不确定的,人类的观察能力是有局限性的
|
|
|
|
|
- 我们日常所观察到的只是事物表面上的结果,因此我们需要提供一个猜测
|
|
|
|
|
|
|
|
|
|
#### 贝叶斯推导实例:
|
|
|
|
|
|
|
|
|
|
一所学校的男女比例如下
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
- 男生总是穿长裤,女生则一半穿长裤一半穿裙子
|
|
|
|
|
- 正向概率:随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大
|
|
|
|
|
- 逆向概率:迎面走来一个穿长裤的学生,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别,你能够推断出他(她)是女生的概率是多大吗?
|
|
|
|
|
|
|
|
|
|
公式:
|
|
|
|
|
|
|
|
|
|
- 假设学校里面人的总数是U个
|
|
|
|
|
- 穿长裤的(男生):U * P(Boy) * P(Pants|Boy)
|
|
|
|
|
- P(Boy)是男生的概率=60%
|
|
|
|
|
- P(Pants|Boy)是条件概率,即在Boy这个条件下穿长裤的概率是多大,这里是100%,因为所有男生都穿长裤
|
|
|
|
|
- 穿长裤的(女生):U * P(Girl) * P(Pants|Girl)
|
|
|
|
|
|
|
|
|
|
求解:穿长裤的人里面有多少女生
|
|
|
|
|
|
|
|
|
|
- 穿长裤总数:U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)
|
|
|
|
|
|
|
|
|
|
- P(Girl|Pants) = U * P(Girl) * P(Pants|Girl) / 穿长裤总数
|
|
|
|
|
|
|
|
|
|
U * P(Girl) * P(Pants|Girl) / [U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)]
|
|
|
|
|
|
|
|
|
|
与总人数有关吗?
|
|
|
|
|
|
|
|
|
|
- U * P(Girl) * P(Pants|Girl) / [U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)]
|
|
|
|
|
- 容易发现这里与总人数是无关的,可以消去
|
|
|
|
|
- P(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)]
|
|
|
|
|
|
|
|
|
|
- 假设学校里面的总数是U个
|
|
|
|
|
- 穿长裤的(男生):U * P(Boy) * P(Pants|Boy)
|
|
|
|
|
- P(Boy)是男生的概率=60%
|
|
|
|
|
- P(Pants|Boy)是条件概率,即在Boy这个条件下穿长裤的概率是多大,这里是100%,因为所有男生都穿长裤
|
|
|
|
|
- 穿长裤的(女生):U * P(Girl) * P(Pants|Girl)
|
|
|
|
|
|
|
|
|
|
化简:
|
|
|
|
|
|
|
|
|
|
- P(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)]
|
|
|
|
|
- 分母其实就是P(Pants)
|
|
|
|
|
- 分子其实就是P(Pants,Girl)
|
|
|
|
|
|
|
|
|
|
贝叶斯公式
|
|
|
|
|
|
|
|
|
|
- 
|
|
|
|
|
|
|
|
|
|
#### 拼写纠正实例:
|
|
|
|
|
|
|
|
|
|
- 问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢”
|
|
|
|
|
- P(我们猜测他想输入的单词|他实际输入的单词)
|
|
|
|
|
|
|
|
|
|
用户实际输入的单词记为D (D代表Data,即观测数据)
|
|
|
|
|
|
|
|
|
|
- 猜测1:P(h1|D),猜测2:P(h2|D),猜测3:P(h3|D) ...
|
|
|
|
|
|
|
|
|
|
统一为:P(h|D)
|
|
|
|
|
|
|
|
|
|
- P(h|D) = P(h) * P(D|h) / P(D)
|
|
|
|
|
|
|
|
|
|
- 对于不同的具体猜测h1 h2 h3 ...,P(D)都是一样的,所以在比较P(h1|D)和P(h2|D)的时候我们可以忽略这个常数
|
|
|
|
|
|
|
|
|
|
- P(h|D) = P(h) * P(D|h)
|
|
|
|
|
|
|
|
|
|
对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior)”和“这个猜测生成我们观测到的数据的可能性大小”
|
|
|
|
|
|
|
|
|
|
- 贝叶斯方法计算:P(h) * P(D|h),P(h) 是特定猜测的先验概率
|
|
|
|
|
- 比如用户输入tlp,到底是top还是tip?这个时候,当最大似然不能做出决定性的判断时,先验概率就可以插手进来给出指示——“既然你无法决定,那么我告诉你,一般来说top出现的程度要高许多,所以更可能他想打的top”
|
|
|
|
|
|
|
|
|
|
#### 垃圾邮件过滤实例:
|
|
|
|
|
|
|
|
|
|
- 最大似然:最符合观测数据的(即P(D|h)最大的)最优优势
|
|
|
|
|
- 奥卡姆剃刀:P(h)较大的模型有较大的优势
|
|
|
|
|
- 掷一个硬币,观测到的是“正”,根据最大似然估计的精神,我们应该猜测这枚硬币掷出“正”的概率是1,因为这个才是能最大化P(D|h)的那个猜测
|
|
|
|
|
|
|
|
|
|
- 如果平面上有N个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3),特别地,用N1阶多项式便能够保证肯定能完美通过N个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?
|
|
|
|
|
- 奥卡姆剃刀: 越是高阶的多项式越是不常见
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
- P(h+|D) = P(h+) * P(D|h+) / P(D)
|
|
|
|
|
|
|
|
|
|
P(h-|D) = P(h-) * P(D|h-) / P(D)
|
|
|
|
|
|
|
|
|
|