文章目录
判别模型与生成模型
机器学习或者统计学习的方法可以分为判别模型(非概率模型)和生成模型(概率模型)。
判别模型
常见的形式为 y = f(x) ,建立目标变量y和输入特征x之间的映射关系,并且多数情况下会形成决策边界,如下图所示。例如 y = wx + b。每当输入一个新样本的特征时,可以直接得到预测结果。以二分类为例子,wx + b 的结果是0~1之间的概率值,当概率值大于0.5,我们就得到y=1,反之,则y=0。
生成模型
常见的形式为P(y|x),建立出特征x与不同目标变量y之间的联合概率分布。也就是建立好属于不同y的特征x的分布模型,如下图所示。当需要对新的数据x预测时,则需要判断x属于各个y的概率,概率大的y则为预测结果。
引用知乎文章机器学习“判定模型”和“生成模型”有什么区别? 中 politer的回答来举个具体的例子:
判别式模型举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。
生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。
细细品味上面的例子,判别式模型是根据一只羊的特征可以直接给出这只羊的概率(比如logistic regression,这概率大于0.5时则为正例,否则为反例),而生成式模型是要都试一试,最大的概率的那个就是最后结果~
如果你还了解过机器学习的其他算法,那么:
- 概率模型(生成模型)有:朴素贝叶斯、高斯混合模型、决策树、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配等。
- 非概率模型(判别模型)有:感知机、支持向量机、k近邻,k均值,Adaboost,神经网络等。
先验概率、条件概率、后验概率
先验概率:是基于以往的经验或对现有数据的分析所得到的概率,如硬币正面的概率p为1/2,这里的p=1/2就是先验概率。
条件概率:条件概率是知道原因来推测结果,即有因求果。就是给定某个事件X发生的前提条件下,另一个事件Y发生的概率,记为P(Y|X)。例如已知X:今天是双十一,那么Y:促销的概率可以记为P(促销|今天是双十一)。
后验概率:条件概率是知道结果来推测原因,即有果求因。表达形式与条件概率相似,例如P(X|Y),只不过含义变了。例如X:今天是双十一,Y:促销,则P(X|Y)表示已知现在商品在促销,那么今天是双十一的概率,即P(今天是双十一|促销)。
朴素贝叶斯法建模
假设输入空间 X ∈ R n \mathcal X \in R^n X∈Rn是n维的向量集合,输出空间 Y = { c 1 , c 2 . . . c k } \mathcal Y = \{c_1, c_2...c_k\} Y={
c1,c2...ck}为类别标记的集合。输入为特征向量 x ∈ X x \in \mathcal X x∈X,输出为类别标记 y ∈ Y y \in \mathcal Y y∈Y。X 为 X \mathcal X X 上的随机向量,Y为 Y \mathcal Y Y 上的随机变量。P(X, Y) 是X,Y的联合概率分布,假设训练集T:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={
(x1,y1),(x2,y2),...,(xN,yN)}
是由P(X, Y)独立同分布产生。
朴素贝叶斯法实际上学到的是生成数据的机制,所以属于生成模型。朴素贝叶斯法对条件概率分布做了条件独立性假设(不同的特征相互独立且同分布),通过已知数据集学习联合概率分布P(X, Y)。具体的,需要学习:
P ( Y = c k ) , k = 1 , 2 , . . . , K (1) P(Y=c_k), k=1,2,...,K \tag 1 P(Y=ck),k=1,2,...,K(1)
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , … , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (2) \begin{aligned} P(X=x|Y=c_k)&=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\dots,X^{(n)}=x^{(n)}|Y=c_k)\\ &=\prod^n_{j=1}P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned} \tag 2 P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),…,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)(2)
公式的上角标表示第i个样本,其中(1)是各个类别的先验概率分布,(2)是条件概率分布。基于上面的两个式子,就可以计算得到联合概率分布P(X, Y)。
朴素贝叶斯法在分类时,对给定的输入x,通过学习到的模型计算后验概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k| X = x) P(Y=ck∣X=x),然后将后验概率最大的类别作为x的输出。后验概率的计算公式由贝叶斯定理(全概率公式)可得:
P ( Y = c k ∣ X = x ) = P ( Y = c k , X = x ) p ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k = 1 K P ( X = x ∣ Y = c k ) P ( Y = c k ) (3) \begin{aligned} P(Y=c_k| X = x) &= \frac{P(Y=c_k, X = x)}{p(X = x)} \\ &= \frac{P(X=x|Y=c_k) P(Y=c_k)}{\sum_{k=1}^KP(X=x|Y=c_k)P(Y=c_k)} \end{aligned} \tag 3 P(Y=ck∣X=x)=p(X=x)P(Y=ck,X=x)=∑k=1KP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)(3)
基于(3),朴素贝叶斯分类器可以表示为:
y = arg max c k P ( Y = c k ∣ X = x ) (4) y = \arg \max\limits_{c_k}P(Y=c_k| X = x) \tag 4 y=argckmaxP(Y=ck∣X=x)(4)
由于(3)的分母是个固定值,故(4)可以简化为:
y