一 生成学习算法
两种学习算法的定义
1 判别学习算法:直接学习p(y|x),其中x是某类样例的特征,y是某类样例的分类标记。即给定输入特征,输出所属的类或学习得到一个假设hθ(x),直接输出0或1。通俗的说就是直接对问题求解,比如logistic算法,在解空间中寻找一条直线从而把两种类别的样例分开。
2 生成学习算法:对p(x|y)进行建模,p(x|y)表示在给定所属的类的情况下,显示某种特征的概率。处于技术上的考虑,也会对p(y)进行建模。 p(x|y)中的x表示一个生成模型对样本特征建立概率模型,y表示在给定样本所属类的条件下。
例:对恶性肿瘤和良性肿瘤的分类
除了寻找一个将两类数据区分的直线外,还可以用如下方法:
1) 遍历训练集,找到所有恶性肿瘤样本,直接对恶性肿瘤的特征建模;同理,对良性肿瘤建模。
2) 对一个新的样本分类时,即有一个新的病人时,要判断其是恶性还是良性,用该样本分别匹配恶性肿瘤模型和良性肿瘤模型,看哪个模型匹配的更好,预测属于恶性还是良性。
对p(x|y)和p(y)建模后
根据贝叶斯公式p(y|x) = p(xy)/p(x) = p(x|y)p(y)/p(x)
可以计算:p(y=1|x) = p(x|y=1)p(y=1)/p(x)
其中,p(x) = p(x|y=0)p(y=0) + p(x|y=1)p(y=1)
二 高斯判别分析算法
高斯判别分析(GDA)算法即为一种生成学习算法。
高斯判别分析的两个假设(使用条件):
假设输入特征x∈Rn,并且是连续值;
p(x|y)是多维正态分布(即高斯分布)。
多维正态分布(高斯分布)详解
多维正态分布是正态分布在多维变量下的拓展。均值向量(mean vector),协方差矩阵(convariance matrix)
(其中n是多维变量的向量长度