可生成式和可生成式的区别是什么 有识别力的算法?
当前回答
这是一个额外的信息点,与上面StompChicken的回答相吻合。
判别模型和生成模型的根本区别在于:
判别模型学习类之间的(硬的或软的)边界 生成模型为单个类的分布建模
编辑:
生成式模型是可以生成数据的模型。它同时对特征和类(即完整的数据)建模。
如果我们对P(x,y)建模:我可以使用这个概率分布来生成数据点——因此所有建模P(x,y)的算法都是生成的。
如。生成模型
朴素贝叶斯模型P(c)和P(d|c) -其中c是类,d是特征向量。 P(c,d) = P(c) * P(d|c) 因此,某些形式的朴素贝叶斯模型,P(c,d) 贝叶斯网 马尔可夫网
判别模型是指只能用于对数据点进行判别/分类的模型。 你只需要在这种情况下建模P(y|x),(即给定特征向量的类别概率)。
如。关于判别模型:
逻辑回归 神经网络 条件随机场
一般来说,生成式模型比判别式模型需要更多的建模,因此有时不那么有效。事实上,大多数(不确定是否全部)无监督学习算法,如聚类等,可以被称为生成式,因为它们建模P(d)(并且没有类:P)
附言:部分答案来源于原文
其他回答
这是一个额外的信息点,与上面StompChicken的回答相吻合。
判别模型和生成模型的根本区别在于:
判别模型学习类之间的(硬的或软的)边界 生成模型为单个类的分布建模
编辑:
生成式模型是可以生成数据的模型。它同时对特征和类(即完整的数据)建模。
如果我们对P(x,y)建模:我可以使用这个概率分布来生成数据点——因此所有建模P(x,y)的算法都是生成的。
如。生成模型
朴素贝叶斯模型P(c)和P(d|c) -其中c是类,d是特征向量。 P(c,d) = P(c) * P(d|c) 因此,某些形式的朴素贝叶斯模型,P(c,d) 贝叶斯网 马尔可夫网
判别模型是指只能用于对数据点进行判别/分类的模型。 你只需要在这种情况下建模P(y|x),(即给定特征向量的类别概率)。
如。关于判别模型:
逻辑回归 神经网络 条件随机场
一般来说,生成式模型比判别式模型需要更多的建模,因此有时不那么有效。事实上,大多数(不确定是否全部)无监督学习算法,如聚类等,可以被称为生成式,因为它们建模P(d)(并且没有类:P)
附言:部分答案来源于原文
不同的模型归纳如下表:
图片来源:监督学习小抄-斯坦福CS 229(机器学习)
想象一下,你的任务是将演讲分类为一种语言。
你可以通过以下任何一种方式:
学习每一种语言,然后用你刚刚学到的知识对它进行分类
or
在不学习语言的情况下确定语言模型的差异,然后对语音进行分类。
第一种是生成方法,第二种是判别方法。
查看参考资料了解更多细节:http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf。
生成算法对数据如何生成进行建模,以便对信号进行分类。它提出了一个问题:根据我的世代假设,哪个类别最有可能产生这个信号?
判别算法并不关心数据是如何产生的,它只是对给定的信号进行分类。
我的观点是: 歧视性的方法突出了差异 生成方法不关注差异;他们试图建立一个能代表班级的模型。 两者之间有重叠之处。 理想情况下,两种方法都应该使用:一种有助于发现相似之处,另一种有助于发现不同之处。
推荐文章
- 如何在Python中进行热编码?
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 给定一个数字,找出下一个与原始数字具有完全相同的数字集的更高的数字
- HSL到RGB的颜色转换
- 使用Java在原语数组中查找最大/最小值
- 好的Java图算法库?
- 如何将数据分成3组(训练、验证和测试)?
- 什么时候我应该使用Kruskal而不是Prim(反之亦然)?
- 取一个集中在中心的随机数
- 如何在PyTorch中初始化权重?
- 如何计算圆周长上的一点?
- 从整数流中找到运行中位数
- 在日历应用程序中建模重复事件的最佳方法是什么?
- 在任何情况下,您更喜欢高大o时间复杂度算法而不是低大o时间复杂度算法吗?
- 关于如何将数据集划分为训练集和验证集,是否存在经验法则?