我有一些数据,我想学习此数据的贝叶斯网络,然后使用该贝叶斯网络进行推理。为此,我使用了MATLAB中Bayes Net Toolbox中的learn_struct_gs2
。通过使用learn_struct_gs2
可以学习贝叶斯网络。但是,我想知道:
当我们想从数据中学习贝叶斯网络时,我们的特征值是否应遵循特定的分布(例如正态分布等)?如果我们的特征值不遵循分布,我们就不能使用贝叶斯学习吗?
例如,假设特征的值是:
0,10,11,18,100,1250,...
我们可以使用贝叶斯学习吗?
我是贝叶斯学习和人工智能的新手,我花了很多时间来找到这个问题的答案,但我没有。
我的第二个问题是:
存在许多学习方法,例如贝叶斯学习,神经网络等。如何找出这些方法中哪种适合我的问题?
最佳答案
模拟,模拟,模拟。
生成人工数据集是开发人员经常使用的方法,对于从业人员来说,这是一种验证和整理其关于数据假设的好方法。今天的计算时间是如此便宜,以至于比通过大量的文献和理论来解析,人们通常可以更容易地凭经验来测试算法的适用性。
这并不是说应该完全放弃学习基础知识,例如在高级本科生和研究生水平的培训(或在Bishop的“模式识别和机器学习”之类的自由文本中)学习的基础知识。但是,知道如何与经验测验争论的用户可能会极有说服力,并且可以用它们来突破学术界往往会竖起的大门。
在您的情况下,请尝试制作一些简单的模拟网络,以使用一系列分布来生成数据。空情况可能是高斯分布。也许您的极端情况可能是对数正态。然后测试算法在这些不同分布下是否推断出正确的网络。关键是:像游乐场一样玩耍。或者,如果您更喜欢笨拙的比喻:像对待实验室和实验一样对待它。
关于matlab - 贝叶斯网络推断算法是否假设数据的特定分布?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59444552/