机器学习工程师--隐马尔科夫链应用和主题模型
一:贝叶斯网络
经典贝叶斯公式的理解:
- P(A|B)=P(A,B)/P(B) 在B的条件下,A发生的概率等于,AB的联合概率除以B的先验概率。
- P(B|A)=P(B,A)/P(A) 在A的条件下,B发生的概率等于,AB的联合概率除以A的先验概率。
- 有 P(A,B) = P(B,A) 联合概率相等,就是A,B两个圆的交集。
- 那么,P(A|B) = P(B|A) * P(A)/P(B) 这样,就能交换条件概率的条件了。通常发生在B条件不好求,但是A好求的情况下。
朴素贝叶斯:
- 一个 x = {a1,a2,a3...am}为一个待分类的项,a是x的属性。那么,我就想通过x的这些属性,把x分一个类。
- 类别这里有~~~ y={y1,y2...yn} 好了,问题转变成了 当x有这些属性时,x应该是哪一类。
- 问题又变成了,在x有这些属性的条件下,属于某一类的概率是多少。P(y1|x),P(y2|x)...P(yn|x) 有n个类别,不确定哪个类别是x的类别,所以每个类别都要求一次。
- 找到概率最大的maxP(yk|x)这个就是x的类别。
贝叶斯网络:
网络是一个DAG,有向无环图。
- 有向,就是有方向的意思。上图可以看到,a,b,c代表随机变量x,a和b,a和c,b和c在图上都有因果关系,就用箭头表明,由a推出b,这个箭头就有一个条件概率,在a的条件下生成b的概率。
词性标注
词性标注应用:给一个句子标注词性。为什么:预处理句子,使得划分句子简单。猜词简单。
马尔科夫链在句子词性中的作用:对于英文句子而言,遵循一定的语法。比如,副词后面接形容词或者副词或者动词,那么,对于这个句子来说,副词i后面接的是adj或者v的概率是不同的,如果后面是adj,那adj后面是名词还是and或者or的概率也是不同的,那么,每个词前后之间形成的关系形成了一个马尔科夫链,这个马尔科夫链是通过词性连接的;对于一个我们能够看到的句子而言,比如 this is a dog.this是代词,is 是动词,is后面可以接名词或者形容词或者副词,这is和后面接的词之间内部的关系我们是看不到的,我们只知道后面是a dog,名词。说明接名词的概率比adj的概率大。这样,在这个我们可以看到的句子之后,就有一个隐藏的隐马尔科夫链在后面,代表这个句子每个单词词性出现的概率,那么,word代表我们看到的单词,tag代表词性,不难得出下面的贝叶斯方程。
那么,我们想通过每一个单词推出他们的词性,很难,转化为通过tag推出单词的条件概率就容易很多。
主题模型
LDA:无监督贝叶斯模型
对文档的主题进行分类,按照概率的方式;不需要预先标注好的训练集,只需要文档集合分类的数量k;对于每一个主题可以找出一些词进行描述,那这些单词就是特征;是一种典型的词袋模型。
举个例子:100个文档,我想分成k=10个主题,并且不知道这10个主题是什么。但是可以通过概率得到,比如主题1中很多足球的单词,说明这些文档体育出现的概率高,就和体育相关。
如何用