生成式模型和判别式模型区别

两者都是进行分类(classification)的模型。生成模型(generative model)通过学习先验分布来推导后验分布而进行分类,而判定模型(discriminative model)直接学习后验分布来进行分类。

对于分类模型,一般有三种建模方法:生成模型,判定模型和直接学习决策边界。举例来说,如果信用卡公司需要通过建模学习如何通过个人收入(X)来检测其是否会成为坏账(Y)。一种建模的方法是先学习整体的坏账率(P(Y))以及在坏账与非坏账的群体中,个人收入是如何分布的(P(X|Y))。在学习这两种概率后,通过Bayes theorem得到后验分布(P(Y|X)),即所有收入在某个区间的贷款人成为坏账的概率。这种方法被称为生成模型:通过对于先验分布的学习与建模来得到后验分布,从而对其进行分类。而另一种更加直观的建模方法是直接对后验分布进行学习,例如如果我们假设坏账率与个人收入是线性的关系,我们可以通过logistic regression来直接预测在该收入范围内的坏账率。这种方法则被称为判定模型:直接学习后验分布P(Y|X)而不在乎X与Y的联合分布甚至先验分布。当然,我们也可以直接学习决策边界(decision boundary),SVM便是直接学习边界的例子。

虽然都是分类模型,但三种建模方法又有以下的区别:

生成模型与判定模型可以阐述猜错的概率,从而提供可信程度。因为它们两者都通过后验分布进行判断,所以可以通过输出后验分布告知判断的可信程度。例如这个人有60%的可能性成为坏账。然而直接学习决策边界的模型只能告诉你它更可能是那个类别,而不能告诉你它的可信程度。
只有生成模型能检测异常值。由于生成模型完全学习了所有的分布,所以它可以用来检测某个值是否异常:P(X)是否太小。
生成模型的模型准确度不高。也是由于生成模型学习了所有的分布,而且在每个分布的学习中,很难保证学习是准确的,因此分布很少情况下会完全与显示匹配。

你可能感兴趣的:(分类,机器学习,数据挖掘)