用于理解特定条件结构的最佳机器学习算法

数据挖掘 机器学习 神经网络 算法
2022-02-15 00:15:35

由于对神经网络还有些陌生,我希望使用某种形式的机器学习,但我不确定哪一种最适合。

我有一个我正在研究的玩具示例。非常感谢提示。

假设有大块数据(不是图像的像素:))都基于根变量,即“a”。这个“a”是“事物”,其他变量是方面。

还假设它是一组有限的事物,并且每个事物“a”都有四个(“b”、“c”和“d”)方面。

我希望制作一个程序来学习('a':1)经常与('b':0.2),('c':0.8)和('d':0.3)一起出现。但是有一个问题,我希望在 a 的同时出现和 (b, c, d) 的相应值的基础上存在某种条件结构。

例如:

('a':1) often     (prob. 0.7) occurs with ('b':0.2), ('c':0.8), and ('d':0.3)
('a':1) sometimes (prob. 0.6) occurs with ('b':0.2), ('c':0.5), and ('d':0.7)
('a':1) sometimes (prob. 0.4) occurs with ('b':0.3), ('c':0.4), and ('d':0.2)
('a':1) rarely    (prob. 0.2) occurs with ('b':0.5), ('c':0.3), and ('d':0.8)

对于给定的 ('a':2),这一切都会有所不同。b、c 和 d 的值并不意味着必须总和为 1。它们只是代表方面的占位符值(0.2 可能是绿色,0.8 可能是紫色等)。

我想确保程序理解 b、c 和 d 之间存在固有的依赖关系,以及给定的 'a':x (b, c, d)。

如果有人有基于此的建议,我将不胜感激。谢谢!

编辑:我在 python 中工作,并且正在考虑将字典作为数据结构,但如果有更好的解决方案(也可能取决于算法),我会全神贯注。

1个回答

对我来说,这描述了条件概率在学习条件概率时,我首先想到的是贝叶斯网络(BN),它是概率图模型的一个例子。事实上,BN 可以使用最大似然估计 (MLE) 进行拟合,这对应于计数出现次数(类似于“朴素贝叶斯”,如果您使用过的话)。Barber是一本关于这方面的优秀书籍

另一个与您的概率问题相对应且更像神经网络的模型是受限玻尔兹曼机 (RBM)

在此处输入图像描述

来源

再一次,这涉及到学习条件概率,比如p(v0|h0,h1,h2),p(v1|h0,h1,h2),p(v2|h0,h1,h2),. 这是对他们的一个很好的介绍与使用反向传播训练且不是概率性的神经网络不同,RBM ​​确实是概率性的并且使用对比发散进行训练。