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