【机器学习】基础 判别模型生成模型
- 概念区分及代表算法:
两者均属于监督模型范畴,最直接的区分依据是,从给定的训练数据,学习到的目标概率分布不同。根据训练数据,
生成模型,学习联合概率分布P(X,Y)。然后求出条件概率分布P(Y|X)作为预测模型。公式:P(Y|X)=P(X,Y)/P(X)。代表算法有:朴素贝叶斯,HMM等。通常只有一个模型,输入实例,得到结果。
判别模型,学习条件概率分布P(Y|X),或者直接学习判别决策函数f(X)。代表算法有k近邻算法,决策树、逻辑回归(学习P(Y|X))、最大熵模型、感知机(学习决策函数f(X))、支持向量机,感知机、提升算法,条件随机场。通常有多个模型(n类n模型),输入实例,比较模型结果,输出最合适结果。
角度1,结合*上的案例来看:
角度2,博文机器学习之判别式模型和生成式模型 - nolonely - 博客园 举了一个例子:
判别式模型举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。
生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。
细细品味上面的例子,判别式模型是根据一只羊的特征可以直接给出这只羊的概率(比如logistic regression,这概率大于0.5时则为正例,否则为反例),而生成式模型是要都试一试,最大的概率的那个就是最后结果
角度3,从先验后验似然角度。
生成模型和判别模型最终都要学习出一个后验概率,即P(Y|X),根据贝叶斯公式,P(Y|X)=[P(Y)*P(X|Y)]/P(X),后验正比于先验和似然。
如果我们从训练数据中,获取先验和似然,然后乘起来,得到后验,再做决策,叫做生成模型。即,用乘法生成后验分布。如朴素贝叶斯,可参考李航书中P48页公式4.6形式。
如果我们不管先验后验,直接假设后验分布,训练数据获得模型,这叫判别模式。如逻辑回归。
补充概念,
后验概率是P(Y|X),即在看到新的数据后,我们要计算的该假设的概率。
先验概率是P(Y),是输入的 分布,在得到新数据之前,某一个假设的概率。
似然是P(X|Y),是参数的分布,在该假设下,这一数据/参数的概率。
标准化常量P(X)是在任何假设下,得到这一数据的概率。
- 两者优劣:
生成模型:可还原联合概率分布P(X,Y);样本容量增加时,学习模型收敛速度快;存在隐变量时,仍然可以用生成学习学习方法,但不能用判别方法;可以做异常点检测。
判别模型:直接面对预测,准确率高;不需要像生成模型一样学习多个分布进行比较,效率高;可以对数据进行抽象,即做特征工程,如创建新特征,简化学习问题。
参考书籍:
李航:统计学习方法
知乎:politer等