我正在研究一个机器学习问题,如下所示:
输入变量
Categorical
a
b
c
d
Continuous
e
输出变量
Discrete(Integers)
v
x
y
Continuous
z
我面临的主要问题是输出变量并不是完全独立的,它们之间没有可以建立的关系。也就是说,存在依赖性,但不是由于因果关系(一个值高并不意味着另一个值也会高,但另一个值更高的机会会提高)
一个例子是:
v - 广告展示次数
x - 广告点击次数
y - 转化次数
z - 收入
现在,要点击广告,它必须首先出现在搜索中,因此点击在某种程度上取决于展示次数。
同样,要转换广告,必须首先点击它,因此转换在某种程度上取决于点击。
因此,运行 4 个问题实例来预测每个输出变量对我来说没有意义。事实上,应该有某种方法来预测所有 4 个因素,同时考虑到它们的隐式依赖关系。
但正如您所看到的,不会有直接关系,事实上,存在一定的概率,但无法手动计算出来。
此外,输出变量不是分类的,但实际上是离散和连续的。
有关如何解决此问题的任何意见。还指导我了解相同的现有实现以及使用哪个工具包来快速实现该解决方案。
只是一个随机猜测 - 我认为贝叶斯网络可以解决这个问题。你觉得怎么样?
最佳答案
贝叶斯网络适合您的情况。您的网络也不会那么大,因此您可以使用精确的推理算法,例如图消除或连接树。如果您决定使用 BN,那么您可以使用 Kevin Murphy 的 BN 工具箱。 Here是一个链接。对于使用吉布斯采样进行近似蒙特卡罗推理的更通用的工具箱,您可以使用 BUGS .
编辑:
作为一个例子,看看著名的洒水器示例 here 。对于完全离散的变量,您可以按照链接中的方式定义条件概率表。例如,假设今天是多云,下雨的概率为 0.8。您定义所有概率分布,其中图表显示因果关系(即,如果是云,那么雨等)。然后,作为查询,您向推理算法提出问题,例如,假设草是湿的;是否阴天、是否下雨、洒水器是否打开等等。
要使用 BN,需要一个用因果关系(有向无环图)和概率转换来描述的系统模型。如果您想了解系统参数,可以使用类似 EM algorithm 的技术。 。然而,学习图结构是一项非常艰巨的任务,在这种情况下,有监督的机器学习方法会做得更好。
关于machine-learning - 对于这种情况,合适的机器学习算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882882/