机器学习系列问题(二):生成模型和判别模型
一、简单理解
维基百科上Generative条目里面有个经典的案例:
假设有四个samples:
判别式模型的世界是这个样子:
生成式模型的世界是这个样子:
二、两者分别(个人理解)
生成模型是对条件概率分布P(y|x)进行建模;
判别模型是对联合概率分布P(x,y)进行建模;
两个模型都是要最大化后验概率分布,判别模型是直接对P(y|x)建模,而生成模型是对P(y|x)进行近似建模;
P(x)已知且为定值,一般都设为1;所以有:
以判断篮球和足球为例:
判别模型:直接从历史数据中学习,获得一个模型,测试时,通过样本特征直接判断篮球和足球的概率(一般大于0.5为正例,反之为负例)。常见的判别模型算法有:svm,线性回归,神经网络。判别模型训练要求的样本数量少,模型准确率相对较高。
生成模型:利用历史数据学习出两个模型,一个篮球模型,一个足球模型,测试时,把样本分别放到两个模型中,看哪个模型的概率大。常见的生成模型的算法有:朴素贝叶斯,隐马尔可夫模型。生成模型训练收敛速度快,可以计算边缘分布。
写的不好,如果有问题请及时指出,我会及时纠正。如果您认可我的文章,希望你能关注我的微信公众号,我会不定期更新工作中学到的东西和一些技术比较前沿的东西。