我们知道一般学习任务都是提供两类数据:
- 1、样本X,包括你提取特征后的数值化样本
- 2、样本的标签Y
机器学习的任务是从样本X训练模型,用来预测训练集的标记Y,即求概率 P ( Y ∣ X ) P(Y|X) P(Y∣X);
-
对于判别式模型来说求得P(Y|X),对测试集 X t e s t X_{test} Xtest,根据 P ( Y ∣ X t e s t ) P(Y|X_{test}) P(Y∣Xtest)可以求得标记Y,即可以直接判别出来,传统的、耳熟能详的机器学习算法如线性回归模型、支持向量机SVM等都是判别式模型,这些模型的特点都是输入属性X可以直接得到Y(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为反类)
-
生成式模型求得P(Y,X),对于测试集 X t e s t X_{test} Xtest,你要求出 X t e s t X_{test} Xtest与不同标记之间的联合概率分布 P ( Y i ∣ X t e s t ) P(Y_i|X_{test}) P(Yi∣Xtest),然后概率大的获胜,概率大的标签 Y i Y_i Yi就是样本的结果。机器学习中朴素贝叶斯模型、隐马尔可夫模型HMM等都是生成式模型,熟悉Naive Bayes的都知道,对于输入X,需要求出好几个联合概率,然后较大的那个就是预测结果。这个概率 P ( Y i ∣ X t e s t ) P(Y_i|X_{test}) P(Yi∣Xtest)是生成的,并不能直接得到结果,需要比较。
统计学习方法中也有详细的讲解,大家可以去具体的体会,不懂的也可以评论。